json_spec 0.8.1 → 1.0.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 +2 -4
- data/Gemfile +1 -1
- data/{LICENSE.md → LICENSE} +0 -0
- data/README.md +221 -210
- data/features/files.feature +89 -0
- data/features/support/env.rb +3 -0
- data/features/types.feature +7 -1
- data/json_spec.gemspec +16 -20
- data/lib/json_spec/configuration.rb +10 -2
- data/lib/json_spec/cucumber.rb +18 -3
- data/lib/json_spec/errors.rb +22 -1
- data/lib/json_spec/helpers.rb +17 -2
- data/lib/json_spec/matchers/be_json_eql.rb +63 -0
- data/lib/json_spec/matchers/have_json_path.rb +30 -0
- data/lib/json_spec/matchers/have_json_size.rb +35 -0
- data/lib/json_spec/matchers/have_json_type.rb +49 -0
- data/lib/json_spec/matchers/include_json.rb +57 -0
- data/lib/json_spec/matchers.rb +9 -218
- data/lib/json_spec/memory.rb +2 -3
- data/lib/json_spec/messages.rb +8 -0
- data/lib/json_spec.rb +3 -1
- data/spec/json_spec/configuration_spec.rb +10 -0
- data/spec/json_spec/helpers_spec.rb +33 -1
- data/spec/json_spec/matchers/be_json_eql_spec.rb +109 -0
- data/spec/json_spec/matchers/have_json_path_spec.rb +29 -0
- data/spec/json_spec/matchers/have_json_size_spec.rb +47 -0
- data/spec/json_spec/matchers/have_json_type_spec.rb +89 -0
- data/spec/json_spec/matchers/include_json_spec.rb +76 -0
- data/spec/json_spec/matchers_spec.rb +43 -287
- data/spec/json_spec/memory_spec.rb +8 -3
- data/spec/spec_helper.rb +4 -0
- data/spec/support/files/one.json +1 -0
- data/spec/support/files/project/one.json +1 -0
- data/spec/support/files/project/two.json +18 -0
- data/spec/support/files/project/version/one.json +1 -0
- data/spec/support/files/project/version/two.json +3 -0
- data/spec/support/files/two.json +24 -0
- metadata +49 -20
- data/lib/json_spec/version.rb +0 -3
@@ -1,321 +1,77 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
|
-
describe
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
it "matches differently-formatted JSON" do
|
10
|
-
%({"json": "spec"}).should be_json_eql(%({"json":"spec"}))
|
11
|
-
end
|
12
|
-
|
13
|
-
it "matches out-of-order hashes" do
|
14
|
-
%({"laser":"lemon","json":"spec"}).should be_json_eql(%({"json":"spec","laser":"lemon"}))
|
15
|
-
end
|
16
|
-
|
17
|
-
it "doesn't match out-of-order arrays" do
|
18
|
-
%(["json","spec"]).should_not be_json_eql(%(["spec","json"]))
|
19
|
-
end
|
20
|
-
|
21
|
-
it "matches valid JSON values, yet invalid JSON documents" do
|
22
|
-
%("json_spec").should be_json_eql(%("json_spec"))
|
23
|
-
end
|
24
|
-
|
25
|
-
it "matches at a path" do
|
26
|
-
%({"json":["spec"]}).should be_json_eql(%("spec")).at_path("json/0")
|
27
|
-
end
|
28
|
-
|
29
|
-
it "ignores excluded-by-default hash keys" do
|
30
|
-
JsonSpec.excluded_keys.should_not be_empty
|
31
|
-
|
32
|
-
actual = expected = {"json" => "spec"}
|
33
|
-
JsonSpec.excluded_keys.each{|k| actual[k] = k }
|
34
|
-
actual.to_json.should be_json_eql(expected.to_json)
|
35
|
-
end
|
36
|
-
|
37
|
-
it "ignores custom excluded hash keys" do
|
38
|
-
JsonSpec.exclude_keys("ignore")
|
39
|
-
%({"json":"spec","ignore":"please"}).should be_json_eql(%({"json":"spec"}))
|
40
|
-
end
|
41
|
-
|
42
|
-
it "ignores nested, excluded hash keys" do
|
43
|
-
JsonSpec.exclude_keys("ignore")
|
44
|
-
%({"json":"spec","please":{"ignore":"this"}}).should be_json_eql(%({"json":"spec","please":{}}))
|
45
|
-
end
|
46
|
-
|
47
|
-
it "ignores hash keys when included in the expected value" do
|
48
|
-
JsonSpec.exclude_keys("ignore")
|
49
|
-
%({"json":"spec","ignore":"please"}).should be_json_eql(%({"json":"spec","ignore":"this"}))
|
50
|
-
end
|
51
|
-
|
52
|
-
it "doesn't match Ruby-equivalent, JSON-inequivalent values" do
|
53
|
-
%({"one":1}).should_not be_json_eql(%({"one":1.0}))
|
54
|
-
end
|
55
|
-
|
56
|
-
it "matches different looking, JSON-equivalent values" do
|
57
|
-
%({"ten":10.0}).should be_json_eql(%({"ten":1e+1}))
|
58
|
-
end
|
59
|
-
|
60
|
-
it "excludes extra hash keys per matcher" do
|
61
|
-
JsonSpec.excluded_keys = %w(ignore)
|
62
|
-
%({"id":1,"json":"spec","ignore":"please"}).should be_json_eql(%({"id":2,"json":"spec","ignore":"this"})).excluding("id")
|
63
|
-
end
|
64
|
-
|
65
|
-
it "excludes extra hash keys given as symbols" do
|
66
|
-
JsonSpec.excluded_keys = []
|
67
|
-
%({"id":1,"json":"spec"}).should be_json_eql(%({"id":2,"json":"spec"})).excluding(:id)
|
68
|
-
end
|
69
|
-
|
70
|
-
it "excludes multiple keys" do
|
71
|
-
JsonSpec.excluded_keys = []
|
72
|
-
%({"id":1,"json":"spec"}).should be_json_eql(%({"id":2,"json":"different"})).excluding(:id, :json)
|
73
|
-
end
|
74
|
-
|
75
|
-
it "includes globally-excluded hash keys per matcher" do
|
76
|
-
JsonSpec.excluded_keys = %w(id ignore)
|
77
|
-
%({"id":1,"json":"spec","ignore":"please"}).should_not be_json_eql(%({"id":2,"json":"spec","ignore":"this"})).including("id")
|
78
|
-
end
|
79
|
-
|
80
|
-
it "includes globally-included hash keys given as symbols" do
|
81
|
-
JsonSpec.excluded_keys = %w(id)
|
82
|
-
%({"id":1,"json":"spec"}).should_not be_json_eql(%({"id":2,"json":"spec"})).including(:id)
|
83
|
-
end
|
84
|
-
|
85
|
-
it "includes multiple keys" do
|
86
|
-
JsonSpec.excluded_keys = %w(id json)
|
87
|
-
%({"id":1,"json":"spec"}).should_not be_json_eql(%({"id":2,"json":"different"})).including(:id, :json)
|
88
|
-
end
|
89
|
-
|
90
|
-
it "provide a description message" do
|
91
|
-
matcher = be_json_eql(%({"id":2,"json":"spec"}))
|
92
|
-
matcher.matches?(%({"id":1,"json":"spec"}))
|
93
|
-
matcher.description.should == "equal JSON"
|
94
|
-
end
|
95
|
-
|
96
|
-
it "provide a description message with path" do
|
97
|
-
matcher = be_json_eql(%({"id":1,"json":["spec"]})).at_path("json/0")
|
98
|
-
matcher.matches?(%({"id":1,"json":["spec"]}))
|
99
|
-
matcher.description.should == %(equal JSON at path "json/0")
|
100
|
-
end
|
3
|
+
describe JsonSpec::Matchers do
|
4
|
+
let(:environment) do
|
5
|
+
klass = Class.new
|
6
|
+
klass.send(:include, JsonSpec::Matchers)
|
7
|
+
klass.new
|
101
8
|
end
|
102
9
|
|
103
|
-
|
104
|
-
it "matches included array elements" do
|
105
|
-
json = %(["one",1,1.0,true,false,null])
|
106
|
-
json.should include_json(%("one"))
|
107
|
-
json.should include_json(%(1))
|
108
|
-
json.should include_json(%(1.0))
|
109
|
-
json.should include_json(%(true))
|
110
|
-
json.should include_json(%(false))
|
111
|
-
json.should include_json(%(null))
|
112
|
-
end
|
113
|
-
|
114
|
-
it "matches an array included in an array" do
|
115
|
-
json = %([[1,2,3],[4,5,6]])
|
116
|
-
json.should include_json(%([1,2,3]))
|
117
|
-
json.should include_json(%([4,5,6]))
|
118
|
-
end
|
119
|
-
|
120
|
-
it "matches a hash included in an array" do
|
121
|
-
json = %([{"one":1},{"two":2}])
|
122
|
-
json.should include_json(%({"one":1}))
|
123
|
-
json.should include_json(%({"two":2}))
|
124
|
-
end
|
125
|
-
|
126
|
-
it "matches include hash values" do
|
127
|
-
json = %({"string":"one","integer":1,"float":1.0,"true":true,"false":false,"null":null})
|
128
|
-
json.should include_json(%("one"))
|
129
|
-
json.should include_json(%(1))
|
130
|
-
json.should include_json(%(1.0))
|
131
|
-
json.should include_json(%(true))
|
132
|
-
json.should include_json(%(false))
|
133
|
-
json.should include_json(%(null))
|
134
|
-
end
|
135
|
-
|
136
|
-
it "matches a hash included in a hash" do
|
137
|
-
json = %({"one":{"two":3},"four":{"five":6}})
|
138
|
-
json.should include_json(%({"two":3}))
|
139
|
-
json.should include_json(%({"five":6}))
|
140
|
-
end
|
141
|
-
|
142
|
-
it "matches an array included in a hash" do
|
143
|
-
json = %({"one":[2,3],"four":[5,6]})
|
144
|
-
json.should include_json(%([2,3]))
|
145
|
-
json.should include_json(%([5,6]))
|
146
|
-
end
|
147
|
-
|
148
|
-
it "matches at a path" do
|
149
|
-
%({"one":{"two":[3,4]}}).should include_json(%([3,4])).at_path("one")
|
150
|
-
end
|
10
|
+
let(:json){ %({"json":"spec"}) }
|
151
11
|
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
it "provide a description message" do
|
157
|
-
matcher = include_json(%({"json":"spec"}))
|
158
|
-
matcher.matches?(%({"id":1,"json":"spec"}))
|
159
|
-
matcher.description.should == "include JSON"
|
12
|
+
context "be_json_eql" do
|
13
|
+
it "instantiates its matcher" do
|
14
|
+
JsonSpec::Matchers::BeJsonEql.should_receive(:new).with(json)
|
15
|
+
environment.be_json_eql(json)
|
160
16
|
end
|
161
17
|
|
162
|
-
it "
|
163
|
-
matcher =
|
164
|
-
matcher.
|
165
|
-
matcher.description.should == %(include JSON at path "json/0")
|
18
|
+
it "returns its matcher" do
|
19
|
+
matcher = environment.be_json_eql(json)
|
20
|
+
matcher.should be_a(JsonSpec::Matchers::BeJsonEql)
|
166
21
|
end
|
167
22
|
end
|
168
23
|
|
169
|
-
context "
|
170
|
-
it "
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
it "counts null array entries" do
|
175
|
-
%([1,null,3]).should have_json_size(3)
|
176
|
-
end
|
177
|
-
|
178
|
-
it "counts hash key/value pairs" do
|
179
|
-
%({"one":1,"two":2,"three":3}).should have_json_size(3)
|
180
|
-
end
|
181
|
-
|
182
|
-
it "counts null hash values" do
|
183
|
-
%({"one":1,"two":null,"three":3}).should have_json_size(3)
|
184
|
-
end
|
185
|
-
|
186
|
-
it "matches at a path" do
|
187
|
-
%({"one":[1,2,3]}).should have_json_size(3).at_path("one")
|
188
|
-
end
|
189
|
-
|
190
|
-
it "provides a failure message for should" do
|
191
|
-
matcher = have_json_size(3)
|
192
|
-
matcher.matches?(%([1,2]))
|
193
|
-
matcher.failure_message_for_should.should == "Expected JSON value size to be 3, got 2"
|
194
|
-
end
|
195
|
-
|
196
|
-
it "provides a failure message for should not" do
|
197
|
-
matcher = have_json_size(3)
|
198
|
-
matcher.matches?(%([1,2,3]))
|
199
|
-
matcher.failure_message_for_should_not.should == "Expected JSON value size to not be 3, got 3"
|
200
|
-
end
|
201
|
-
|
202
|
-
it "provide a description message" do
|
203
|
-
matcher = have_json_size(1)
|
204
|
-
matcher.matches?(%({"id":1,"json":["spec"]}))
|
205
|
-
matcher.description.should == %(have JSON size "1")
|
24
|
+
context "include_json" do
|
25
|
+
it "instantiates its matcher" do
|
26
|
+
JsonSpec::Matchers::IncludeJson.should_receive(:new).with(json)
|
27
|
+
environment.include_json(json)
|
206
28
|
end
|
207
29
|
|
208
|
-
it "
|
209
|
-
matcher =
|
210
|
-
matcher.
|
211
|
-
matcher.description.should == %(have JSON size "1" at path "json")
|
30
|
+
it "returns its matcher" do
|
31
|
+
matcher = environment.include_json(json)
|
32
|
+
matcher.should be_a(JsonSpec::Matchers::IncludeJson)
|
212
33
|
end
|
213
34
|
end
|
214
35
|
|
215
36
|
context "have_json_path" do
|
216
|
-
|
217
|
-
%({"one":{"two":{"three":4}}}).should have_json_path("one/two/three")
|
218
|
-
end
|
219
|
-
|
220
|
-
it "doesn't match values" do
|
221
|
-
%({"one":{"two":{"three":4}}}).should_not have_json_path("one/two/three/4")
|
222
|
-
end
|
223
|
-
|
224
|
-
it "matches array indexes" do
|
225
|
-
%([1,[1,2,[1,2,3,4]]]).should have_json_path("1/2/3")
|
226
|
-
end
|
227
|
-
|
228
|
-
it "respects null array values" do
|
229
|
-
%([null,[null,null,[null,null,null,null]]]).should have_json_path("1/2/3")
|
230
|
-
end
|
37
|
+
let(:path){ "json" }
|
231
38
|
|
232
|
-
it "
|
233
|
-
|
39
|
+
it "instantiates its matcher" do
|
40
|
+
JsonSpec::Matchers::HaveJsonPath.should_receive(:new).with(path)
|
41
|
+
environment.have_json_path(path)
|
234
42
|
end
|
235
43
|
|
236
|
-
it "
|
237
|
-
matcher = have_json_path(
|
238
|
-
matcher.
|
239
|
-
matcher.description.should == %(have JSON path "json")
|
44
|
+
it "returns its matcher" do
|
45
|
+
matcher = environment.have_json_path(path)
|
46
|
+
matcher.should be_a(JsonSpec::Matchers::HaveJsonPath)
|
240
47
|
end
|
241
|
-
|
242
48
|
end
|
243
49
|
|
244
50
|
context "have_json_type" do
|
245
|
-
|
246
|
-
%({}).should have_json_type(Hash)
|
247
|
-
end
|
248
|
-
|
249
|
-
it "matches arrays" do
|
250
|
-
%([]).should have_json_type(Array)
|
251
|
-
end
|
252
|
-
|
253
|
-
it "matches at a path" do
|
254
|
-
%({"root":[]}).should have_json_type(Array).at_path("root")
|
255
|
-
end
|
256
|
-
|
257
|
-
it "matches strings" do
|
258
|
-
%(["json_spec"]).should have_json_type(String).at_path("0")
|
259
|
-
end
|
260
|
-
|
261
|
-
it "matches a valid JSON value, yet invalid JSON document" do
|
262
|
-
%("json_spec").should have_json_type(String)
|
263
|
-
end
|
51
|
+
let(:type){ Hash }
|
264
52
|
|
265
|
-
it "
|
266
|
-
|
53
|
+
it "instantiates its matcher" do
|
54
|
+
JsonSpec::Matchers::HaveJsonType.should_receive(:new).with(type)
|
55
|
+
environment.have_json_type(type)
|
267
56
|
end
|
268
57
|
|
269
|
-
it "
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
it "matches floats" do
|
274
|
-
%(10.0).should have_json_type(Float)
|
275
|
-
%(1e+1).should have_json_type(Float)
|
276
|
-
end
|
277
|
-
|
278
|
-
it "matches ancestor classes" do
|
279
|
-
%(10).should have_json_type(Numeric)
|
280
|
-
%(10.0).should have_json_type(Numeric)
|
281
|
-
end
|
282
|
-
|
283
|
-
it "provides a failure message for should" do
|
284
|
-
matcher = have_json_type(Numeric)
|
285
|
-
matcher.matches?(%("foo"))
|
286
|
-
matcher.failure_message_for_should.should == "Expected JSON value type to be Numeric, got String"
|
287
|
-
end
|
288
|
-
|
289
|
-
it "provides a failure message for should not" do
|
290
|
-
matcher = have_json_type(Numeric)
|
291
|
-
matcher.matches?(%(10))
|
292
|
-
matcher.failure_message_for_should_not.should == "Expected JSON value type to not be Numeric, got Fixnum"
|
58
|
+
it "returns its matcher" do
|
59
|
+
matcher = environment.have_json_type(type)
|
60
|
+
matcher.should be_a(JsonSpec::Matchers::HaveJsonType)
|
293
61
|
end
|
62
|
+
end
|
294
63
|
|
295
|
-
|
296
|
-
|
297
|
-
matcher.matches?(%({"id":1,"json":"spec"}))
|
298
|
-
matcher.description.should == %(have JSON type "String")
|
299
|
-
end
|
64
|
+
context "have_json_size" do
|
65
|
+
let(:size){ 1 }
|
300
66
|
|
301
|
-
it "
|
302
|
-
|
303
|
-
|
304
|
-
matcher.description.should == %(have JSON type "String" at path "json")
|
67
|
+
it "instantiates its matcher" do
|
68
|
+
JsonSpec::Matchers::HaveJsonSize.should_receive(:new).with(size)
|
69
|
+
environment.have_json_size(size)
|
305
70
|
end
|
306
71
|
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
end
|
311
|
-
|
312
|
-
it "matches false" do
|
313
|
-
%(false).should have_json_type(FalseClass)
|
314
|
-
end
|
315
|
-
|
316
|
-
it "matches null" do
|
317
|
-
%(null).should have_json_type(NilClass)
|
318
|
-
end
|
72
|
+
it "returns its matcher" do
|
73
|
+
matcher = environment.have_json_size(size)
|
74
|
+
matcher.should be_a(JsonSpec::Matchers::HaveJsonSize)
|
319
75
|
end
|
320
76
|
end
|
321
77
|
end
|
@@ -6,8 +6,13 @@ describe JsonSpec::Memory do
|
|
6
6
|
end
|
7
7
|
|
8
8
|
it "memorizes strings" do
|
9
|
+
JsonSpec.memorize(:key, "value")
|
10
|
+
JsonSpec.memory.should == {:key => "value"}
|
11
|
+
end
|
12
|
+
|
13
|
+
it "symbolizes keys" do
|
9
14
|
JsonSpec.memorize("key", "value")
|
10
|
-
JsonSpec.memory.should == {
|
15
|
+
JsonSpec.memory.should == {:key => "value"}
|
11
16
|
end
|
12
17
|
|
13
18
|
it "regurgitates unremembered strings" do
|
@@ -15,12 +20,12 @@ describe JsonSpec::Memory do
|
|
15
20
|
end
|
16
21
|
|
17
22
|
it "remembers strings" do
|
18
|
-
JsonSpec.memorize(
|
23
|
+
JsonSpec.memorize(:bar, "baz")
|
19
24
|
JsonSpec.remember("foo%{bar}").should == "foobaz"
|
20
25
|
end
|
21
26
|
|
22
27
|
it "forgets" do
|
23
|
-
JsonSpec.memorize(
|
28
|
+
JsonSpec.memorize(:key, "value")
|
24
29
|
JsonSpec.forget
|
25
30
|
JsonSpec.memory.should == {}
|
26
31
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -0,0 +1 @@
|
|
1
|
+
{"value":"from_file"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"nested":"inside_folder"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"nested":"deeply"}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
{
|
2
|
+
"array": [
|
3
|
+
"json",
|
4
|
+
"spec"
|
5
|
+
],
|
6
|
+
"created_at": "2011-07-08 02:27:34",
|
7
|
+
"empty_array": [
|
8
|
+
|
9
|
+
],
|
10
|
+
"empty_hash": {
|
11
|
+
},
|
12
|
+
"false": false,
|
13
|
+
"float": 10.0,
|
14
|
+
"hash": {
|
15
|
+
"json": "spec"
|
16
|
+
},
|
17
|
+
"id": 1,
|
18
|
+
"integer": 10,
|
19
|
+
"negative": -10,
|
20
|
+
"null": null,
|
21
|
+
"string": "json_spec",
|
22
|
+
"true": true,
|
23
|
+
"updated_at": "2011-07-08 02:28:50"
|
24
|
+
}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: json_spec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-02-
|
12
|
+
date: 2012-02-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: multi_json
|
16
|
-
requirement: &
|
16
|
+
requirement: &70250788493820 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '1.0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70250788493820
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rspec
|
27
|
-
requirement: &
|
27
|
+
requirement: &70250788493280 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,32 +32,32 @@ dependencies:
|
|
32
32
|
version: '2.0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70250788493280
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
|
-
name:
|
38
|
-
requirement: &
|
37
|
+
name: cucumber
|
38
|
+
requirement: &70250788492700 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
42
42
|
- !ruby/object:Gem::Version
|
43
|
-
version: '
|
43
|
+
version: '1.1'
|
44
|
+
- - ! '>='
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: 1.1.1
|
44
47
|
type: :development
|
45
48
|
prerelease: false
|
46
|
-
version_requirements: *
|
49
|
+
version_requirements: *70250788492700
|
47
50
|
- !ruby/object:Gem::Dependency
|
48
|
-
name:
|
49
|
-
requirement: &
|
51
|
+
name: rake
|
52
|
+
requirement: &70250788491820 !ruby/object:Gem::Requirement
|
50
53
|
none: false
|
51
54
|
requirements:
|
52
55
|
- - ~>
|
53
56
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
55
|
-
- - ! '>='
|
56
|
-
- !ruby/object:Gem::Version
|
57
|
-
version: 1.1.1
|
57
|
+
version: '0.9'
|
58
58
|
type: :development
|
59
59
|
prerelease: false
|
60
|
-
version_requirements: *
|
60
|
+
version_requirements: *70250788491820
|
61
61
|
description: Easily handle JSON in RSpec and Cucumber
|
62
62
|
email:
|
63
63
|
- steve.richert@gmail.com
|
@@ -68,10 +68,11 @@ files:
|
|
68
68
|
- .gitignore
|
69
69
|
- .travis.yml
|
70
70
|
- Gemfile
|
71
|
-
- LICENSE
|
71
|
+
- LICENSE
|
72
72
|
- README.md
|
73
73
|
- Rakefile
|
74
74
|
- features/equivalence.feature
|
75
|
+
- features/files.feature
|
75
76
|
- features/inclusion.feature
|
76
77
|
- features/memory.feature
|
77
78
|
- features/paths.feature
|
@@ -87,13 +88,29 @@ files:
|
|
87
88
|
- lib/json_spec/exclusion.rb
|
88
89
|
- lib/json_spec/helpers.rb
|
89
90
|
- lib/json_spec/matchers.rb
|
91
|
+
- lib/json_spec/matchers/be_json_eql.rb
|
92
|
+
- lib/json_spec/matchers/have_json_path.rb
|
93
|
+
- lib/json_spec/matchers/have_json_size.rb
|
94
|
+
- lib/json_spec/matchers/have_json_type.rb
|
95
|
+
- lib/json_spec/matchers/include_json.rb
|
90
96
|
- lib/json_spec/memory.rb
|
91
|
-
- lib/json_spec/
|
97
|
+
- lib/json_spec/messages.rb
|
92
98
|
- spec/json_spec/configuration_spec.rb
|
93
99
|
- spec/json_spec/helpers_spec.rb
|
100
|
+
- spec/json_spec/matchers/be_json_eql_spec.rb
|
101
|
+
- spec/json_spec/matchers/have_json_path_spec.rb
|
102
|
+
- spec/json_spec/matchers/have_json_size_spec.rb
|
103
|
+
- spec/json_spec/matchers/have_json_type_spec.rb
|
104
|
+
- spec/json_spec/matchers/include_json_spec.rb
|
94
105
|
- spec/json_spec/matchers_spec.rb
|
95
106
|
- spec/json_spec/memory_spec.rb
|
96
107
|
- spec/spec_helper.rb
|
108
|
+
- spec/support/files/one.json
|
109
|
+
- spec/support/files/project/one.json
|
110
|
+
- spec/support/files/project/two.json
|
111
|
+
- spec/support/files/project/version/one.json
|
112
|
+
- spec/support/files/project/version/two.json
|
113
|
+
- spec/support/files/two.json
|
97
114
|
homepage: https://github.com/collectiveidea/json_spec
|
98
115
|
licenses: []
|
99
116
|
post_install_message:
|
@@ -113,13 +130,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
113
130
|
- !ruby/object:Gem::Version
|
114
131
|
version: '0'
|
115
132
|
requirements: []
|
116
|
-
rubyforge_project:
|
133
|
+
rubyforge_project:
|
117
134
|
rubygems_version: 1.8.17
|
118
135
|
signing_key:
|
119
136
|
specification_version: 3
|
120
137
|
summary: Easily handle JSON in RSpec and Cucumber
|
121
138
|
test_files:
|
122
139
|
- features/equivalence.feature
|
140
|
+
- features/files.feature
|
123
141
|
- features/inclusion.feature
|
124
142
|
- features/memory.feature
|
125
143
|
- features/paths.feature
|
@@ -129,6 +147,17 @@ test_files:
|
|
129
147
|
- features/types.feature
|
130
148
|
- spec/json_spec/configuration_spec.rb
|
131
149
|
- spec/json_spec/helpers_spec.rb
|
150
|
+
- spec/json_spec/matchers/be_json_eql_spec.rb
|
151
|
+
- spec/json_spec/matchers/have_json_path_spec.rb
|
152
|
+
- spec/json_spec/matchers/have_json_size_spec.rb
|
153
|
+
- spec/json_spec/matchers/have_json_type_spec.rb
|
154
|
+
- spec/json_spec/matchers/include_json_spec.rb
|
132
155
|
- spec/json_spec/matchers_spec.rb
|
133
156
|
- spec/json_spec/memory_spec.rb
|
134
157
|
- spec/spec_helper.rb
|
158
|
+
- spec/support/files/one.json
|
159
|
+
- spec/support/files/project/one.json
|
160
|
+
- spec/support/files/project/two.json
|
161
|
+
- spec/support/files/project/version/one.json
|
162
|
+
- spec/support/files/project/version/two.json
|
163
|
+
- spec/support/files/two.json
|
data/lib/json_spec/version.rb
DELETED