hash_dealer 1.5.2 → 1.6.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.document +5 -0
- data/.rspec +3 -0
- data/Gemfile +4 -3
- data/Gemfile.lock +24 -28
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/hash_dealer.gemspec +33 -11
- data/lib/comparator.rb +6 -19
- data/lib/core_extensions.rb +9 -7
- data/lib/hash.rb +4 -21
- data/lib/matcher.rb +10 -9
- data/spec/lib/matcher_spec.rb +0 -22
- metadata +20 -70
- data/coverage/assets/0.5.3/app.js +0 -88
- data/coverage/assets/0.5.3/fancybox/blank.gif +0 -0
- data/coverage/assets/0.5.3/fancybox/fancy_close.png +0 -0
- data/coverage/assets/0.5.3/fancybox/fancy_loading.png +0 -0
- data/coverage/assets/0.5.3/fancybox/fancy_nav_left.png +0 -0
- data/coverage/assets/0.5.3/fancybox/fancy_nav_right.png +0 -0
- data/coverage/assets/0.5.3/fancybox/fancy_shadow_e.png +0 -0
- data/coverage/assets/0.5.3/fancybox/fancy_shadow_n.png +0 -0
- data/coverage/assets/0.5.3/fancybox/fancy_shadow_ne.png +0 -0
- data/coverage/assets/0.5.3/fancybox/fancy_shadow_nw.png +0 -0
- data/coverage/assets/0.5.3/fancybox/fancy_shadow_s.png +0 -0
- data/coverage/assets/0.5.3/fancybox/fancy_shadow_se.png +0 -0
- data/coverage/assets/0.5.3/fancybox/fancy_shadow_sw.png +0 -0
- data/coverage/assets/0.5.3/fancybox/fancy_shadow_w.png +0 -0
- data/coverage/assets/0.5.3/fancybox/fancy_title_left.png +0 -0
- data/coverage/assets/0.5.3/fancybox/fancy_title_main.png +0 -0
- data/coverage/assets/0.5.3/fancybox/fancy_title_over.png +0 -0
- data/coverage/assets/0.5.3/fancybox/fancy_title_right.png +0 -0
- data/coverage/assets/0.5.3/fancybox/fancybox-x.png +0 -0
- data/coverage/assets/0.5.3/fancybox/fancybox-y.png +0 -0
- data/coverage/assets/0.5.3/fancybox/fancybox.png +0 -0
- data/coverage/assets/0.5.3/fancybox/jquery.fancybox-1.3.1.css +0 -363
- data/coverage/assets/0.5.3/fancybox/jquery.fancybox-1.3.1.pack.js +0 -44
- data/coverage/assets/0.5.3/favicon_green.png +0 -0
- data/coverage/assets/0.5.3/favicon_red.png +0 -0
- data/coverage/assets/0.5.3/favicon_yellow.png +0 -0
- data/coverage/assets/0.5.3/highlight.css +0 -129
- data/coverage/assets/0.5.3/highlight.pack.js +0 -1
- data/coverage/assets/0.5.3/jquery-1.6.2.min.js +0 -18
- data/coverage/assets/0.5.3/jquery.dataTables.min.js +0 -152
- data/coverage/assets/0.5.3/jquery.timeago.js +0 -141
- data/coverage/assets/0.5.3/jquery.url.js +0 -174
- data/coverage/assets/0.5.3/loading.gif +0 -0
- data/coverage/assets/0.5.3/magnify.png +0 -0
- data/coverage/assets/0.5.3/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/coverage/assets/0.5.3/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/coverage/assets/0.5.3/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/coverage/assets/0.5.3/smoothness/images/ui-icons_222222_256x240.png +0 -0
- data/coverage/assets/0.5.3/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
- data/coverage/assets/0.5.3/smoothness/images/ui-icons_454545_256x240.png +0 -0
- data/coverage/assets/0.5.3/smoothness/images/ui-icons_888888_256x240.png +0 -0
- data/coverage/assets/0.5.3/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/coverage/assets/0.5.3/smoothness/jquery-ui-1.8.4.custom.css +0 -295
- data/coverage/assets/0.5.3/stylesheet.css +0 -383
- data/coverage/index.html +0 -4367
- data/pkg/hash_dealer-1.4.10.gem +0 -0
data/.document
ADDED
data/.rspec
ADDED
data/Gemfile
CHANGED
@@ -12,9 +12,10 @@ gem "colorize"
|
|
12
12
|
group :development do
|
13
13
|
gem "bundler"
|
14
14
|
gem "jeweler"
|
15
|
-
gem
|
16
|
-
gem "rcov"
|
15
|
+
gem 'debugger'
|
16
|
+
# gem "rcov"
|
17
|
+
gem 'rspec'
|
18
|
+
gem 'rspec-core'
|
17
19
|
gem "guard-rspec", "=0.4.0"
|
18
|
-
gem "ruby-debug19", :require => "ruby-debug"
|
19
20
|
gem "simplecov"
|
20
21
|
end
|
data/Gemfile.lock
CHANGED
@@ -3,43 +3,39 @@ GEM
|
|
3
3
|
specs:
|
4
4
|
activesupport (3.1.3)
|
5
5
|
multi_json (~> 1.0)
|
6
|
-
archive-tar-minitar (0.5.2)
|
7
6
|
colorize (0.5.8)
|
8
|
-
columnize (0.3.
|
9
|
-
|
7
|
+
columnize (0.3.6)
|
8
|
+
debugger (1.6.1)
|
9
|
+
columnize (>= 0.3.1)
|
10
|
+
debugger-linecache (~> 1.2.0)
|
11
|
+
debugger-ruby_core_source (~> 1.2.3)
|
12
|
+
debugger-linecache (1.2.0)
|
13
|
+
debugger-ruby_core_source (1.2.3)
|
14
|
+
diff-lcs (1.2.4)
|
10
15
|
git (1.2.5)
|
11
16
|
guard (0.8.8)
|
12
17
|
thor (~> 0.14.6)
|
13
18
|
guard-rspec (0.4.0)
|
14
19
|
guard (>= 0.4.0)
|
15
20
|
i18n (0.6.0)
|
16
|
-
jeweler (1.
|
21
|
+
jeweler (1.8.4)
|
17
22
|
bundler (~> 1.0)
|
18
23
|
git (>= 1.2.5)
|
19
24
|
rake
|
20
|
-
|
21
|
-
|
25
|
+
rdoc
|
26
|
+
json (1.8.0)
|
22
27
|
multi_json (1.0.3)
|
23
|
-
rake (
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
rspec-
|
28
|
-
rspec-
|
29
|
-
|
30
|
-
rspec-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
columnize (>= 0.3.1)
|
35
|
-
linecache19 (>= 0.5.11)
|
36
|
-
ruby_core_source (>= 0.1.4)
|
37
|
-
ruby-debug19 (0.11.6)
|
38
|
-
columnize (>= 0.3.1)
|
39
|
-
linecache19 (>= 0.5.11)
|
40
|
-
ruby-debug-base19 (>= 0.11.19)
|
41
|
-
ruby_core_source (0.1.5)
|
42
|
-
archive-tar-minitar (>= 0.5.2)
|
28
|
+
rake (10.1.0)
|
29
|
+
rdoc (4.0.1)
|
30
|
+
json (~> 1.4)
|
31
|
+
rspec (2.14.1)
|
32
|
+
rspec-core (~> 2.14.0)
|
33
|
+
rspec-expectations (~> 2.14.0)
|
34
|
+
rspec-mocks (~> 2.14.0)
|
35
|
+
rspec-core (2.14.4)
|
36
|
+
rspec-expectations (2.14.1)
|
37
|
+
diff-lcs (>= 1.1.3, < 2.0)
|
38
|
+
rspec-mocks (2.14.3)
|
43
39
|
simplecov (0.5.4)
|
44
40
|
multi_json (~> 1.0.3)
|
45
41
|
simplecov-html (~> 0.5.3)
|
@@ -53,10 +49,10 @@ DEPENDENCIES
|
|
53
49
|
activesupport
|
54
50
|
bundler
|
55
51
|
colorize
|
52
|
+
debugger
|
56
53
|
guard-rspec (= 0.4.0)
|
57
54
|
i18n
|
58
55
|
jeweler
|
59
|
-
rcov
|
60
56
|
rspec
|
61
|
-
|
57
|
+
rspec-core
|
62
58
|
simplecov
|
data/Rakefile
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.6.0
|
data/hash_dealer.gemspec
CHANGED
@@ -5,23 +5,45 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "hash_dealer"
|
8
|
-
s.version = "1.
|
8
|
+
s.version = "1.6.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Dan Langevin"]
|
12
|
-
s.date = "
|
12
|
+
s.date = "2013-08-12"
|
13
13
|
s.description = "Like Factory Girl but for Hashes only"
|
14
14
|
s.email = "dan.langevin@lifebooker.com"
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"LICENSE.txt",
|
17
17
|
"README.rdoc"
|
18
18
|
]
|
19
|
-
s.files =
|
20
|
-
|
19
|
+
s.files = [
|
20
|
+
".document",
|
21
|
+
".rspec",
|
22
|
+
"Gemfile",
|
23
|
+
"Gemfile.lock",
|
24
|
+
"Guardfile",
|
25
|
+
"LICENSE.txt",
|
26
|
+
"README.rdoc",
|
27
|
+
"Rakefile",
|
28
|
+
"VERSION",
|
29
|
+
"hash_dealer.gemspec",
|
30
|
+
"lib/comparator.rb",
|
31
|
+
"lib/core_extensions.rb",
|
32
|
+
"lib/hash.rb",
|
33
|
+
"lib/hash_dealer.rb",
|
34
|
+
"lib/matcher.rb",
|
35
|
+
"lib/path_string.rb",
|
36
|
+
"lib/variable_array.rb",
|
37
|
+
"spec/lib/comparator_spec.rb",
|
38
|
+
"spec/lib/hash_dealer_spec.rb",
|
39
|
+
"spec/lib/matcher_spec.rb",
|
40
|
+
"spec/lib/path_string_spec.rb",
|
41
|
+
"spec/spec_helper.rb"
|
42
|
+
]
|
21
43
|
s.homepage = "http://github.com/LifebookerInc/hash_dealer"
|
22
44
|
s.licenses = ["MIT"]
|
23
45
|
s.require_paths = ["lib"]
|
24
|
-
s.rubygems_version = "1.8.
|
46
|
+
s.rubygems_version = "1.8.23"
|
25
47
|
s.summary = "Hash Factory - like Factory Girl but for Hashes only"
|
26
48
|
|
27
49
|
if s.respond_to? :specification_version then
|
@@ -33,10 +55,10 @@ Gem::Specification.new do |s|
|
|
33
55
|
s.add_runtime_dependency(%q<colorize>, [">= 0"])
|
34
56
|
s.add_development_dependency(%q<bundler>, [">= 0"])
|
35
57
|
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
58
|
+
s.add_development_dependency(%q<debugger>, [">= 0"])
|
36
59
|
s.add_development_dependency(%q<rspec>, [">= 0"])
|
37
|
-
s.add_development_dependency(%q<
|
60
|
+
s.add_development_dependency(%q<rspec-core>, [">= 0"])
|
38
61
|
s.add_development_dependency(%q<guard-rspec>, ["= 0.4.0"])
|
39
|
-
s.add_development_dependency(%q<ruby-debug19>, [">= 0"])
|
40
62
|
s.add_development_dependency(%q<simplecov>, [">= 0"])
|
41
63
|
else
|
42
64
|
s.add_dependency(%q<activesupport>, [">= 0"])
|
@@ -44,10 +66,10 @@ Gem::Specification.new do |s|
|
|
44
66
|
s.add_dependency(%q<colorize>, [">= 0"])
|
45
67
|
s.add_dependency(%q<bundler>, [">= 0"])
|
46
68
|
s.add_dependency(%q<jeweler>, [">= 0"])
|
69
|
+
s.add_dependency(%q<debugger>, [">= 0"])
|
47
70
|
s.add_dependency(%q<rspec>, [">= 0"])
|
48
|
-
s.add_dependency(%q<
|
71
|
+
s.add_dependency(%q<rspec-core>, [">= 0"])
|
49
72
|
s.add_dependency(%q<guard-rspec>, ["= 0.4.0"])
|
50
|
-
s.add_dependency(%q<ruby-debug19>, [">= 0"])
|
51
73
|
s.add_dependency(%q<simplecov>, [">= 0"])
|
52
74
|
end
|
53
75
|
else
|
@@ -56,10 +78,10 @@ Gem::Specification.new do |s|
|
|
56
78
|
s.add_dependency(%q<colorize>, [">= 0"])
|
57
79
|
s.add_dependency(%q<bundler>, [">= 0"])
|
58
80
|
s.add_dependency(%q<jeweler>, [">= 0"])
|
81
|
+
s.add_dependency(%q<debugger>, [">= 0"])
|
59
82
|
s.add_dependency(%q<rspec>, [">= 0"])
|
60
|
-
s.add_dependency(%q<
|
83
|
+
s.add_dependency(%q<rspec-core>, [">= 0"])
|
61
84
|
s.add_dependency(%q<guard-rspec>, ["= 0.4.0"])
|
62
|
-
s.add_dependency(%q<ruby-debug19>, [">= 0"])
|
63
85
|
s.add_dependency(%q<simplecov>, [">= 0"])
|
64
86
|
end
|
65
87
|
end
|
data/lib/comparator.rb
CHANGED
@@ -18,18 +18,12 @@ class Comparator
|
|
18
18
|
return val if val.is_a?(TimeDateMatcher)
|
19
19
|
val = ActiveSupport::JSON.decode(val) if val.is_a?(String)
|
20
20
|
val = self.stringify_keys(val) if val.is_a?(Hash)
|
21
|
-
|
22
|
-
if val.is_a?(Array)
|
23
|
-
val = val.collect{|v|
|
24
|
-
v.is_a?(Hash) || v.is_a?(Array) ? self.normalize_value(v) : v
|
25
|
-
}
|
26
|
-
end
|
27
|
-
|
21
|
+
val = val.collect{|v| v.is_a?(Hash) || v.is_a?(Array) ? self.normalize_value(v) : v} if val.is_a?(Array)
|
28
22
|
val
|
29
23
|
end
|
30
24
|
|
31
25
|
def self.diff(obj1, obj2)
|
32
|
-
return {} if obj1
|
26
|
+
return {} if obj1 == obj2
|
33
27
|
if obj1.is_a?(Array) && obj2.is_a?(Array)
|
34
28
|
return self.array_diff(obj1, obj2)
|
35
29
|
elsif obj1.is_a?(Hash) && obj2.is_a?(Hash)
|
@@ -70,18 +64,11 @@ class Comparator
|
|
70
64
|
end
|
71
65
|
|
72
66
|
def self.stringify_keys(hash_or_array)
|
73
|
-
if hash_or_array.is_a?(Array)
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
end
|
78
|
-
|
79
|
-
ret = hash_or_array.stringify_keys
|
80
|
-
ret.each_pair do |k,v|
|
81
|
-
if v.is_a?(Hash) || v.is_a?(Array)
|
82
|
-
ret[k] = self.stringify_keys(v)
|
67
|
+
return hash_or_array.collect{|v| v.is_a?(Hash) || v.is_a?(Array) ? self.stringify_keys(v) : v} if hash_or_array.is_a?(Array)
|
68
|
+
{}.tap do |ret|
|
69
|
+
hash_or_array.each_pair.each do |k, v|
|
70
|
+
ret[k.to_s] = v.is_a?(Hash) || v.is_a?(Array) ? self.stringify_keys(v) : v
|
83
71
|
end
|
84
72
|
end
|
85
|
-
ret
|
86
73
|
end
|
87
74
|
end
|
data/lib/core_extensions.rb
CHANGED
@@ -45,7 +45,7 @@ end
|
|
45
45
|
return other.eql?(self) if other.is_a?(TimeDateMatcher)
|
46
46
|
return old_eql?(other)
|
47
47
|
end
|
48
|
-
|
48
|
+
|
49
49
|
EOE
|
50
50
|
end
|
51
51
|
|
@@ -65,15 +65,15 @@ end
|
|
65
65
|
def matcher(opts={})
|
66
66
|
BooleanMatcher.new(self)
|
67
67
|
end
|
68
|
-
|
68
|
+
|
69
69
|
alias_method :old_eql?, :eql?
|
70
70
|
alias_method :old_equals_equals, :==
|
71
|
-
|
71
|
+
|
72
72
|
def ==(other)
|
73
73
|
return other == self if other.is_a?(BooleanMatcher)
|
74
74
|
return self.old_equals_equals(other)
|
75
75
|
end
|
76
|
-
|
76
|
+
|
77
77
|
def eql?(other)
|
78
78
|
return other.eql?(self) if other.is_a?(BooleanMatcher)
|
79
79
|
return self.old_eql?(other)
|
@@ -101,7 +101,7 @@ class String
|
|
101
101
|
define_method "==_with_path_string" do |other|
|
102
102
|
if other.is_a?(PathString)
|
103
103
|
return true if self.is_a?(PathString)
|
104
|
-
return other == self
|
104
|
+
return other == self
|
105
105
|
end
|
106
106
|
return self.send("==_without_path_string", other)
|
107
107
|
end
|
@@ -130,8 +130,10 @@ class Hash
|
|
130
130
|
opts[:only] ||= self.keys.collect(&:to_sym)
|
131
131
|
opts[:only] = opts[:only].collect(&:to_sym)
|
132
132
|
opts[:only] -= (opts[:except] || []).collect(&:to_sym)
|
133
|
-
|
134
|
-
ret = self.
|
133
|
+
|
134
|
+
ret = self.clone
|
135
|
+
# clear out the keys
|
136
|
+
ret.clear
|
135
137
|
self.each_pair do |k,v|
|
136
138
|
if opts[:only].include?(k.to_sym)
|
137
139
|
ret[k] = v.matcher(opts[k.to_sym] || {})
|
data/lib/hash.rb
CHANGED
@@ -1,32 +1,19 @@
|
|
1
1
|
class HashDealer
|
2
2
|
class Hash < ::Hash
|
3
3
|
|
4
|
-
attr_accessor :optional_attributes
|
5
|
-
|
6
4
|
def initialize(optional_attributes = [])
|
7
5
|
@optional_attributes = optional_attributes
|
8
6
|
end
|
9
7
|
|
10
8
|
def eql?(other)
|
11
|
-
|
12
|
-
|
13
|
-
end
|
9
|
+
self_for_comparison = self.remove_optional_keys(self)
|
10
|
+
other_for_comparison = self.remove_optional_keys(other)
|
14
11
|
|
15
|
-
|
16
|
-
ret = super
|
17
|
-
ret.optional_attributes = self.optional_attributes
|
18
|
-
ret
|
12
|
+
self_for_comparison.eql?(other_for_comparison)
|
19
13
|
end
|
20
14
|
|
21
15
|
def ==(other)
|
22
|
-
|
23
|
-
self_copy == other_copy
|
24
|
-
end
|
25
|
-
|
26
|
-
def stringify_keys
|
27
|
-
ret = super
|
28
|
-
ret.optional_attributes = self.optional_attributes.collect(&:to_s)
|
29
|
-
ret
|
16
|
+
return self.eql?(other)
|
30
17
|
end
|
31
18
|
|
32
19
|
def to_hash
|
@@ -39,10 +26,6 @@ class HashDealer
|
|
39
26
|
|
40
27
|
protected
|
41
28
|
|
42
|
-
def get_copies_for_comparison(other)
|
43
|
-
[self.remove_optional_keys(self), self.remove_optional_keys(other)]
|
44
|
-
end
|
45
|
-
|
46
29
|
def remove_optional_keys(hash)
|
47
30
|
hash = hash.clone.to_hash
|
48
31
|
@optional_attributes.each do |optional_attribute|
|
data/lib/matcher.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# just in case it's not loaded
|
2
|
-
require 'rspec'
|
2
|
+
require 'rspec/core'
|
3
3
|
require 'pp'
|
4
4
|
|
5
5
|
|
@@ -15,21 +15,22 @@ def print_diff(diff, depth = 1)
|
|
15
15
|
end
|
16
16
|
|
17
17
|
RSpec::Matchers.define(:match_response) do |actual|
|
18
|
+
|
18
19
|
actual = Comparator.normalize_value(actual)
|
19
|
-
|
20
|
+
|
20
21
|
match do |expected|
|
21
22
|
expected = Comparator.normalize_value(expected)
|
22
23
|
@diff = Comparator.diff(actual, expected)
|
23
24
|
@diff == {}
|
24
25
|
end
|
25
|
-
|
26
|
+
|
26
27
|
failure_message_for_should do |container|
|
27
28
|
puts "\n"
|
28
29
|
print_diff(@diff)
|
29
30
|
puts "\n"
|
30
31
|
""
|
31
32
|
end
|
32
|
-
|
33
|
+
|
33
34
|
failure_message_for_should_not do |container|
|
34
35
|
puts "\n"
|
35
36
|
print_diff(@diff)
|
@@ -40,9 +41,9 @@ end
|
|
40
41
|
|
41
42
|
# alias as match_json
|
42
43
|
RSpec::Matchers.define(:match_list) do |actual|
|
43
|
-
|
44
|
+
|
44
45
|
actual = Comparator.normalize_value(actual)
|
45
|
-
|
46
|
+
|
46
47
|
match do |expected|
|
47
48
|
expected = Comparator.normalize_value(expected)
|
48
49
|
expected = expected.first if expected.is_a?(Array)
|
@@ -50,19 +51,19 @@ RSpec::Matchers.define(:match_list) do |actual|
|
|
50
51
|
@diff = Comparator.diff(actual, expected)
|
51
52
|
@diff == {}
|
52
53
|
end
|
53
|
-
|
54
|
+
|
54
55
|
failure_message_for_should do |container|
|
55
56
|
puts "\n"
|
56
57
|
print_diff(@diff)
|
57
58
|
puts "\n"
|
58
59
|
""
|
59
60
|
end
|
60
|
-
|
61
|
+
|
61
62
|
failure_message_for_should_not do |container|
|
62
63
|
puts "\n"
|
63
64
|
print_diff(@diff)
|
64
65
|
puts "\n"
|
65
66
|
""
|
66
67
|
end
|
67
|
-
|
68
|
+
|
68
69
|
end
|
data/spec/lib/matcher_spec.rb
CHANGED
@@ -29,28 +29,6 @@ describe "match_response Matcher" do
|
|
29
29
|
{:a => "a"}.matcher.should match_response({"a" => "abcde"})
|
30
30
|
{:a => {:b => "c"}}.should match_response({"a" => {"b" => "c"}})
|
31
31
|
end
|
32
|
-
|
33
|
-
it "should handle optional parameters" do
|
34
|
-
|
35
|
-
HashDealer.define(:matcher_optional_values) do
|
36
|
-
required_val("123")
|
37
|
-
optional_val("456", optional: true)
|
38
|
-
end
|
39
|
-
hash_dealer = HashDealer.roll(:matcher_optional_values)
|
40
|
-
|
41
|
-
|
42
|
-
{"required_val" => "123"}.should match_response(
|
43
|
-
hash_dealer
|
44
|
-
)
|
45
|
-
|
46
|
-
{"required_val" => "123", "optional_val" => "456"}.should match_response(
|
47
|
-
hash_dealer
|
48
|
-
)
|
49
|
-
{"optional_val" => "456"}.should_not match_response(
|
50
|
-
hash_dealer
|
51
|
-
)
|
52
|
-
|
53
|
-
end
|
54
32
|
|
55
33
|
context ".diff" do
|
56
34
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hash_dealer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.6.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-08-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
@@ -92,7 +92,7 @@ dependencies:
|
|
92
92
|
- !ruby/object:Gem::Version
|
93
93
|
version: '0'
|
94
94
|
- !ruby/object:Gem::Dependency
|
95
|
-
name:
|
95
|
+
name: debugger
|
96
96
|
requirement: !ruby/object:Gem::Requirement
|
97
97
|
none: false
|
98
98
|
requirements:
|
@@ -108,7 +108,7 @@ dependencies:
|
|
108
108
|
- !ruby/object:Gem::Version
|
109
109
|
version: '0'
|
110
110
|
- !ruby/object:Gem::Dependency
|
111
|
-
name:
|
111
|
+
name: rspec
|
112
112
|
requirement: !ruby/object:Gem::Requirement
|
113
113
|
none: false
|
114
114
|
requirements:
|
@@ -124,37 +124,37 @@ dependencies:
|
|
124
124
|
- !ruby/object:Gem::Version
|
125
125
|
version: '0'
|
126
126
|
- !ruby/object:Gem::Dependency
|
127
|
-
name:
|
127
|
+
name: rspec-core
|
128
128
|
requirement: !ruby/object:Gem::Requirement
|
129
129
|
none: false
|
130
130
|
requirements:
|
131
|
-
- - '
|
131
|
+
- - ! '>='
|
132
132
|
- !ruby/object:Gem::Version
|
133
|
-
version: 0
|
133
|
+
version: '0'
|
134
134
|
type: :development
|
135
135
|
prerelease: false
|
136
136
|
version_requirements: !ruby/object:Gem::Requirement
|
137
137
|
none: false
|
138
138
|
requirements:
|
139
|
-
- - '
|
139
|
+
- - ! '>='
|
140
140
|
- !ruby/object:Gem::Version
|
141
|
-
version: 0
|
141
|
+
version: '0'
|
142
142
|
- !ruby/object:Gem::Dependency
|
143
|
-
name:
|
143
|
+
name: guard-rspec
|
144
144
|
requirement: !ruby/object:Gem::Requirement
|
145
145
|
none: false
|
146
146
|
requirements:
|
147
|
-
- -
|
147
|
+
- - '='
|
148
148
|
- !ruby/object:Gem::Version
|
149
|
-
version:
|
149
|
+
version: 0.4.0
|
150
150
|
type: :development
|
151
151
|
prerelease: false
|
152
152
|
version_requirements: !ruby/object:Gem::Requirement
|
153
153
|
none: false
|
154
154
|
requirements:
|
155
|
-
- -
|
155
|
+
- - '='
|
156
156
|
- !ruby/object:Gem::Version
|
157
|
-
version:
|
157
|
+
version: 0.4.0
|
158
158
|
- !ruby/object:Gem::Dependency
|
159
159
|
name: simplecov
|
160
160
|
requirement: !ruby/object:Gem::Requirement
|
@@ -179,60 +179,15 @@ extra_rdoc_files:
|
|
179
179
|
- LICENSE.txt
|
180
180
|
- README.rdoc
|
181
181
|
files:
|
182
|
-
-
|
183
|
-
-
|
184
|
-
- coverage/assets/0.5.3/fancybox/fancy_close.png
|
185
|
-
- coverage/assets/0.5.3/fancybox/fancy_loading.png
|
186
|
-
- coverage/assets/0.5.3/fancybox/fancy_nav_left.png
|
187
|
-
- coverage/assets/0.5.3/fancybox/fancy_nav_right.png
|
188
|
-
- coverage/assets/0.5.3/fancybox/fancy_shadow_e.png
|
189
|
-
- coverage/assets/0.5.3/fancybox/fancy_shadow_n.png
|
190
|
-
- coverage/assets/0.5.3/fancybox/fancy_shadow_ne.png
|
191
|
-
- coverage/assets/0.5.3/fancybox/fancy_shadow_nw.png
|
192
|
-
- coverage/assets/0.5.3/fancybox/fancy_shadow_s.png
|
193
|
-
- coverage/assets/0.5.3/fancybox/fancy_shadow_se.png
|
194
|
-
- coverage/assets/0.5.3/fancybox/fancy_shadow_sw.png
|
195
|
-
- coverage/assets/0.5.3/fancybox/fancy_shadow_w.png
|
196
|
-
- coverage/assets/0.5.3/fancybox/fancy_title_left.png
|
197
|
-
- coverage/assets/0.5.3/fancybox/fancy_title_main.png
|
198
|
-
- coverage/assets/0.5.3/fancybox/fancy_title_over.png
|
199
|
-
- coverage/assets/0.5.3/fancybox/fancy_title_right.png
|
200
|
-
- coverage/assets/0.5.3/fancybox/fancybox-x.png
|
201
|
-
- coverage/assets/0.5.3/fancybox/fancybox-y.png
|
202
|
-
- coverage/assets/0.5.3/fancybox/fancybox.png
|
203
|
-
- coverage/assets/0.5.3/fancybox/jquery.fancybox-1.3.1.css
|
204
|
-
- coverage/assets/0.5.3/fancybox/jquery.fancybox-1.3.1.pack.js
|
205
|
-
- coverage/assets/0.5.3/favicon_green.png
|
206
|
-
- coverage/assets/0.5.3/favicon_red.png
|
207
|
-
- coverage/assets/0.5.3/favicon_yellow.png
|
208
|
-
- coverage/assets/0.5.3/highlight.css
|
209
|
-
- coverage/assets/0.5.3/highlight.pack.js
|
210
|
-
- coverage/assets/0.5.3/jquery-1.6.2.min.js
|
211
|
-
- coverage/assets/0.5.3/jquery.dataTables.min.js
|
212
|
-
- coverage/assets/0.5.3/jquery.timeago.js
|
213
|
-
- coverage/assets/0.5.3/jquery.url.js
|
214
|
-
- coverage/assets/0.5.3/loading.gif
|
215
|
-
- coverage/assets/0.5.3/magnify.png
|
216
|
-
- coverage/assets/0.5.3/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png
|
217
|
-
- coverage/assets/0.5.3/smoothness/images/ui-bg_flat_75_ffffff_40x100.png
|
218
|
-
- coverage/assets/0.5.3/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png
|
219
|
-
- coverage/assets/0.5.3/smoothness/images/ui-bg_glass_65_ffffff_1x400.png
|
220
|
-
- coverage/assets/0.5.3/smoothness/images/ui-bg_glass_75_dadada_1x400.png
|
221
|
-
- coverage/assets/0.5.3/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png
|
222
|
-
- coverage/assets/0.5.3/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png
|
223
|
-
- coverage/assets/0.5.3/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png
|
224
|
-
- coverage/assets/0.5.3/smoothness/images/ui-icons_222222_256x240.png
|
225
|
-
- coverage/assets/0.5.3/smoothness/images/ui-icons_2e83ff_256x240.png
|
226
|
-
- coverage/assets/0.5.3/smoothness/images/ui-icons_454545_256x240.png
|
227
|
-
- coverage/assets/0.5.3/smoothness/images/ui-icons_888888_256x240.png
|
228
|
-
- coverage/assets/0.5.3/smoothness/images/ui-icons_cd0a0a_256x240.png
|
229
|
-
- coverage/assets/0.5.3/smoothness/jquery-ui-1.8.4.custom.css
|
230
|
-
- coverage/assets/0.5.3/stylesheet.css
|
231
|
-
- coverage/index.html
|
182
|
+
- .document
|
183
|
+
- .rspec
|
232
184
|
- Gemfile
|
233
185
|
- Gemfile.lock
|
234
186
|
- Guardfile
|
235
|
-
-
|
187
|
+
- LICENSE.txt
|
188
|
+
- README.rdoc
|
189
|
+
- Rakefile
|
190
|
+
- VERSION
|
236
191
|
- hash_dealer.gemspec
|
237
192
|
- lib/comparator.rb
|
238
193
|
- lib/core_extensions.rb
|
@@ -241,16 +196,11 @@ files:
|
|
241
196
|
- lib/matcher.rb
|
242
197
|
- lib/path_string.rb
|
243
198
|
- lib/variable_array.rb
|
244
|
-
- LICENSE.txt
|
245
|
-
- pkg/hash_dealer-1.4.10.gem
|
246
|
-
- Rakefile
|
247
|
-
- README.rdoc
|
248
199
|
- spec/lib/comparator_spec.rb
|
249
200
|
- spec/lib/hash_dealer_spec.rb
|
250
201
|
- spec/lib/matcher_spec.rb
|
251
202
|
- spec/lib/path_string_spec.rb
|
252
203
|
- spec/spec_helper.rb
|
253
|
-
- VERSION
|
254
204
|
homepage: http://github.com/LifebookerInc/hash_dealer
|
255
205
|
licenses:
|
256
206
|
- MIT
|