measured-rails 2.0.0 → 2.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a55a2eeb6f2827956ac69666ba215d6a623ca8a3
4
- data.tar.gz: 6068fc25392019de9c7f738abfaa5ee2d92c56dd
3
+ metadata.gz: 6839700295e39343ab0a6056185d6964aeb636db
4
+ data.tar.gz: 93eb92ab23f6fd6f5a765f70db987b0a98adcf20
5
5
  SHA512:
6
- metadata.gz: 97ccdd59582fd05d08b51a76ab35242129ade6e99e13b48a896753c8e2697ee83e0cd20534f0185e690a7732dd686b55cc43755c11c1b4d87a67f292997f7425
7
- data.tar.gz: 7a514f0edf0d5580f893a61388cd37b17603955c0f97f9b7cd30ea8e9f499f9e2e5dd1e7dfdd2919400683d0dbf4cdec4348e61b036a94f06a068e36a26eb3bf
6
+ metadata.gz: a10e9201daf1d78fdaddf32fc7fe24f524596da3f3ccc8305717a8d375e2beb767fd331c1003abcb47ff384fc3c41df9475e896a6fca8f11c9c64126bf38478b
7
+ data.tar.gz: 48277c7b1cec1b920d0f4a4eb627514285be55aba913be1471a145e0192a47bb9cb5e5fb08d848a5cd2216a79be683339ec7b7c315b28b95ab9c79f401667e60
@@ -20,11 +20,11 @@ class MeasuredValidator < ActiveModel::EachValidator
20
20
  return unless measurable_unit_name.present? || measurable_value.present?
21
21
 
22
22
  measurable_unit = measured_class.unit_system.unit_for(measurable_unit_name)
23
- record.errors.add(attribute, message("is not a valid unit")) unless measurable_unit
23
+ record.errors.add(attribute, message(record, "is not a valid unit")) unless measurable_unit
24
24
 
25
- if options[:units]
25
+ if options[:units] && measurable_unit.present?
26
26
  valid_units = Array(options[:units]).map { |unit| measured_class.unit_system.unit_for(unit) }
27
- record.errors.add(attribute, message("is not a valid unit")) unless valid_units.include?(measurable_unit)
27
+ record.errors.add(attribute, message(record, "is not a valid unit")) unless valid_units.include?(measurable_unit)
28
28
  end
29
29
 
30
30
  if measurable_unit && measurable_value.present?
@@ -32,7 +32,7 @@ class MeasuredValidator < ActiveModel::EachValidator
32
32
  comparable_value = value_for(value, record)
33
33
  comparable_value = measured_class.new(comparable_value, measurable_unit) unless comparable_value.is_a?(Measured::Measurable)
34
34
  unless measurable.public_send(CHECKS[option], comparable_value)
35
- record.errors.add(attribute, message("#{measurable.to_s} must be #{CHECKS[option]} #{comparable_value}"))
35
+ record.errors.add(attribute, message(record, "#{measurable.to_s} must be #{CHECKS[option]} #{comparable_value}"))
36
36
  end
37
37
  end
38
38
  end
@@ -40,8 +40,12 @@ class MeasuredValidator < ActiveModel::EachValidator
40
40
 
41
41
  private
42
42
 
43
- def message(default_message)
44
- options[:message] || default_message
43
+ def message(record, default_message)
44
+ if options[:message].respond_to?(:call)
45
+ options[:message].call(record)
46
+ else
47
+ options[:message] || default_message
48
+ end
45
49
  end
46
50
 
47
51
  def value_for(key, record)
@@ -1,5 +1,5 @@
1
1
  module Measured
2
2
  module Rails
3
- VERSION = "2.0.0"
3
+ VERSION = "2.1.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: measured-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin McPhillips
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-04-27 00:00:00.000000000 Z
11
+ date: 2017-08-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: measured
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 2.0.0
19
+ version: 2.1.0
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: 2.0.0
26
+ version: 2.1.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: railties
29
29
  requirement: !ruby/object:Gem::Requirement