measured 3.1.0 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +3 -0
- data/lib/measured/rails/validations.rb +3 -3
- data/lib/measured/version.rb +1 -1
- data/test/rails/validation_test.rb +28 -0
- metadata +3 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d08724bae7ca2587e6ac427df7588e08fcec42dfecbd5d0fd9858560b7d1ec1f
|
4
|
+
data.tar.gz: aa934b2932b9df4648acbd6d65378fdd00add45840834e5ef9119bfd2e627ff9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5aea963586e68d4806e06d98993b2122b13fd19c79a825c035d413b908c8d30213d7fe4d23d4485b7cfdcd63c448db98150f11941bbb32d461a773e781ed5120
|
7
|
+
data.tar.gz: 55dd6b127ae8dcba52fca728246116a55274549bf0ee0ac31931a12393783554cb05dd5b7521714573e9d3c24350f6c88883a30a0110921e1594325660156f42
|
data/CHANGELOG.md
CHANGED
@@ -24,11 +24,11 @@ class MeasuredValidator < ActiveModel::EachValidator
|
|
24
24
|
return unless measurable_unit_name.present? || measurable_value.present?
|
25
25
|
|
26
26
|
measurable_unit = measured_class.unit_system.unit_for(measurable_unit_name)
|
27
|
-
record.errors.add(attribute, message(record, "is not a valid unit")) unless measurable_unit
|
27
|
+
record.errors.add(attribute, :invalid, message: message(record, "is not a valid unit")) unless measurable_unit
|
28
28
|
|
29
29
|
if options[:units] && measurable_unit.present?
|
30
30
|
valid_units = Array(options[:units]).map { |unit| measured_class.unit_system.unit_for(unit) }
|
31
|
-
record.errors.add(attribute, message(record, "is not a valid unit")) unless valid_units.include?(measurable_unit)
|
31
|
+
record.errors.add(attribute, :invalid, message: message(record, "is not a valid unit")) unless valid_units.include?(measurable_unit)
|
32
32
|
end
|
33
33
|
|
34
34
|
if measurable_unit && measurable_value.present?
|
@@ -36,7 +36,7 @@ class MeasuredValidator < ActiveModel::EachValidator
|
|
36
36
|
comparable_value = value_for(value, record)
|
37
37
|
comparable_value = measured_class.new(comparable_value, measurable_unit) unless comparable_value.is_a?(Measured::Measurable)
|
38
38
|
unless measurable.public_send(CHECKS[option], comparable_value)
|
39
|
-
record.errors.add(attribute, message(record, "#{measurable.to_s} must be #{CHECKS[option]} #{comparable_value}"))
|
39
|
+
record.errors.add(attribute, option, message: message(record, "#{measurable.to_s} must be #{CHECKS[option]} #{comparable_value}"))
|
40
40
|
end
|
41
41
|
end
|
42
42
|
end
|
data/lib/measured/version.rb
CHANGED
@@ -39,6 +39,12 @@ class Measured::Rails::ValidationTest < ActiveSupport::TestCase
|
|
39
39
|
assert_equal ["Length is not a valid unit"], thing.errors.full_messages
|
40
40
|
end
|
41
41
|
|
42
|
+
test "validation sets error codes when unit is invalid" do
|
43
|
+
thing.length_unit = "junk"
|
44
|
+
refute thing.valid?
|
45
|
+
assert thing.errors.of_kind?(:length, :invalid)
|
46
|
+
end
|
47
|
+
|
42
48
|
test "validation can override the message with a static string" do
|
43
49
|
thing.length_message_unit = "junk"
|
44
50
|
refute thing.valid?
|
@@ -181,6 +187,28 @@ class Measured::Rails::ValidationTest < ActiveSupport::TestCase
|
|
181
187
|
refute thing.valid?
|
182
188
|
end
|
183
189
|
|
190
|
+
test "validation for numericality puts the proper error types" do
|
191
|
+
thing.length_numericality_inclusive_value = 5
|
192
|
+
refute thing.valid?
|
193
|
+
assert thing.errors.of_kind?(:length_numericality_inclusive, :greater_than_or_equal_to)
|
194
|
+
|
195
|
+
thing.length_numericality_inclusive_value = 25
|
196
|
+
refute thing.valid?
|
197
|
+
assert thing.errors.of_kind?(:length_numericality_inclusive, :less_than_or_equal_to)
|
198
|
+
|
199
|
+
thing.length_numericality_exclusive_value = 2
|
200
|
+
refute thing.valid?
|
201
|
+
assert thing.errors.of_kind?(:length_numericality_exclusive, :greater_than)
|
202
|
+
|
203
|
+
thing.length_numericality_exclusive_value = 550
|
204
|
+
refute thing.valid?
|
205
|
+
assert thing.errors.of_kind?(:length_numericality_exclusive, :less_than)
|
206
|
+
|
207
|
+
thing.length_numericality_equality_value = 200
|
208
|
+
refute thing.valid?
|
209
|
+
assert thing.errors.of_kind?(:length_numericality_equality, :equal_to)
|
210
|
+
end
|
211
|
+
|
184
212
|
test "validation for numericality handles a nil unit but a valid value" do
|
185
213
|
thing.length_numericality_exclusive_unit = nil
|
186
214
|
thing.length_numericality_exclusive_value = 1
|
metadata
CHANGED
@@ -1,16 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: measured
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kevin McPhillips
|
8
8
|
- Jason Gedge
|
9
9
|
- Javier Honduvilla Coto
|
10
|
-
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date:
|
12
|
+
date: 2025-01-28 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: activesupport
|
@@ -227,7 +226,6 @@ licenses:
|
|
227
226
|
- MIT
|
228
227
|
metadata:
|
229
228
|
allowed_push_host: https://rubygems.org
|
230
|
-
post_install_message:
|
231
229
|
rdoc_options: []
|
232
230
|
require_paths:
|
233
231
|
- lib
|
@@ -242,8 +240,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
242
240
|
- !ruby/object:Gem::Version
|
243
241
|
version: '0'
|
244
242
|
requirements: []
|
245
|
-
rubygems_version: 3.
|
246
|
-
signing_key:
|
243
|
+
rubygems_version: 3.6.3
|
247
244
|
specification_version: 4
|
248
245
|
summary: Encapsulate measurements with their units in Ruby
|
249
246
|
test_files:
|