hash_validator 0.2.2 → 0.2.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -0
- data/lib/hash_validator/validators.rb +1 -0
- data/lib/hash_validator/validators/boolean_validator.rb +13 -0
- data/lib/hash_validator/version.rb +1 -1
- data/spec/validators/boolean_spec.rb +46 -0
- metadata +4 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ef7bafe9d1c4d43bec0450101f7849224c43ccbe
|
4
|
+
data.tar.gz: bf2cf47a021f8a01d84a1cbb7344e73be0cf0026
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2b5ac97feaac7377ae57fc21cf1bc1910a532f0e1e413d1a2d40c10efc1ac45431544a207fd2585533216d310da8cdfe2cdbc0b5ca727435cd271c4b20d318db
|
7
|
+
data.tar.gz: 8978b24518ef2cfdf99d86ea2dd1b3380cc04c3f60c1931f119854648c51a37f1ca1ba6735c19cc80b4ced4e29a975453a1178b4631830be10e94c9a75240463
|
data/README.md
CHANGED
@@ -28,4 +28,5 @@ require 'hash_validator/validators/simple_validator'
|
|
28
28
|
require 'hash_validator/validators/hash_validator'
|
29
29
|
require 'hash_validator/validators/presence_validator'
|
30
30
|
require 'hash_validator/validators/simple_type_validators'
|
31
|
+
require 'hash_validator/validators/boolean_validator'
|
31
32
|
require 'hash_validator/validators/email_validator'
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class HashValidator::Validator::BooleanValidator < HashValidator::Validator::Base
|
2
|
+
def initialize
|
3
|
+
super('boolean') # The name of the validator
|
4
|
+
end
|
5
|
+
|
6
|
+
def validate(key, value, validations, errors)
|
7
|
+
unless [TrueClass, FalseClass].include?(value.class)
|
8
|
+
errors[key] = presence_error_message
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
HashValidator.append_validator(HashValidator::Validator::BooleanValidator.new)
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe HashValidator::Validator::Base do
|
4
|
+
let(:validator) { HashValidator::Validator::BooleanValidator.new }
|
5
|
+
let(:errors) { Hash.new }
|
6
|
+
|
7
|
+
describe '#should_validate?' do
|
8
|
+
it 'should validate the name "boolean"' do
|
9
|
+
validator.should_validate?('boolean').should be_true
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'should not validate other names' do
|
13
|
+
validator.should_validate?('string').should be_false
|
14
|
+
validator.should_validate?('array').should be_false
|
15
|
+
validator.should_validate?(nil).should be_false
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
describe '#validate' do
|
20
|
+
it 'should validate a true boolean with true' do
|
21
|
+
validator.validate(:key, true, {}, errors)
|
22
|
+
|
23
|
+
errors.should be_empty
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'should validate a false boolean with true' do
|
27
|
+
validator.validate(:key, false, {}, errors)
|
28
|
+
|
29
|
+
errors.should be_empty
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'should validate a nil with false' do
|
33
|
+
validator.validate(:key, nil, {}, errors)
|
34
|
+
|
35
|
+
errors.should_not be_empty
|
36
|
+
errors.should eq({ key: 'boolean required' })
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'should validate a number with false' do
|
40
|
+
validator.validate(:key, 123, {}, errors)
|
41
|
+
|
42
|
+
errors.should_not be_empty
|
43
|
+
errors.should eq({ key: 'boolean required' })
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hash_validator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Brooks
|
@@ -85,6 +85,7 @@ files:
|
|
85
85
|
- lib/hash_validator/base.rb
|
86
86
|
- lib/hash_validator/validators.rb
|
87
87
|
- lib/hash_validator/validators/base.rb
|
88
|
+
- lib/hash_validator/validators/boolean_validator.rb
|
88
89
|
- lib/hash_validator/validators/email_validator.rb
|
89
90
|
- lib/hash_validator/validators/hash_validator.rb
|
90
91
|
- lib/hash_validator/validators/presence_validator.rb
|
@@ -95,6 +96,7 @@ files:
|
|
95
96
|
- spec/hash_validator_spec_helper.rb
|
96
97
|
- spec/spec_helper.rb
|
97
98
|
- spec/validators/base_spec.rb
|
99
|
+
- spec/validators/boolean_spec.rb
|
98
100
|
- spec/validators/email_spec.rb
|
99
101
|
- spec/validators/presence_spec.rb
|
100
102
|
- spec/validators/simple_spec.rb
|
@@ -129,6 +131,7 @@ test_files:
|
|
129
131
|
- spec/hash_validator_spec_helper.rb
|
130
132
|
- spec/spec_helper.rb
|
131
133
|
- spec/validators/base_spec.rb
|
134
|
+
- spec/validators/boolean_spec.rb
|
132
135
|
- spec/validators/email_spec.rb
|
133
136
|
- spec/validators/presence_spec.rb
|
134
137
|
- spec/validators/simple_spec.rb
|