From 306fbe2ad4f9009961b6ed5a71dd7ddeebe0287b Mon Sep 17 00:00:00 2001 From: chaadow Date: Tue, 18 Jun 2024 00:46:30 +0100 Subject: [PATCH] Update appraisals and handle new ruby versions --- .github/workflows/ruby.yml | 4 +-- Appraisals | 10 ++----- active_record-acts_as.gemspec | 28 ++++++++----------- gemfiles/rails_6.1.gemfile | 8 ------ gemfiles/rails_7.0.gemfile | 1 + .../{rails_6.0.gemfile => rails_7.1.gemfile} | 3 +- gemfiles/rails_main.gemfile | 1 + lib/active_record/acts_as/class_methods.rb | 4 +-- lib/active_record/acts_as/instance_methods.rb | 4 +-- spec/actable_spec.rb | 2 +- 10 files changed, 26 insertions(+), 39 deletions(-) delete mode 100644 gemfiles/rails_6.1.gemfile rename gemfiles/{rails_6.0.gemfile => rails_7.1.gemfile} (72%) diff --git a/.github/workflows/ruby.yml b/.github/workflows/ruby.yml index 762f7fd..447284c 100644 --- a/.github/workflows/ruby.yml +++ b/.github/workflows/ruby.yml @@ -24,8 +24,8 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - ruby-version: ['2.7', '3.0', '3.1', '3.2'] - activerecord: ['6.0', '6.1', '7.0', 'main'] + ruby-version: ['3.1', '3.2', '3.3'] + activerecord: ['7.0', '7.1', 'main'] env: BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/rails_${{ matrix.activerecord }}.gemfile steps: diff --git a/Appraisals b/Appraisals index 05bf846..420256a 100644 --- a/Appraisals +++ b/Appraisals @@ -1,12 +1,8 @@ -appraise "rails-6.0" do - gem 'rails', '~> 6.0' -end - -appraise "rails-6.1" do - gem 'rails', '~> 6.1' +appraise "rails-7.0" do + gem 'rails', '~> 7.0' end -appraise "rails-7.0" do +appraise "rails-7.1" do gem 'rails', '~> 7.0' end diff --git a/active_record-acts_as.gemspec b/active_record-acts_as.gemspec index 4c6ffd3..bc62a9c 100644 --- a/active_record-acts_as.gemspec +++ b/active_record-acts_as.gemspec @@ -1,36 +1,32 @@ -lib = File.expand_path('../lib', __FILE__) -$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) +# frozen_string_literal: true -require 'active_record/acts_as/version' +require_relative "lib/active_record/acts_as/version" Gem::Specification.new do |spec| spec.name = "active_record-acts_as" spec.version = ActiveRecord::ActsAs::VERSION spec.authors = ["Hassan Zamani", "Manuel Meurer", "Chedli Bourguiba"] - spec.email = ["hsn.zamani@gmail.com", "manuel@krautcomputing.com", "bourguiba.chedli@gmail.com"] + spec.email = ["bourguiba.chedli@gmail.com"] spec.summary = %q{Simulate multi-table inheritance for activerecord models} spec.description = %q{Simulate multi-table inheritance for activerecord models using a polymorphic association} spec.homepage = "http://github.com/chaadow/active_record-acts_as" - spec.metadata = { "source_code_uri" => "http://github.com/chaadow/active_record-acts_as" } + spec.metadata = { + "homepage_uri" => "http://github.com/chaadow/active_record-acts_as", + "source_code_uri" => "http://github.com/chaadow/active_record-acts_as", + "changelog_uri" => "http://github.com/chaadow/active_record-acts_as/blob/master/CHANGELOG.md", + "bug_tracker_uri" => "http://github.com/chaadow/active_record-acts_as/issues" + } spec.license = "MIT" - spec.files = `git ls-files -z`.split("\x0") - spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) } - spec.test_files = spec.files.grep(%r{^(test|spec|features)/}) - spec.require_paths = ["lib"] + spec.files = Dir["README.md", "MIT-LICENSE", "lib/**/*.rb"] - spec.required_ruby_version = ">= 2.5" + spec.required_ruby_version = ">= 3.1" - spec.add_development_dependency "sqlite3" - spec.add_development_dependency "bundler" spec.add_development_dependency "rspec", "~> 3" - spec.add_development_dependency "psych", "3.3.2" - spec.add_development_dependency "rake" - spec.add_development_dependency "appraisal", "~> 2.1" + spec.add_development_dependency "appraisal" spec.add_development_dependency "guard-rspec", "~> 4.7" spec.add_dependency "activesupport", ">= 6.0" spec.add_dependency "activerecord", ">= 6.0" - spec.add_dependency "ruby2_keywords" end diff --git a/gemfiles/rails_6.1.gemfile b/gemfiles/rails_6.1.gemfile deleted file mode 100644 index c66e7a3..0000000 --- a/gemfiles/rails_6.1.gemfile +++ /dev/null @@ -1,8 +0,0 @@ -# This file was generated by Appraisal - -source "https://rubygems.org" - -gem "coveralls", require: false -gem "rails", "~> 6.1" - -gemspec path: "../" diff --git a/gemfiles/rails_7.0.gemfile b/gemfiles/rails_7.0.gemfile index 06719d2..f92f4b5 100644 --- a/gemfiles/rails_7.0.gemfile +++ b/gemfiles/rails_7.0.gemfile @@ -4,5 +4,6 @@ source "https://rubygems.org" gem "coveralls", require: false gem "rails", "~> 7.0" +gem "sqlite3", "~> 1.4" gemspec path: "../" diff --git a/gemfiles/rails_6.0.gemfile b/gemfiles/rails_7.1.gemfile similarity index 72% rename from gemfiles/rails_6.0.gemfile rename to gemfiles/rails_7.1.gemfile index ea48f46..f92f4b5 100644 --- a/gemfiles/rails_6.0.gemfile +++ b/gemfiles/rails_7.1.gemfile @@ -3,6 +3,7 @@ source "https://rubygems.org" gem "coveralls", require: false -gem "rails", "~> 6.0" +gem "rails", "~> 7.0" +gem "sqlite3", "~> 1.4" gemspec path: "../" diff --git a/gemfiles/rails_main.gemfile b/gemfiles/rails_main.gemfile index 67fe972..70c36fd 100644 --- a/gemfiles/rails_main.gemfile +++ b/gemfiles/rails_main.gemfile @@ -4,5 +4,6 @@ source "https://rubygems.org" gem "coveralls", require: false gem "rails", github: "rails/rails", branch: "main" +gem "sqlite3" gemspec path: "../" diff --git a/lib/active_record/acts_as/class_methods.rb b/lib/active_record/acts_as/class_methods.rb index 4cd82c5..13d81c1 100644 --- a/lib/active_record/acts_as/class_methods.rb +++ b/lib/active_record/acts_as/class_methods.rb @@ -23,9 +23,9 @@ def respond_to_missing?(method, include_private = false) acting_as_model.methods_callable_by_submodel.include?(method) || super end - ruby2_keywords def method_missing(method, *args, &block) + def method_missing(method, ...) if acting_as_model.methods_callable_by_submodel.include?(method) - result = acting_as_model.public_send(method, *args, &block) + result = acting_as_model.public_send(method, ...) if result.is_a?(ActiveRecord::Relation) all.joins(acting_as_name.to_sym).merge(result) else diff --git a/lib/active_record/acts_as/instance_methods.rb b/lib/active_record/acts_as/instance_methods.rb index 24153db..902c02f 100644 --- a/lib/active_record/acts_as/instance_methods.rb +++ b/lib/active_record/acts_as/instance_methods.rb @@ -117,9 +117,9 @@ def dup duplicate end - ruby2_keywords def method_missing(method, *args, &block) + def method_missing(method, ...) if !self_respond_to?(method) && acting_as.respond_to?(method) - acting_as.send(method, *args, &block) + acting_as.send(method, ...) else super end diff --git a/spec/actable_spec.rb b/spec/actable_spec.rb index 75515cc..f6cc82b 100644 --- a/spec/actable_spec.rb +++ b/spec/actable_spec.rb @@ -49,7 +49,7 @@ it "raises NoMethodError for undefined methods on specific" do pen.save - expect{ pen.product.raise_error }.to raise_error(NoMethodError, /undefined method `non_existant_method' for #