standalone_validator 0.1.0 → 0.2.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: 4868f5c6e7fb2d79339602a81cdbe6dd952605c8
4
- data.tar.gz: c2e756efc4ec3a2b02f72231946369d663e378b1
3
+ metadata.gz: 5240e1091aa1fd4290b125cb6d22cf2a3cd33c2b
4
+ data.tar.gz: fdf9ef36aedb36bc40cfdcf614e0c404294c0f8e
5
5
  SHA512:
6
- metadata.gz: 962ddadc9c26f336502212fa747114a50200d08e90f5af05076eb64f605c2d1ea1b0df3fd32d6b77eb216ac888d1066b450a3bb38fd87ece2d61b61dfad62b43
7
- data.tar.gz: 2f03ddb81348c6b48ba55c0d1b5e92ee434ec8a39eb4fd4fe760450e0b3d8626285bab29d41b797e0e84dcf8b635703f0611caead9e5847fcb70edf1d493588e
6
+ metadata.gz: f9dfd502615a818b236e367367d4ac8102848bf7e0ed13c8c37c41b1c000ce7030b40299007c9c94a389744a446bef026cfbbc9bb86000476db0edab063cf645
7
+ data.tar.gz: e212f3ce900f2b2ed9abece568defc32fa05bb3ef88178be2bfe025dd32f56c24174f6da6067c00c06fd202a79a7353673c90df344e9fcd99c33956c2f1e5f30
data/.travis.yml CHANGED
@@ -1,11 +1,10 @@
1
1
  language: ruby
2
2
  rvm:
3
- - "1.8.7"
4
- - "1.9.2"
5
3
  - "1.9.3"
6
4
  - "2.0.0"
5
+ - "2.1.0"
7
6
  - "jruby-19mode"
8
- - "rbx-19mode"
7
+ - "rbx"
9
8
  bundler_args: --binstubs --without debugging
10
9
  before_install:
11
10
  - gem install bundler
@@ -29,8 +29,6 @@ class StandaloneValidator
29
29
  module ClassMethods
30
30
  def include_validation(&block)
31
31
  super do |object, result|
32
- condition = CommonRailsOptions.condition_for(options)
33
-
34
32
  if condition.call(object)
35
33
  instance_exec(object, result, &block)
36
34
  end
@@ -48,6 +46,10 @@ class StandaloneValidator
48
46
  private
49
47
  attr_reader :attributes, :options
50
48
 
49
+ def condition
50
+ @condition ||= CommonRailsOptions.condition_for(options)
51
+ end
52
+
51
53
  def each_validated_attribute_on(object)
52
54
  return to_enum(:each_validated_attribute, object) unless block_given?
53
55
 
@@ -16,8 +16,8 @@ class StandaloneValidator
16
16
  end
17
17
  end
18
18
 
19
- def requires_field?(field)
20
- attributes.include?(field.to_sym)
19
+ def requires_field?(field, object)
20
+ attributes.include?(field.to_sym) && condition.call(object)
21
21
  end
22
22
  end
23
23
  end
@@ -1,3 +1,3 @@
1
1
  class StandaloneValidator
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -81,12 +81,12 @@ class StandaloneValidator
81
81
  validation_result
82
82
  end
83
83
 
84
- def requires_field?(field)
84
+ def requires_field?(field, object)
85
85
  return true if self.class.required_fields.include?(field.to_sym)
86
86
 
87
87
  validations.any? do |validation|
88
88
  if validation.respond_to?(:requires_field?)
89
- validation.requires_field?(field)
89
+ validation.requires_field?(field, object)
90
90
  end
91
91
  end
92
92
  end
@@ -46,8 +46,23 @@ module StandaloneValidator::NamedValidations
46
46
 
47
47
  it "requires the attributes it was given on construction" do
48
48
  validator = ValidatesPresenceOf.new :foo
49
- expect(validator.requires_field?(:foo)).to be_true
50
- expect(validator.requires_field?(:bar)).to be_false
49
+ expect(validator.requires_field?(:foo, nil)).to be_true
50
+ expect(validator.requires_field?(:bar, nil)).to be_false
51
+ end
52
+
53
+ context "if it was given a conditional" do
54
+ it "uses the conditional to decide if a field is required" do
55
+ validator = ValidatesPresenceOf.new(:foo, if: :bar)
56
+
57
+ requires = double(foo: blank_value, bar: true)
58
+ doesnt_require = double(foo: blank_value, bar: false)
59
+
60
+ result = validator.requires_field?(:foo, requires)
61
+ expect(result).to be_true
62
+
63
+ result = validator.requires_field?(:foo, doesnt_require)
64
+ expect(result).to be_false
65
+ end
51
66
  end
52
67
  end
53
68
  end
metadata CHANGED
@@ -1,97 +1,97 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: standalone_validator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Renato Zannon
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-10-23 00:00:00.000000000 Z
11
+ date: 2014-02-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: backports
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '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
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: hamster
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0.4'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0.4'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: virtus
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: '1.0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: bundler
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ~>
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
61
  version: '1.3'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ~>
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '1.3'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ~>
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
75
  version: '2.13'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ~>
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '2.13'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rake
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - '>='
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - '>='
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  description: |2
@@ -103,9 +103,9 @@ executables: []
103
103
  extensions: []
104
104
  extra_rdoc_files: []
105
105
  files:
106
- - .gitignore
107
- - .rspec
108
- - .travis.yml
106
+ - ".gitignore"
107
+ - ".rspec"
108
+ - ".travis.yml"
109
109
  - Gemfile
110
110
  - LICENSE.txt
111
111
  - README.md
@@ -135,17 +135,17 @@ require_paths:
135
135
  - lib
136
136
  required_ruby_version: !ruby/object:Gem::Requirement
137
137
  requirements:
138
- - - '>='
138
+ - - ">="
139
139
  - !ruby/object:Gem::Version
140
140
  version: '0'
141
141
  required_rubygems_version: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - '>='
143
+ - - ">="
144
144
  - !ruby/object:Gem::Version
145
145
  version: '0'
146
146
  requirements: []
147
147
  rubyforge_project:
148
- rubygems_version: 2.0.3
148
+ rubygems_version: 2.2.0
149
149
  signing_key:
150
150
  specification_version: 4
151
151
  summary: PORO standalone validators compatible with ActiveRecord