Add Rails 6.1 compatibility

Rails 6.1 needs the following changes:
- Add `owner: nil` to `define_method_attribute` calls
- Pass `options` to error `add` method as keyword argument

Ref:
- https://api.rubyonrails.org/v6.0.0/classes/ActiveModel/Errors.html#method-i-add
- https://api.rubyonrails.org/v6.1.0/classes/ActiveModel/Errors.html#method-i-add

Fix: #193
This commit is contained in:
Pedro Paiva 2020-08-23 22:37:14 -03:00 committed by Geremia Taglialatela
parent 16221ac092
commit 709d2c87e2
No known key found for this signature in database
GPG Key ID: 4A6344430AD4E29F
11 changed files with 48 additions and 8 deletions

View File

@ -6,6 +6,8 @@ gemfile:
- gemfiles/rails_5_0.gemfile
- gemfiles/rails_5_1.gemfile
- gemfiles/rails_5_2.gemfile
- gemfiles/rails_6_0.gemfile
- gemfiles/rails_6_1.gemfile
rvm:
- "2.5.3"

View File

@ -1,5 +1,6 @@
appraise "rails_5_0" do
gem "rails", "~> 5.0.0"
gem 'sqlite3', '~> 1.3.6'
end
appraise "rails_5_1" do
@ -9,3 +10,11 @@ end
appraise "rails_5_2" do
gem "rails", "~> 5.2.0"
end
appraise "rails_6_0" do
gem "rails", "~> 6.0.0"
end
appraise "rails_6_1" do
gem "rails", "~> 6.1.0"
end

View File

@ -5,6 +5,7 @@
in a request.
* Add initializer to ensure Timeliness v0.4+ ambiguous date config is set
correctly when using `use_euro_formats` or `remove_use_formats'.
* Add Rails 6.1 compatibility
Breaking Changes
* Update Multiparameter extension to use ActiveRecord type classes with multiparameter handling

View File

@ -2,11 +2,11 @@ source 'http://rubygems.org'
gemspec
gem 'rails', '~> 5.2.4'
gem 'rails', '~> 6.1.0'
gem 'rspec'
gem 'rspec-rails', '~> 3.7'
gem 'sqlite3'
gem 'timecop'
gem 'byebug'
gem 'appraisal'
gem 'sqlite3', '~> 1.3.6'
gem 'nokogiri', '~> 1.8'

View File

@ -5,10 +5,10 @@ source "http://rubygems.org"
gem "rails", "~> 5.0.0"
gem "rspec"
gem "rspec-rails", "~> 3.7"
gem "sqlite3", "~> 1.3.6"
gem "timecop"
gem "byebug"
gem "appraisal"
gem "sqlite3", "~> 1.3.6"
gem "nokogiri", "~> 1.8"
gemspec path: "../"

View File

@ -5,10 +5,10 @@ source "http://rubygems.org"
gem "rails", "~> 5.1.0"
gem "rspec"
gem "rspec-rails", "~> 3.7"
gem "sqlite3"
gem "timecop"
gem "byebug"
gem "appraisal"
gem "sqlite3", "~> 1.3.6"
gem "nokogiri", "~> 1.8"
gemspec path: "../"

View File

@ -5,10 +5,10 @@ source "http://rubygems.org"
gem "rails", "~> 5.2.0"
gem "rspec"
gem "rspec-rails", "~> 3.7"
gem "sqlite3"
gem "timecop"
gem "byebug"
gem "appraisal"
gem "sqlite3", "~> 1.3.6"
gem "nokogiri", "~> 1.8"
gemspec path: "../"

View File

@ -0,0 +1,14 @@
# This file was generated by Appraisal
source "http://rubygems.org"
gem "rails", "~> 6.0.0"
gem "rspec"
gem "rspec-rails", "~> 3.7"
gem "sqlite3"
gem "timecop"
gem "byebug"
gem "appraisal"
gem "nokogiri", "~> 1.8"
gemspec path: "../"

View File

@ -0,0 +1,14 @@
# This file was generated by Appraisal
source "http://rubygems.org"
gem "rails", "~> 6.1.0"
gem "rspec"
gem "rspec-rails", "~> 3.7"
gem "sqlite3"
gem "timecop"
gem "byebug"
gem "appraisal"
gem "nokogiri", "~> 1.8"
gemspec path: "../"

View File

@ -86,7 +86,7 @@ module ValidatesTimeliness
def add_error(record, attr_name, message, value=nil)
value = format_error_value(value) if value
message_options = { :message => options.fetch(:"#{message}_message", options[:message]), :restriction => value }
record.errors.add(attr_name, message, message_options)
record.errors.add(attr_name, message, **message_options)
end
def format_error_value(value)

View File

@ -15,11 +15,11 @@ module TestModel
self.model_attributes[name] = type
end
def define_method_attribute=(attr_name)
def define_method_attribute=(attr_name, owner: nil)
generated_attribute_methods.module_eval("def #{attr_name}=(new_value); @attributes['#{attr_name}']=self.class.type_cast('#{attr_name}', new_value); end", __FILE__, __LINE__)
end
def define_method_attribute(attr_name)
def define_method_attribute(attr_name, owner: nil)
generated_attribute_methods.module_eval("def #{attr_name}; @attributes['#{attr_name}']; end", __FILE__, __LINE__)
end