From 33717c45388b990b922c72c82ede166b728591d8 Mon Sep 17 00:00:00 2001 From: sue445 Date: Fri, 26 Dec 2025 22:45:47 +0900 Subject: [PATCH 1/7] CI against for Ruby 4.0 --- .github/workflows/test.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1328d34..57a4119 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -26,6 +26,7 @@ jobs: - "3.2" - "3.3" - "3.4" + - "4.0" gemfile: - faraday_2 From 9c2ee99aa7173c166bf684391243589e9edfc44d Mon Sep 17 00:00:00 2001 From: sue445 Date: Fri, 26 Dec 2025 22:50:17 +0900 Subject: [PATCH 2/7] Add yard job --- .github/workflows/test.yml | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 57a4119..d87899c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -60,6 +60,31 @@ jobs: - run: bundle exec rubocop + yard: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v6 + with: + submodules: "true" + + - uses: ruby/setup-ruby@v1 + with: + ruby-version: ruby + bundler-cache: true + + - name: bundle update + run: | + set -xe + bundle config path vendor/bundle + bundle update --jobs $(nproc) --retry 3 + + - name: yard generating test + run: | + set -xe + bundle exec yard + ls -ld doc/ + finish: needs: test runs-on: ubuntu-latest From 6cc9be48ad92783fd376d1e83e5fa4f60fd04086 Mon Sep 17 00:00:00 2001 From: sue445 Date: Fri, 26 Dec 2025 22:53:56 +0900 Subject: [PATCH 3/7] rdoc is bundled gem since ruby 4.0 --- chatwork.gemspec | 1 + 1 file changed, 1 insertion(+) diff --git a/chatwork.gemspec b/chatwork.gemspec index 770293e..e7fd417 100644 --- a/chatwork.gemspec +++ b/chatwork.gemspec @@ -34,6 +34,7 @@ Gem::Specification.new do |spec| spec.add_development_dependency "faraday_curl" spec.add_development_dependency "onkcop", "1.0.0.0" spec.add_development_dependency "rake" + spec.add_development_dependency "rdoc" spec.add_development_dependency "rspec" spec.add_development_dependency "rspec-its" spec.add_development_dependency "rspec-parameterized" From e421e06cd60629bdea8e25ef5eab5656a528bb50 Mon Sep 17 00:00:00 2001 From: sue445 Date: Fri, 26 Dec 2025 22:59:52 +0900 Subject: [PATCH 4/7] Add irb ``` /Users/sue445/workspace/github.com/asonas/chatwork-ruby/vendor/bundle/ruby/4.0.0/gems/yard-0.9.38/lib/yard/parser/ruby/legacy/irb/slex.rb:13: warning: irb/notifier is found in irb, which is not part of the default gems since Ruby 4.0.0. You can add irb to your Gemfile or gemspec to fix this error. bundler: failed to load command: yard (/Users/sue445/workspace/github.com/asonas/chatwork-ruby/vendor/bundle/ruby/4.0.0/bin/yard) /Users/sue445/.rbenv/versions/4.0.0/lib/ruby/4.0.0/bundled_gems.rb:60:in 'Kernel.require': cannot load such file -- irb/notifier (LoadError) from /Users/sue445/.rbenv/versions/4.0.0/lib/ruby/4.0.0/bundled_gems.rb:60:in 'block (2 levels) in Kernel#replace_require' from /Users/sue445/workspace/github.com/asonas/chatwork-ruby/vendor/bundle/ruby/4.0.0/gems/yard-0.9.38/lib/yard/parser/ruby/legacy/irb/slex.rb:13:in '' from /Users/sue445/workspace/github.com/asonas/chatwork-ruby/vendor/bundle/ruby/4.0.0/gems/yard-0.9.38/lib/yard/parser/ruby/legacy/ruby_lex.rb:1:in 'Kernel#require_relative' from /Users/sue445/workspace/github.com/asonas/chatwork-ruby/vendor/bundle/ruby/4.0.0/gems/yard-0.9.38/lib/yard/parser/ruby/legacy/ruby_lex.rb:1:in '' from /Users/sue445/.rbenv/versions/4.0.0/lib/ruby/4.0.0/bundled_gems.rb:60:in 'Kernel.require' from /Users/sue445/.rbenv/versions/4.0.0/lib/ruby/4.0.0/bundled_gems.rb:60:in 'block (2 levels) in Kernel#replace_require' ``` --- chatwork.gemspec | 1 + 1 file changed, 1 insertion(+) diff --git a/chatwork.gemspec b/chatwork.gemspec index e7fd417..a4168d5 100644 --- a/chatwork.gemspec +++ b/chatwork.gemspec @@ -32,6 +32,7 @@ Gem::Specification.new do |spec| spec.add_development_dependency "bundler", ">= 1.3" spec.add_development_dependency "dotenv" spec.add_development_dependency "faraday_curl" + spec.add_development_dependency "irb" spec.add_development_dependency "onkcop", "1.0.0.0" spec.add_development_dependency "rake" spec.add_development_dependency "rdoc" From 9ae9f75605407c5d2c1d048ef7cd77af743218d7 Mon Sep 17 00:00:00 2001 From: sue445 Date: Fri, 26 Dec 2025 23:05:44 +0900 Subject: [PATCH 5/7] Workaround for error in rspec-parameterized-table_syntax ``` This version of binding_of_caller doesn't support this version of Ruby An error occurred while loading ./spec/lib/chatwork/converter_spec.rb. Failure/Error: false | 0 NoMethodError: undefined method 'of_caller' for an instance of Binding ``` --- Gemfile | 2 +- gemfiles/common.gemfile | 3 +++ gemfiles/faraday_2.gemfile | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 gemfiles/common.gemfile diff --git a/Gemfile b/Gemfile index 792eea4..f76e5f4 100644 --- a/Gemfile +++ b/Gemfile @@ -3,4 +3,4 @@ source "https://rubygems.org" # Specify your gem's dependencies in chatwork.gemspec gemspec -# eval_gemfile "#{__dir__}/gemfiles/common.gemfile" +eval_gemfile "#{__dir__}/gemfiles/common.gemfile" diff --git a/gemfiles/common.gemfile b/gemfiles/common.gemfile new file mode 100644 index 0000000..824d3bf --- /dev/null +++ b/gemfiles/common.gemfile @@ -0,0 +1,3 @@ +# FIXME: Workaround for Ruby 4.0+ +# ref. https://github.com/banister/binding_of_caller/pull/90 +gem "binding_of_caller", github: "kivikakk/binding_of_caller", branch: "push-yrnnzolypxun" diff --git a/gemfiles/faraday_2.gemfile b/gemfiles/faraday_2.gemfile index 38a88d4..ea3a2dd 100644 --- a/gemfiles/faraday_2.gemfile +++ b/gemfiles/faraday_2.gemfile @@ -3,6 +3,6 @@ source "https://rubygems.org" # Specify your gem's dependencies in chatwork.gemspec gemspec path: "../" -# eval_gemfile "#{__dir__}/common.gemfile" +eval_gemfile "#{__dir__}/common.gemfile" gem "faraday", "~> 2.0" From 3617c7f3da74ec671023ebc136c81beffeed2aef Mon Sep 17 00:00:00 2001 From: sue445 Date: Fri, 26 Dec 2025 23:12:22 +0900 Subject: [PATCH 6/7] Add ostruct ``` /home/runner/work/chatwork-ruby/chatwork-ruby/gemfiles/vendor/bundle/ruby/4.0.0/gems/rubocop-1.24.1/lib/rubocop/formatter/html_formatter.rb:5: warning: ostruct used to be loaded from the standard library, but is not part of the default gems since Ruby 4.0.0. You can add ostruct to your Gemfile or gemspec to fix this error. bundler: failed to load command: rubocop (/home/runner/work/chatwork-ruby/chatwork-ruby/gemfiles/vendor/bundle/ruby/4.0.0/bin/rubocop) /opt/hostedtoolcache/Ruby/4.0.0/x64/lib/ruby/4.0.0/bundled_gems.rb:60:in 'Kernel.require': cannot load such file -- ostruct (LoadError) Did you mean? tsort from /opt/hostedtoolcache/Ruby/4.0.0/x64/lib/ruby/4.0.0/bundled_gems.rb:60:in 'block (2 levels) in Kernel#replace_require' from /home/runner/work/chatwork-ruby/chatwork-ruby/gemfiles/vendor/bundle/ruby/4.0.0/gems/rubocop-1.24.1/lib/rubocop/formatter/html_formatter.rb:5:in '' from /home/runner/work/chatwork-ruby/chatwork-ruby/gemfiles/vendor/bundle/ruby/4.0.0/gems/rubocop-1.24.1/lib/rubocop.rb:669:in 'Kernel#require_relative' from /home/runner/work/chatwork-ruby/chatwork-ruby/gemfiles/vendor/bundle/ruby/4.0.0/gems/rubocop-1.24.1/lib/rubocop.rb:669:in '' ``` --- chatwork.gemspec | 1 + 1 file changed, 1 insertion(+) diff --git a/chatwork.gemspec b/chatwork.gemspec index a4168d5..a6a202b 100644 --- a/chatwork.gemspec +++ b/chatwork.gemspec @@ -34,6 +34,7 @@ Gem::Specification.new do |spec| spec.add_development_dependency "faraday_curl" spec.add_development_dependency "irb" spec.add_development_dependency "onkcop", "1.0.0.0" + spec.add_development_dependency "ostruct" # FIXME: Remove this after rubocop updated spec.add_development_dependency "rake" spec.add_development_dependency "rdoc" spec.add_development_dependency "rspec" From 7979d605c2b6d8983b943413ae9fb8a13ce1a13d Mon Sep 17 00:00:00 2001 From: sue445 Date: Fri, 26 Dec 2025 23:14:12 +0900 Subject: [PATCH 7/7] Add benchmark ``` /Users/sue445/workspace/github.com/asonas/chatwork-ruby/vendor/bundle/ruby/4.0.0/gems/rubocop-1.24.1/exe/rubocop:7: warning: benchmark used to be loaded from the standard library, but is not part of the default gems since Ruby 4.0.0. You can add benchmark to your Gemfile or gemspec to fix this error. bundler: failed to load command: rubocop (/Users/sue445/workspace/github.com/asonas/chatwork-ruby/vendor/bundle/ruby/4.0.0/bin/rubocop) /Users/sue445/.rbenv/versions/4.0.0/lib/ruby/4.0.0/bundled_gems.rb:60:in 'Kernel.require': cannot load such file -- benchmark (LoadError) from /Users/sue445/.rbenv/versions/4.0.0/lib/ruby/4.0.0/bundled_gems.rb:60:in 'block (2 levels) in Kernel#replace_require' from /Users/sue445/workspace/github.com/asonas/chatwork-ruby/vendor/bundle/ruby/4.0.0/gems/rubocop-1.24.1/exe/rubocop:7:in '' from /Users/sue445/.rbenv/versions/4.0.0/lib/ruby/4.0.0/rubygems.rb:303:in 'Kernel#load' from /Users/sue445/.rbenv/versions/4.0.0/lib/ruby/4.0.0/rubygems.rb:303:in 'Gem.activate_and_load_bin_path' from /Users/sue445/workspace/github.com/asonas/chatwork-ruby/vendor/bundle/ruby/4.0.0/bin/rubocop:25:in '' from /Users/sue445/workspace/github.com/asonas/chatwork-ruby/vendor/bundle/ruby/4.0.0/gems/bundler-2.5.22/lib/bundler/cli/exec.rb:58:in 'Kernel.load' ``` --- chatwork.gemspec | 1 + 1 file changed, 1 insertion(+) diff --git a/chatwork.gemspec b/chatwork.gemspec index a6a202b..982d590 100644 --- a/chatwork.gemspec +++ b/chatwork.gemspec @@ -29,6 +29,7 @@ Gem::Specification.new do |spec| spec.add_dependency "faraday-multipart", ">= 1.1.0" spec.add_development_dependency "activesupport" + spec.add_development_dependency "benchmark" # FIXME: Remove this after rubocop updated spec.add_development_dependency "bundler", ">= 1.3" spec.add_development_dependency "dotenv" spec.add_development_dependency "faraday_curl"