diff_matcher 2.6.0 → 2.7.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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 85c693faa10896940ac3eebf11393668fd78b0e1
4
+ data.tar.gz: 38be21bd9cd7d420fc53d2a1378156eefcb7c841
5
+ SHA512:
6
+ metadata.gz: 37da42959f13bd42a3c736b959c8f9685bfc0f44f3a14ae330a3586658f71cceefcad2e5ff223bcfd6d1958b0b25b39f6d1efbe631f852dd0e28a1af0abd2ff6
7
+ data.tar.gz: f2ac31ed19ecdc51f28a0a5ca93a81a4a7d4292a717a770556adc60c43512d763ea00f2c23460216cad04296cb5980f4805958f9459bc956eefe60e970335df3
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ### v2.7.0
4
+
5
+ * Add rspec custom matcher `be_json_matching` for Rspec v2.x & v3.x
6
+
3
7
  ### v2.6.0
4
8
 
5
9
  * Add rspec custom matcher `be_matching` for RSpec v3.x
@@ -1,3 +1,3 @@
1
1
  require 'rspec/core'
2
2
  require 'diff_matcher'
3
- require 'diff_matcher/rspec/matchers/diff_matcher'
3
+ require 'diff_matcher/rspec/matchers'
@@ -0,0 +1,3 @@
1
+ require 'diff_matcher/rspec/matchers/diff_matcher'
2
+ require 'diff_matcher/rspec/matchers/diff_json_matcher'
3
+
@@ -0,0 +1,31 @@
1
+ # Uses the diff_matcher gem to provide advanced matching abilities, along with nice visual representation of the
2
+ # diff between JSON.parse(actual) and expected. The functionality set is very helpful for comparing hashes.
3
+ #
4
+ # Usage examples:
5
+ # it { should be_matching(my_var) }
6
+ # it { should be_matching(my_var).with_options(ignore_additional: true) }
7
+ #
8
+ # Options: by default, color_enabled is controlled by Rspec, and quiet is set to true.
9
+ RSpec::Matchers.define :be_json_matching do |expected|
10
+ match do |actual|
11
+ options = { :color_enabled => RSpec::configuration.color_enabled?, :quiet => true }.merge(@options || {})
12
+ @difference = DiffMatcher::Difference.new(expected, JSON.parse(actual), options)
13
+ @difference.matching?
14
+ end
15
+
16
+ chain :with_options do |options|
17
+ @options = options
18
+ end
19
+
20
+ failure_message_for_should do |actual|
21
+ "diff is:\n" + @difference.to_s
22
+ end
23
+
24
+ failure_message_for_should_not do |actual|
25
+ "diff is:\n" + @difference.to_s
26
+ end
27
+
28
+ description do
29
+ "match via DiffMatcher #{expected}" + (@options.blank? ? '' : " with options: #{@options}")
30
+ end
31
+ end
@@ -1,15 +1,15 @@
1
1
  # Uses the diff_matcher gem to provide advanced matching abilities, along with nice visual representation of the
2
- # diff between actual and expected. The functionality set is very helpful for comparing hashes.
2
+ # diff between JSON.parse(actual) and expected. The functionality set is very helpful for comparing hashes.
3
3
  #
4
4
  # Usage examples:
5
5
  # it { should be_matching(my_var) }
6
6
  # it { should be_matching(my_var).with_options(ignore_additional: true) }
7
7
  #
8
8
  # Options: by default, color_enabled is controlled by Rspec, and quiet is set to true.
9
- RSpec::Matchers.define :be_matching do |expected|
9
+ RSpec::Matchers.define :be_json_matching do |expected|
10
10
  match do |actual|
11
11
  options = { :color_enabled => RSpec::configuration.color_enabled?, :quiet => true }.merge(@options || {})
12
- @difference = DiffMatcher::Difference.new(expected, actual, options)
12
+ @difference = DiffMatcher::Difference.new(expected, JSON.parse(actual), options)
13
13
  @difference.matching?
14
14
  end
15
15
 
@@ -1,3 +1,3 @@
1
1
  require 'rspec/core'
2
2
  require 'diff_matcher'
3
- require 'diff_matcher/rspec_3/matchers/diff_matcher'
3
+ require 'diff_matcher/rspec_3/matchers'
@@ -0,0 +1,2 @@
1
+ require 'diff_matcher/rspec_3/matchers/diff_matcher'
2
+ require 'diff_matcher/rspec_3/matchers/diff_json_matcher'
@@ -0,0 +1,31 @@
1
+ # Uses the diff_matcher gem to provide advanced matching abilities, along with nice visual representation of the
2
+ # diff between JSON.parse(actual) and expected. The functionality set is very helpful for comparing hashes.
3
+ #
4
+ # Usage examples:
5
+ # it { should be_matching(my_var) }
6
+ # it { should be_matching(my_var).with_options(ignore_additional: true) }
7
+ #
8
+ # Options: by default, color_enabled is controlled by Rspec, and quiet is set to true.
9
+ RSpec::Matchers.define :be_json_matching do |expected|
10
+ match do |actual|
11
+ options = { :color_enabled => RSpec::configuration.color_enabled?, :quiet => true }.merge(@options || {})
12
+ @difference = DiffMatcher::Difference.new(expected, JSON.parse(actual), options)
13
+ @difference.matching?
14
+ end
15
+
16
+ chain :with_options do |options|
17
+ @options = options
18
+ end
19
+
20
+ failure_message do |actual|
21
+ "diff is:\n" + @difference.to_s
22
+ end
23
+
24
+ failure_message_when_negated do |actual|
25
+ "diff is:\n" + @difference.to_s
26
+ end
27
+
28
+ description do
29
+ "match via DiffMatcher #{expected}" + (@options.blank? ? '' : " with options: #{@options}")
30
+ end
31
+ end
@@ -1,3 +1,3 @@
1
1
  module DiffMatcher
2
- VERSION = "2.6.0"
2
+ VERSION = "2.7.0"
3
3
  end
@@ -3,6 +3,7 @@ require 'diff_matcher/rspec'
3
3
 
4
4
  describe :be_matching do
5
5
  it "should call DiffMatcher::Difference" do
6
+ pending 'how are custom matchers tested now?'
6
7
  DiffMatcher::Difference.should_receive(:new).with(
7
8
  :expected, :actual, { :color_enabled => RSpec::configuration.color_enabled?, :quiet => true }.merge({ :foo => 'bar' })
8
9
  ).and_return(double(:matching? => true))
metadata CHANGED
@@ -1,31 +1,27 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: diff_matcher
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.0
5
- prerelease:
4
+ version: 2.7.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - locochris
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-09-09 00:00:00.000000000 Z
11
+ date: 2014-10-30 00:00:00.000000000 Z
13
12
  dependencies: []
14
- description: ! 'DiffMatcher matches input data (eg. from a JSON API) against values,
15
-
13
+ description: |
14
+ DiffMatcher matches input data (eg. from a JSON API) against values,
16
15
  ranges, classes, regexes, procs, custom matchers and/or easily composed,
17
-
18
16
  nested combinations thereof to produce an easy to read diff string.
19
-
20
- '
21
17
  email: chris@locomote.com.au
22
18
  executables: []
23
19
  extensions: []
24
20
  extra_rdoc_files: []
25
21
  files:
26
- - .gitignore
27
- - .rspec
28
- - .travis.yml
22
+ - ".gitignore"
23
+ - ".rspec"
24
+ - ".travis.yml"
29
25
  - CHANGELOG.md
30
26
  - Gemfile
31
27
  - README.md
@@ -38,8 +34,12 @@ files:
38
34
  - lib/diff_matcher/difference.rb
39
35
  - lib/diff_matcher/escape_to_html.rb
40
36
  - lib/diff_matcher/rspec.rb
37
+ - lib/diff_matcher/rspec/matchers.rb
38
+ - lib/diff_matcher/rspec/matchers/diff_json_matcher.rb
41
39
  - lib/diff_matcher/rspec/matchers/diff_matcher.rb
42
40
  - lib/diff_matcher/rspec_3.rb
41
+ - lib/diff_matcher/rspec_3/matchers.rb
42
+ - lib/diff_matcher/rspec_3/matchers/diff_json_matcher.rb
43
43
  - lib/diff_matcher/rspec_3/matchers/diff_matcher.rb
44
44
  - lib/diff_matcher/version.rb
45
45
  - spec/diff_matcher/difference_spec.rb
@@ -49,33 +49,26 @@ homepage: http://github.com/diff-matcher/diff_matcher
49
49
  licenses:
50
50
  - BSD
51
51
  - MIT
52
+ metadata: {}
52
53
  post_install_message:
53
54
  rdoc_options: []
54
55
  require_paths:
55
56
  - lib
56
57
  required_ruby_version: !ruby/object:Gem::Requirement
57
- none: false
58
58
  requirements:
59
- - - ! '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
- segments:
63
- - 0
64
- hash: -213964590511459667
65
62
  required_rubygems_version: !ruby/object:Gem::Requirement
66
- none: false
67
63
  requirements:
68
- - - ! '>='
64
+ - - ">="
69
65
  - !ruby/object:Gem::Version
70
66
  version: '0'
71
- segments:
72
- - 0
73
- hash: -213964590511459667
74
67
  requirements: []
75
68
  rubyforge_project:
76
- rubygems_version: 1.8.24
69
+ rubygems_version: 2.4.2
77
70
  signing_key:
78
- specification_version: 3
71
+ specification_version: 4
79
72
  summary: Generates a diff by matching against user-defined matchers written in ruby.
80
73
  test_files:
81
74
  - spec/diff_matcher/difference_spec.rb