regressor 0.3.4 → 0.4.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: 8c1246eaaa08816d2d69349994d07cdddebc4e9c
4
- data.tar.gz: 07b40698c510b43f50596cf10d1f1979ace9fdff
3
+ metadata.gz: 8d64cf73d04c20acd51f9b2f556402f4db8bc5e7
4
+ data.tar.gz: a374e36cf41028092a97cdd2b80af909b4db39e2
5
5
  SHA512:
6
- metadata.gz: 30e7e590db8a891cfeb7bdfe50e5beffb4b00858fb135fc76eb103a24759956fb0168cbf719e0500246141f3ba7a2668d1877faa0bb86defb9736acd4d40bbcd
7
- data.tar.gz: e99e35ed3082cefce63966fa55789cd6f1ea1064463ac7c351945ea3d40120f4a655dfde33bdd0d7f6afb74b7104b583cb41d476189a8d9995433e1bc86cc4b6
6
+ metadata.gz: 4a468ed532fc84c26dcde872e0685b4ccfda97d2b95d3557a1889d27d67f302c10804d2da88f1714ef060c08c1f97f77e5df79f26ddeadcdc5b0a8f127c73f76
7
+ data.tar.gz: d7df289bfc83b549cdde66e98bab21c6a36c4bd26d410f4d556a0a9f4d53c8de3d4a3daf058fe74aeda25c440a09997d491fa112d0047511071eeaadfd9cfcc3
@@ -4,62 +4,63 @@ module Regressor
4
4
  module Numericality
5
5
  def numericality_validators
6
6
  extract_validators(ActiveModel::Validations::NumericalityValidator).inject([]) do |result, validator|
7
- validator.options.each do |k, v|
8
- case k
9
- when :even
10
- validator.attributes.each do |attribute|
11
- result << "it { is_expected.to validate_numericality_of(:#{attribute}).even}"
12
- end
13
- when :only_integer
14
- validator.attributes.each do |attribute|
15
- result << "it { is_expected.to validate_numericality_of(:#{attribute}).only_integer}"
16
- end
17
- when :allow_nil
18
- validator.attributes.each do |attribute|
19
- result << "it { is_expected.to validate_numericality_of(:#{attribute}).allow_nil}"
20
- end
21
- end
7
+ if validator.options.blank?
8
+ result += validator_without_options(validator)
9
+ else
10
+ result += validator_with_options(validator)
22
11
  end
23
12
  result
24
13
  end.uniq.join("\n\t")
25
14
  end
15
+
16
+ private
17
+
18
+ def validator_without_options(validator)
19
+ validator.attributes.map do |attribute|
20
+ "it { is_expected.to validate_numericality_of(:#{attribute})}"
21
+ end.flatten
22
+ end
23
+
24
+ def validator_with_options(validator)
25
+ validator.options.map do |k, v|
26
+ assertion = (v ? :to : :not_to)
27
+ case k
28
+ when :even
29
+ generate_spec_with_option(validator, :even, assertion)
30
+ when :only_integer
31
+ generate_spec_with_option(validator, :only_integer, assertion)
32
+ when :allow_nil
33
+ generate_spec_with_option(validator, :allow_nil, assertion)
34
+ when :less_than
35
+ generate_spec_with_option(validator, "is_less_than(#{v})") +
36
+ generate_spec_with_option(validator, "is_less_than(#{v + 1})", :not_to)
37
+ when :less_than_or_equal_to
38
+ generate_spec_with_option(validator, "is_less_than_or_equal_to(#{v})") +
39
+ generate_spec_with_option(validator, "is_less_than_or_equal_to(#{v + 1})", :not_to)
40
+ when :equal_to
41
+ generate_spec_with_option(validator, "is_equal_to(#{v})") +
42
+ generate_spec_with_option(validator, "is_equal_to(#{v + 1})", :not_to)
43
+ when :greater_than_or_equal_to
44
+ generate_spec_with_option(validator, "is_greater_than_or_equal_to(#{v})") +
45
+ generate_spec_with_option(validator, "is_greater_than_or_equal_to(#{v - 1})", :not_to)
46
+ when :greater_than
47
+ generate_spec_with_option(validator, "is_greater_than(#{v})") +
48
+ generate_spec_with_option(validator, "is_greater_than(#{v - 1})", :not_to)
49
+ when :odd
50
+ generate_spec_with_option(validator, :odd, assertion)
51
+ when :message
52
+ generate_spec_with_option(validator, "with_message('#{v}')")
53
+ end
54
+ end.flatten
55
+ end
56
+
57
+ def generate_spec_with_option(validator, matcher, assertion = :to)
58
+ validator.attributes.map do |attribute|
59
+ "it { is_expected.#{assertion} validate_numericality_of(:#{attribute}).#{matcher} }"
60
+ end
61
+ end
62
+
26
63
  end
27
64
  end
28
65
  end
29
- end
30
-
31
- # * <tt>:message</tt> - A custom error message (default is: "is not a number").
32
- # * <tt>:only_integer</tt> - Specifies whether the value has to be an
33
- # integer, e.g. an integral value (default is +false+).
34
- # * <tt>:allow_nil</tt> - Skip validation if attribute is +nil+ (default is
35
- # +false+). Notice that for fixnum and float columns empty strings are
36
- # converted to +nil+.
37
- # * <tt>:greater_than</tt> - Specifies the value must be greater than the
38
- # supplied value.
39
- # * <tt>:greater_than_or_equal_to</tt> - Specifies the value must be
40
- # greater than or equal the supplied value.
41
- # * <tt>:equal_to</tt> - Specifies the value must be equal to the supplied
42
- # value.
43
- # * <tt>:less_than</tt> - Specifies the value must be less than the
44
- # supplied value.
45
- # * <tt>:less_than_or_equal_to</tt> - Specifies the value must be less
46
- # than or equal the supplied value.
47
- # * <tt>:other_than</tt> - Specifies the value must be other than the
48
- # supplied value.
49
- # * <tt>:odd</tt> - Specifies the value must be an odd number.
50
- # * <tt>:even</tt> - Specifies the value must be an even number.
51
- #
52
- # There is also a list of default options supported by every validator:
53
- # +:if+, +:unless+, +:on+, +:allow_nil+, +:allow_blank+, and +:strict+ .
54
- # See <tt>ActiveModel::Validation#validates</tt> for more information
55
- #
56
- # The following checks can also be supplied with a proc or a symbol which
57
- # corresponds to a method:
58
- #
59
- # * <tt>:greater_than</tt>
60
- # * <tt>:greater_than_or_equal_to</tt>
61
- # * <tt>:equal_to</tt>
62
- # * <tt>:less_than</tt>
63
- # * <tt>:less_than_or_equal_to</tt>
64
- # * <tt>:only_integer</tt>
65
- #
66
+ end
@@ -1,3 +1,3 @@
1
1
  module Regressor
2
- VERSION = "0.3.4"
2
+ VERSION = "0.4.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: regressor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.4
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Erwin Schens
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-18 00:00:00.000000000 Z
11
+ date: 2015-03-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: shoulda-matchers