json_expressions 0.8.2 → 0.8.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 90c0f305959d6a5fcf0e47a839d8021724a0d790
4
+ data.tar.gz: 60da4f8a6b32c87aa62e077e3ef4669cd2e0b585
5
+ SHA512:
6
+ metadata.gz: 7bb2a32202011bca76df60a933992b5136c58e3ca83db04b7c5cca21831c77d249b6d43140c44a02555a13235451bb1d14b1c2d30e18057c48bb3f814bb00739
7
+ data.tar.gz: cdce635eddc34a5f1027ae472ac726ddeda98c7238cf677916374b8e3bd3dff9d8907a6c4d374592e102532f0339c035e7bed0447c55f4972fffcb2d48ce0b9c
data/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ ### v0.8.3 [view commit logs](https://github.com/chancancode/json_expressions/compare/0.8.2...0.8.3)
2
+
3
+ * Print more detailed error message when matching arrays (#26 from @Maxim-Filimonov)
4
+ * Add support for rspec 3+ (#24 from @george)
5
+ * Minitest 5 compat (#21 from @ffmike)
6
+ * Support using match_json_expression as an argument matcher for rspec. (#17 by @cupakromer)
7
+
1
8
  ### v0.8.2 [view commit logs](https://github.com/chancancode/json_expressions/compare/0.8.1...0.8.2)
2
9
 
3
10
  * Bugfix: require 'rspec/core' instead of 'rspec' (#12 by @pda)
@@ -41,4 +48,4 @@
41
48
 
42
49
  ### v0.5.0
43
50
 
44
- * Initial release
51
+ * Initial release
data/README.md CHANGED
@@ -263,6 +263,19 @@ but not
263
263
  { "day": -1, "month": 13 }
264
264
  ```
265
265
 
266
+ This is also helpful for comparing Floats to a certain precision.
267
+ ```ruby
268
+ { pi: 3.141593 }
269
+ ```
270
+ won't match
271
+ ```json
272
+ { "pi": 3.1415926536 }
273
+ ```
274
+ But this will:
275
+ ```ruby
276
+ { pi: (3.141592..3.141593) }
277
+ ```
278
+
266
279
  ### Capturing
267
280
 
268
281
  Similar to how "captures" work in Regexp, you can capture the value of certain keys for later use:
@@ -397,4 +410,4 @@ Please use the [GitHub issue tracker](https://github.com/chancancode/json_expres
397
410
 
398
411
  ## License
399
412
 
400
- This library is distributed under the MIT license. Please see the LICENSE file.
413
+ This library is distributed under the MIT license. Please see the LICENSE file.
@@ -124,11 +124,11 @@ module JsonExpressions
124
124
  other = other.clone
125
125
 
126
126
  matcher.all? do |v1|
127
- if i = other.find_index { |v2| match_json(nil, v1, v2) }
127
+ if i = other.find_index { |v2| match_json(make_path(path, '*'), v1, v2) }
128
128
  other.delete_at i
129
129
  true
130
130
  else
131
- set_last_error path, "%path% does not contain an element matching #{v1.inspect}"
131
+ set_last_error path, "%path% does not contain a matching element for #{v1.inspect} - #{last_error}"
132
132
  false
133
133
  end
134
134
  end
@@ -3,11 +3,21 @@ require 'minitest/spec'
3
3
  require 'json_expressions'
4
4
  require 'json_expressions/minitest/assertions'
5
5
 
6
- class MiniTest::Unit::TestCase
7
- WILDCARD_MATCHER = JsonExpressions::WILDCARD_MATCHER
6
+ if defined?(MiniTest::VERSION) && (MiniTest::VERSION.to_i > 4)
7
+ class MiniTest::Test
8
+ WILDCARD_MATCHER = JsonExpressions::WILDCARD_MATCHER
8
9
 
9
- def wildcard_matcher
10
- ::JsonExpressions::WILDCARD_MATCHER
10
+ def wildcard_matcher
11
+ ::JsonExpressions::WILDCARD_MATCHER
12
+ end
13
+ end
14
+ else
15
+ class MiniTest::Unit::TestCase
16
+ WILDCARD_MATCHER = JsonExpressions::WILDCARD_MATCHER
17
+
18
+ def wildcard_matcher
19
+ ::JsonExpressions::WILDCARD_MATCHER
20
+ end
11
21
  end
12
22
  end
13
23
 
@@ -17,14 +17,17 @@ module JsonExpressions
17
17
  @target = (String === target) ? JSON.parse(target) : target
18
18
  @expected =~ @target
19
19
  end
20
+ alias_method :===, :matches?
20
21
 
21
22
  def failure_message_for_should
22
23
  "expected #{@target.inspect} to match JSON expression #{@expected.inspect}\n" + @expected.last_error
23
24
  end
25
+ alias_method :failure_message, :failure_message_for_should
24
26
 
25
27
  def failure_message_for_should_not
26
28
  "expected #{@target.inspect} not to match JSON expression #{@expected.inspect}"
27
29
  end
30
+ alias_method :failure_message_when_negated, :failure_message_for_should_not
28
31
 
29
32
  def description
30
33
  "should equal JSON expression #{@expected.inspect}"
@@ -36,4 +39,4 @@ module JsonExpressions
36
39
  end
37
40
  end
38
41
  end
39
- end
42
+ end
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: json_expressions
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.2
5
- prerelease:
4
+ version: 0.8.3
6
5
  platform: ruby
7
6
  authors:
8
7
  - Godfrey Chan
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-02-07 00:00:00.000000000 Z
11
+ date: 2014-07-14 00:00:00.000000000 Z
13
12
  dependencies: []
14
13
  description: JSON matchmaking for all your API testing needs.
15
14
  email:
@@ -18,41 +17,40 @@ executables: []
18
17
  extensions: []
19
18
  extra_rdoc_files: []
20
19
  files:
20
+ - CHANGELOG.md
21
+ - LICENSE
22
+ - README.md
23
+ - lib/json_expressions.rb
21
24
  - lib/json_expressions/core_extensions.rb
22
25
  - lib/json_expressions/matcher.rb
23
- - lib/json_expressions/minitest/assertions.rb
24
26
  - lib/json_expressions/minitest.rb
25
- - lib/json_expressions/rspec/matchers/match_json_expression.rb
26
- - lib/json_expressions/rspec/matchers.rb
27
+ - lib/json_expressions/minitest/assertions.rb
27
28
  - lib/json_expressions/rspec.rb
29
+ - lib/json_expressions/rspec/matchers.rb
30
+ - lib/json_expressions/rspec/matchers/match_json_expression.rb
28
31
  - lib/json_expressions/test/unit/helpers.rb
29
32
  - lib/json_expressions/testunit.rb
30
- - lib/json_expressions.rb
31
- - README.md
32
- - CHANGELOG.md
33
- - LICENSE
34
33
  homepage: https://github.com/chancancode/json_expressions
35
34
  licenses: []
35
+ metadata: {}
36
36
  post_install_message:
37
37
  rdoc_options: []
38
38
  require_paths:
39
39
  - lib
40
40
  required_ruby_version: !ruby/object:Gem::Requirement
41
- none: false
42
41
  requirements:
43
- - - ! '>='
42
+ - - '>='
44
43
  - !ruby/object:Gem::Version
45
44
  version: '0'
46
45
  required_rubygems_version: !ruby/object:Gem::Requirement
47
- none: false
48
46
  requirements:
49
- - - ! '>='
47
+ - - '>='
50
48
  - !ruby/object:Gem::Version
51
49
  version: 1.3.6
52
50
  requirements: []
53
51
  rubyforge_project:
54
- rubygems_version: 1.8.23
52
+ rubygems_version: 2.2.1
55
53
  signing_key:
56
- specification_version: 3
54
+ specification_version: 4
57
55
  summary: JSON Expressions
58
56
  test_files: []