hash_assertions 0.0.1 → 0.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.
- data/.travis.yml +6 -0
- data/README.md +9 -6
- data/lib/hash_assertions/assert_keys_with_values.rb +2 -2
- data/lib/hash_assertions/version.rb +1 -1
- data/spec/hash_assertions/assert_keys_with_values_spec.rb +5 -7
- metadata +36 -21
- checksums.yaml +0 -7
data/.travis.yml
ADDED
data/README.md
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# hash_assertions
|
2
2
|
|
3
|
+
[](https://travis-ci.org/tomekw/hash_assertions)
|
4
|
+
|
3
5
|
Hash assertions: assert required keys, assert keys with values
|
4
6
|
|
5
7
|
## Installation
|
@@ -57,16 +59,17 @@ require "hash_assertions/assert_keys_with_values"
|
|
57
59
|
# Raises nothing
|
58
60
|
{ foo: "bar", baz: "qux" }.assert_keys_with_values(:foo, :baz)
|
59
61
|
|
60
|
-
# Raises
|
61
|
-
|
62
|
-
|
63
|
-
# Raises ArgumentError, "Blank value for key: baz"
|
62
|
+
# Raises nothing
|
63
|
+
# (blank string or empty array is treated as valid value)
|
64
64
|
{ foo: "bar", baz: "" }.assert_keys_with_values(:foo, :baz)
|
65
65
|
|
66
|
-
# Raises ArgumentError, "
|
66
|
+
# Raises ArgumentError, "No value for key: baz"
|
67
|
+
{ foo: "bar", baz: nil }.assert_keys_with_values(:foo, :baz)
|
68
|
+
|
69
|
+
# Raises ArgumentError, "No value for key: baz"
|
67
70
|
{ foo: "bar", baz: "qux" }.assert_keys_with_values(:foo, "baz")
|
68
71
|
|
69
|
-
# Raises ArgumentError, "
|
72
|
+
# Raises ArgumentError, "No value for key: [:foo, :baz]"
|
70
73
|
# (assert_keys_with_values doesn't flatten arguments!)
|
71
74
|
{ foo: "bar", baz: "qux" }.assert_keys_with_values([:foo, :baz])
|
72
75
|
```
|
@@ -3,8 +3,8 @@ class Hash
|
|
3
3
|
keys_with_values.each do |key_with_value|
|
4
4
|
required_value = fetch(key_with_value, nil)
|
5
5
|
|
6
|
-
if required_value.nil?
|
7
|
-
raise ArgumentError, "
|
6
|
+
if required_value.nil?
|
7
|
+
raise ArgumentError, "No value for key: #{key_with_value}"
|
8
8
|
end
|
9
9
|
end
|
10
10
|
end
|
@@ -18,17 +18,15 @@ describe "assert_keys_with_values" do
|
|
18
18
|
it "fails" do
|
19
19
|
expect do
|
20
20
|
hash.assert_keys_with_values(*present_keys?)
|
21
|
-
end.to raise_error(ArgumentError, "
|
21
|
+
end.to raise_error(ArgumentError, "No value for key: bar")
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
25
25
|
context "when some keys with empty values" do
|
26
26
|
let(:present_keys?) { [:baz, :qux] }
|
27
27
|
|
28
|
-
it "
|
29
|
-
expect
|
30
|
-
hash.assert_keys_with_values(*present_keys?)
|
31
|
-
end.to raise_error(ArgumentError, "Blank value for key: qux")
|
28
|
+
it "passes" do
|
29
|
+
expect { hash.assert_keys_with_values(*present_keys?) }.to_not raise_error
|
32
30
|
end
|
33
31
|
end
|
34
32
|
|
@@ -38,7 +36,7 @@ describe "assert_keys_with_values" do
|
|
38
36
|
it "fails" do
|
39
37
|
expect do
|
40
38
|
hash.assert_keys_with_values(*present_keys?)
|
41
|
-
end.to raise_error(ArgumentError, "
|
39
|
+
end.to raise_error(ArgumentError, "No value for key: foo")
|
42
40
|
end
|
43
41
|
end
|
44
42
|
|
@@ -48,7 +46,7 @@ describe "assert_keys_with_values" do
|
|
48
46
|
it "fails" do
|
49
47
|
expect do
|
50
48
|
hash.assert_keys_with_values(present_keys?)
|
51
|
-
end.to raise_error(ArgumentError, "
|
49
|
+
end.to raise_error(ArgumentError, "No value for key: [:baz, :bar]")
|
52
50
|
end
|
53
51
|
end
|
54
52
|
end
|
metadata
CHANGED
@@ -1,57 +1,64 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hash_assertions
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Tomek Wałkuski
|
8
|
-
autorequire:
|
9
|
+
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2013-06-
|
12
|
+
date: 2013-06-10 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: bundler
|
15
|
-
|
16
|
+
version_requirements: !ruby/object:Gem::Requirement
|
16
17
|
requirements:
|
17
18
|
- - ~>
|
18
19
|
- !ruby/object:Gem::Version
|
19
20
|
version: '1.3'
|
20
|
-
|
21
|
-
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
21
|
+
none: false
|
22
|
+
requirement: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.3'
|
27
|
+
none: false
|
28
|
+
prerelease: false
|
29
|
+
type: :development
|
27
30
|
- !ruby/object:Gem::Dependency
|
28
31
|
name: rake
|
29
|
-
|
32
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
33
|
requirements:
|
31
34
|
- - '>='
|
32
35
|
- !ruby/object:Gem::Version
|
33
36
|
version: '0'
|
34
|
-
|
35
|
-
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
none: false
|
38
|
+
requirement: !ruby/object:Gem::Requirement
|
37
39
|
requirements:
|
38
40
|
- - '>='
|
39
41
|
- !ruby/object:Gem::Version
|
40
42
|
version: '0'
|
43
|
+
none: false
|
44
|
+
prerelease: false
|
45
|
+
type: :development
|
41
46
|
- !ruby/object:Gem::Dependency
|
42
47
|
name: rspec
|
43
|
-
|
48
|
+
version_requirements: !ruby/object:Gem::Requirement
|
44
49
|
requirements:
|
45
50
|
- - '>='
|
46
51
|
- !ruby/object:Gem::Version
|
47
52
|
version: '0'
|
48
|
-
|
49
|
-
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
53
|
+
none: false
|
54
|
+
requirement: !ruby/object:Gem::Requirement
|
51
55
|
requirements:
|
52
56
|
- - '>='
|
53
57
|
- !ruby/object:Gem::Version
|
54
58
|
version: '0'
|
59
|
+
none: false
|
60
|
+
prerelease: false
|
61
|
+
type: :development
|
55
62
|
description: Hash assertions
|
56
63
|
email:
|
57
64
|
- ja@jestem.tw
|
@@ -61,6 +68,7 @@ extra_rdoc_files: []
|
|
61
68
|
files:
|
62
69
|
- .gitignore
|
63
70
|
- .rspec
|
71
|
+
- .travis.yml
|
64
72
|
- Gemfile
|
65
73
|
- LICENSE.txt
|
66
74
|
- README.md
|
@@ -76,8 +84,7 @@ files:
|
|
76
84
|
homepage: https://github.com/tomekw/hash_assertions
|
77
85
|
licenses:
|
78
86
|
- MIT
|
79
|
-
|
80
|
-
post_install_message:
|
87
|
+
post_install_message:
|
81
88
|
rdoc_options: []
|
82
89
|
require_paths:
|
83
90
|
- lib
|
@@ -85,17 +92,25 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
85
92
|
requirements:
|
86
93
|
- - '>='
|
87
94
|
- !ruby/object:Gem::Version
|
95
|
+
segments:
|
96
|
+
- 0
|
88
97
|
version: '0'
|
98
|
+
hash: 2
|
99
|
+
none: false
|
89
100
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
90
101
|
requirements:
|
91
102
|
- - '>='
|
92
103
|
- !ruby/object:Gem::Version
|
104
|
+
segments:
|
105
|
+
- 0
|
93
106
|
version: '0'
|
107
|
+
hash: 2
|
108
|
+
none: false
|
94
109
|
requirements: []
|
95
|
-
rubyforge_project:
|
96
|
-
rubygems_version:
|
97
|
-
signing_key:
|
98
|
-
specification_version:
|
110
|
+
rubyforge_project:
|
111
|
+
rubygems_version: 1.8.24
|
112
|
+
signing_key:
|
113
|
+
specification_version: 3
|
99
114
|
summary: 'Hash assertions: assert required keys, assert keys with values'
|
100
115
|
test_files:
|
101
116
|
- spec/hash_assertions/assert_keys_with_values_spec.rb
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: e6e08b8f2329e6d39a20b165eda60a9866a8b973
|
4
|
-
data.tar.gz: 3a78f7206f45e7736d1fab0575fc9d537c4d02c9
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: b6b4c506c2dbe5b8db36c50308ed86c65cb371c2b7dffa4f66d566a95065a8b7b46ad77c211a7a026e24a518bd5383eed3a48d2fd70cb8307eeff803b8971d8a
|
7
|
-
data.tar.gz: 67f2718cbd7d40bcb7a655316c10850e6ee7cccf378740bfb525e363321e4edba352a9e021b33ab9f98aad6d5e9b07896ae87399eacb58d2c702c98d9e3a7739
|