activemodel 6.1.0.rc2 → 6.1.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 73897389085a337d37fd217732c23d639014f9ef7bba9928553000d40826838c
4
- data.tar.gz: 1451352712ab5c35dc23e010aa7cd6eeb4aa720966a9632b738a2840f3215b74
3
+ metadata.gz: 0c76c877a2ad6e39c8f29713e55c598f757347ba5ba9fe3df8ac63478107bca6
4
+ data.tar.gz: d21f47ccc1141993b518fcd4a0ee209d435d8d4cca9e97857c70307de66e2d8c
5
5
  SHA512:
6
- metadata.gz: f60de09baec917855aef1dbb43cd18aa50c79ef1ce1a7984a585677a9b13dba4aa5305eb7404db02076b6dd4189364d20ac0025084927544a1fea7e945d1cd3b
7
- data.tar.gz: 186b7fa9b0cf4c20777ffcafefba10372d7a919a5b33df2e650cfae6febee16a9031b0bdacd39b2cfd5d1c388644fee41cb8d6e587b20dbfa896a424466c33e1
6
+ metadata.gz: 4ae9b75bb64cd8956d2399952b9ed053c8aff744a885d61d3039cf1bccec1b40bdd02a50a6bb79203d0c85c01d8b3abb8f04eaeca7f12380c75733853042414f
7
+ data.tar.gz: 39b87488692438059cce4e0490269820fd940783287ab5e5a3b9b14207314063b7b4fa65c9a060863ae1def760b83e28ecfeff7734c02b10d4b356b2096a17d7
data/CHANGELOG.md CHANGED
@@ -1,9 +1,24 @@
1
- ## Rails 6.1.0.rc2 (December 01, 2020) ##
1
+ ## Rails 6.1.3 (February 17, 2021) ##
2
2
 
3
3
  * No changes.
4
4
 
5
5
 
6
- ## Rails 6.1.0.rc1 (November 02, 2020) ##
6
+ ## Rails 6.1.2.1 (February 10, 2021) ##
7
+
8
+ * No changes.
9
+
10
+
11
+ ## Rails 6.1.2 (February 09, 2021) ##
12
+
13
+ * No changes.
14
+
15
+
16
+ ## Rails 6.1.1 (January 07, 2021) ##
17
+
18
+ * No changes.
19
+
20
+
21
+ ## Rails 6.1.0 (December 09, 2020) ##
7
22
 
8
23
  * Pass in `base` instead of `base_class` to Error.human_attribute_name
9
24
 
data/README.rdoc CHANGED
@@ -241,7 +241,7 @@ The latest version of Active Model can be installed with RubyGems:
241
241
 
242
242
  Source code can be downloaded as part of the Rails project on GitHub
243
243
 
244
- * https://github.com/rails/rails/tree/master/activemodel
244
+ * https://github.com/rails/rails/tree/main/activemodel
245
245
 
246
246
 
247
247
  == License
@@ -164,10 +164,10 @@ module ActiveModel
164
164
  type.deserialize(value)
165
165
  end
166
166
 
167
- def _original_value_for_database
168
- value_before_type_cast
169
- end
170
- private :_original_value_for_database
167
+ private
168
+ def _original_value_for_database
169
+ value_before_type_cast
170
+ end
171
171
  end
172
172
 
173
173
  class FromUser < Attribute # :nodoc:
@@ -147,7 +147,7 @@ module ActiveModel
147
147
  conditional = ActiveSupport::Callbacks::Conditionals::Value.new { |v|
148
148
  v != false
149
149
  }
150
- options[:if] = Array(options[:if]) << conditional
150
+ options[:if] = Array(options[:if]) + [conditional]
151
151
  set_callback(:"#{callback}", :after, *args, options, &block)
152
152
  end
153
153
  end
@@ -119,11 +119,11 @@ module ActiveModel
119
119
  attr_reader :base
120
120
  # The attribute of +base+ which the error belongs to
121
121
  attr_reader :attribute
122
- # The type of error, defaults to `:invalid` unless specified
122
+ # The type of error, defaults to +:invalid+ unless specified
123
123
  attr_reader :type
124
- # The raw value provided as the second parameter when calling `errors#add`
124
+ # The raw value provided as the second parameter when calling +errors#add+
125
125
  attr_reader :raw_type
126
- # The options provided when calling `errors#add`
126
+ # The options provided when calling +errors#add+
127
127
  attr_reader :options
128
128
 
129
129
  # Returns the error message.
@@ -110,7 +110,7 @@ module ActiveModel
110
110
  # Imports one error
111
111
  # Imported errors are wrapped as a NestedError,
112
112
  # providing access to original error object.
113
- # If attribute or type needs to be overridden, use `override_options`.
113
+ # If attribute or type needs to be overridden, use +override_options+.
114
114
  #
115
115
  # override_options - Hash
116
116
  # @option override_options [Symbol] :attribute Override the attribute the error belongs to
@@ -9,8 +9,8 @@ module ActiveModel
9
9
  module VERSION
10
10
  MAJOR = 6
11
11
  MINOR = 1
12
- TINY = 0
13
- PRE = "rc2"
12
+ TINY = 3
13
+ PRE = nil
14
14
 
15
15
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
16
16
  end
@@ -56,14 +56,7 @@ module ActiveModel
56
56
  def before_validation(*args, &block)
57
57
  options = args.extract_options!
58
58
 
59
- if options.key?(:on)
60
- options = options.dup
61
- options[:on] = Array(options[:on])
62
- options[:if] = Array(options[:if])
63
- options[:if].unshift ->(o) {
64
- !(options[:on] & Array(o.validation_context)).empty?
65
- }
66
- end
59
+ set_options_for_callback(options)
67
60
 
68
61
  set_callback(:validation, :before, *args, options, &block)
69
62
  end
@@ -99,16 +92,23 @@ module ActiveModel
99
92
  options = options.dup
100
93
  options[:prepend] = true
101
94
 
102
- if options.key?(:on)
103
- options[:on] = Array(options[:on])
104
- options[:if] = Array(options[:if])
105
- options[:if].unshift ->(o) {
106
- !(options[:on] & Array(o.validation_context)).empty?
107
- }
108
- end
95
+ set_options_for_callback(options)
109
96
 
110
97
  set_callback(:validation, :after, *args, options, &block)
111
98
  end
99
+
100
+ private
101
+ def set_options_for_callback(options)
102
+ if options.key?(:on)
103
+ options[:on] = Array(options[:on])
104
+ options[:if] = [
105
+ ->(o) {
106
+ !(options[:on] & Array(o.validation_context)).empty?
107
+ },
108
+ *options[:if]
109
+ ]
110
+ end
111
+ end
112
112
  end
113
113
 
114
114
  private
@@ -64,6 +64,8 @@ module ActiveModel
64
64
  def parse_as_number(raw_value, precision, scale)
65
65
  if raw_value.is_a?(Float)
66
66
  parse_float(raw_value, precision, scale)
67
+ elsif raw_value.is_a?(BigDecimal)
68
+ round(raw_value, scale)
67
69
  elsif raw_value.is_a?(Numeric)
68
70
  raw_value
69
71
  elsif is_integer?(raw_value)
@@ -74,7 +76,11 @@ module ActiveModel
74
76
  end
75
77
 
76
78
  def parse_float(raw_value, precision, scale)
77
- (scale ? raw_value.truncate(scale) : raw_value).to_d(precision)
79
+ round(raw_value, scale).to_d(precision)
80
+ end
81
+
82
+ def round(raw_value, scale)
83
+ scale ? raw_value.round(scale) : raw_value
78
84
  end
79
85
 
80
86
  def is_number?(raw_value, precision, scale)
@@ -108,8 +114,8 @@ module ActiveModel
108
114
  end
109
115
  end
110
116
 
111
- def read_attribute_for_validation(record, attr_name)
112
- return super if record_attribute_changed_in_place?(record, attr_name)
117
+ def prepare_value_for_validation(value, record, attr_name)
118
+ return value if record_attribute_changed_in_place?(record, attr_name)
113
119
 
114
120
  came_from_user = :"#{attr_name}_came_from_user?"
115
121
 
@@ -126,7 +132,7 @@ module ActiveModel
126
132
  end
127
133
  end
128
134
 
129
- raw_value || super
135
+ raw_value || value
130
136
  end
131
137
 
132
138
  def record_attribute_changed_in_place?(record, attr_name)
@@ -147,8 +147,9 @@ module ActiveModel
147
147
  # override +validate_each+ with validation logic.
148
148
  def validate(record)
149
149
  attributes.each do |attribute|
150
- value = read_attribute_for_validation(record, attribute)
150
+ value = record.read_attribute_for_validation(attribute)
151
151
  next if (value.nil? && options[:allow_nil]) || (value.blank? && options[:allow_blank])
152
+ value = prepare_value_for_validation(value, record, attribute)
152
153
  validate_each(record, attribute, value)
153
154
  end
154
155
  end
@@ -166,8 +167,8 @@ module ActiveModel
166
167
  end
167
168
 
168
169
  private
169
- def read_attribute_for_validation(record, attr_name)
170
- record.read_attribute_for_validation(attr_name)
170
+ def prepare_value_for_validation(value, record, attr_name)
171
+ value
171
172
  end
172
173
  end
173
174
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activemodel
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.1.0.rc2
4
+ version: 6.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Heinemeier Hansson
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-12-01 00:00:00.000000000 Z
11
+ date: 2021-02-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 6.1.0.rc2
19
+ version: 6.1.3
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 6.1.0.rc2
26
+ version: 6.1.3
27
27
  description: A toolkit for building modeling frameworks like Active Record. Rich support
28
28
  for attributes, callbacks, validations, serialization, internationalization, and
29
29
  testing.
@@ -104,11 +104,11 @@ licenses:
104
104
  - MIT
105
105
  metadata:
106
106
  bug_tracker_uri: https://github.com/rails/rails/issues
107
- changelog_uri: https://github.com/rails/rails/blob/v6.1.0.rc2/activemodel/CHANGELOG.md
108
- documentation_uri: https://api.rubyonrails.org/v6.1.0.rc2/
107
+ changelog_uri: https://github.com/rails/rails/blob/v6.1.3/activemodel/CHANGELOG.md
108
+ documentation_uri: https://api.rubyonrails.org/v6.1.3/
109
109
  mailing_list_uri: https://discuss.rubyonrails.org/c/rubyonrails-talk
110
- source_code_uri: https://github.com/rails/rails/tree/v6.1.0.rc2/activemodel
111
- post_install_message:
110
+ source_code_uri: https://github.com/rails/rails/tree/v6.1.3/activemodel
111
+ post_install_message:
112
112
  rdoc_options: []
113
113
  require_paths:
114
114
  - lib
@@ -119,12 +119,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
119
119
  version: 2.5.0
120
120
  required_rubygems_version: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - ">"
122
+ - - ">="
123
123
  - !ruby/object:Gem::Version
124
- version: 1.3.1
124
+ version: '0'
125
125
  requirements: []
126
- rubygems_version: 3.1.4
127
- signing_key:
126
+ rubygems_version: 3.2.3
127
+ signing_key:
128
128
  specification_version: 4
129
129
  summary: A toolkit for building modeling frameworks (part of Rails).
130
130
  test_files: []