measured-rails 2.0.0 → 2.1.0

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
  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