rspec-hash_diff 0.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/rspec-hash_diff.rb +29 -0
  3. metadata +72 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: c1877f1d175c9c2024262cb8252605e156ea37fb
4
+ data.tar.gz: 74522abb8dca38e779e6838cdf3f3b9836a5eae6
5
+ SHA512:
6
+ metadata.gz: ebded3b8c1171da46037e84472261111e9a191c1d9a959ab4d9ec40c13603fd3f115773f2822f7a19c16b913bffb31efa85962c0d3c99f2d10a76ca3f8d37db6
7
+ data.tar.gz: acde12e830f94f17e37e34a338f6d74cb652d2bc31bb6b73379d10e3bbd62051d98fcf3c406db07e6e396b93a2ce61c6bd943b2ddb205e7c2a352de155990a78
@@ -0,0 +1,29 @@
1
+ require 'hashdiff'
2
+
3
+ module RSpec
4
+ module Support
5
+ class Differ
6
+ def diff_as_object(actual, expected)
7
+ if actual.instance_of?(Hash) && expected.instance_of?(Hash)
8
+ diff = HashDiff.diff(actual, expected, delimiter: ":")
9
+ diff_str = diff.map do |diff_line|
10
+ key = diff_line[1].split(":")
11
+ case diff_line[0]
12
+ when "~"
13
+ "+ " + key.map {|key| "{#{key}:" }.join("") + " #{diff_line[2]} #{key.length.times.map { "}" }.join("")}" + "\n" + "- " + key.map {|key| "{#{key}:" }.join("") + " #{diff_line[3]} #{key.length.times.map { "}" }.join("")}" + "\n"
14
+ when "+"
15
+ "+ " + key.map {|key| "{#{key}:" }.join("") + diff_line[2] + "\n"
16
+ when "-"
17
+ "- " + key.map {|key| "{#{key}:" }.join("") + diff_line[3] + "\n"
18
+ end
19
+ end.join("")
20
+ diff_str = "\n#{diff_str}"
21
+ else
22
+ actual_as_string = object_to_string(actual)
23
+ expected_as_string = object_to_string(expected)
24
+ diff_as_string(actual_as_string, expected_as_string)
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
metadata ADDED
@@ -0,0 +1,72 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rspec-hash_diff
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Sid Shanker
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-01-08 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: hashdiff
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ description:
42
+ email:
43
+ executables: []
44
+ extensions: []
45
+ extra_rdoc_files: []
46
+ files:
47
+ - lib/rspec-hash_diff.rb
48
+ homepage:
49
+ licenses:
50
+ - MIT
51
+ metadata: {}
52
+ post_install_message:
53
+ rdoc_options: []
54
+ require_paths:
55
+ - lib
56
+ required_ruby_version: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - '>='
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ required_rubygems_version: !ruby/object:Gem::Requirement
62
+ requirements:
63
+ - - '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ requirements: []
67
+ rubyforge_project:
68
+ rubygems_version: 2.0.14
69
+ signing_key:
70
+ specification_version: 4
71
+ summary: A library for rspec that displays better hash diffs
72
+ test_files: []