easy_diff 0.0.4 → 0.0.5
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.
- checksums.yaml +15 -0
- data/Gemfile +2 -3
- data/Gemfile.lock +52 -9
- data/README.rdoc +2 -1
- data/VERSION +1 -1
- data/easy_diff.gemspec +3 -3
- data/lib/easy_diff/core.rb +3 -1
- data/spec/easy_diff_spec.rb +26 -0
- data/spec/spec_helper.rb +3 -0
- metadata +11 -42
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
YWJhY2NkMDUwNDViYWQ2Nzk5OTc0YTE4ODJjYTM4MTBmNmQ0MzYxNw==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
ZDAwZWZjNmY5ZTY4NjJkYTgzYjJiMzUxNmNiMzNkNGI2NjZhMGQyNQ==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
MzEzZDE5OWY3ODBiYmEzZjJlNmE3MWZmNWYwMDM0OTMzZTEzZWUwMzMyODkz
|
10
|
+
YWRiNzA3ZTUxNDhiNWU4OTJiYTQxNDM0YWM1ZjZjZjYxOWM4NWM0Y2QwYjc2
|
11
|
+
NDNhMzRhODY5NjQxMTczMmQ1ZTJhZmJkMzJlM2IzNDY5Njc1MTY=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
ZDViMzFiZGUzZjU0MmQ0NzYzMmFjYjJmYTM3YWNiZDk0MWVhMGZmYzFjMzU1
|
14
|
+
ZTUzOWY4YzViZGI2ZjQ1MGVlZDc2NWMxMDY2ZjNhOTdiMzIxODdjNWZkYjkw
|
15
|
+
OTQyOTYxODY0M2YwZTUwOGU2ODg3ZDZlODQxNGMyMGVlZWUxYzM=
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,14 +1,52 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
+
addressable (2.3.8)
|
5
|
+
builder (3.2.2)
|
6
|
+
descendants_tracker (0.0.4)
|
7
|
+
thread_safe (~> 0.3, >= 0.3.1)
|
4
8
|
diff-lcs (1.1.3)
|
5
|
-
|
6
|
-
|
7
|
-
|
9
|
+
docile (1.1.5)
|
10
|
+
faraday (0.9.1)
|
11
|
+
multipart-post (>= 1.2, < 3)
|
12
|
+
git (1.2.9.1)
|
13
|
+
github_api (0.12.4)
|
14
|
+
addressable (~> 2.3)
|
15
|
+
descendants_tracker (~> 0.0.4)
|
16
|
+
faraday (~> 0.8, < 0.10)
|
17
|
+
hashie (>= 3.4)
|
18
|
+
multi_json (>= 1.7.5, < 2.0)
|
19
|
+
nokogiri (~> 1.6.6)
|
20
|
+
oauth2
|
21
|
+
hashie (3.4.2)
|
22
|
+
highline (1.7.3)
|
23
|
+
jeweler (2.0.1)
|
24
|
+
builder
|
25
|
+
bundler (>= 1.0)
|
8
26
|
git (>= 1.2.5)
|
27
|
+
github_api
|
28
|
+
highline (>= 1.6.15)
|
29
|
+
nokogiri (>= 1.5.10)
|
9
30
|
rake
|
10
|
-
|
11
|
-
|
31
|
+
rdoc
|
32
|
+
json (1.8.3)
|
33
|
+
jwt (1.5.1)
|
34
|
+
mini_portile (0.6.2)
|
35
|
+
multi_json (1.11.2)
|
36
|
+
multi_xml (0.5.5)
|
37
|
+
multipart-post (2.0.0)
|
38
|
+
nokogiri (1.6.6.2)
|
39
|
+
mini_portile (~> 0.6.0)
|
40
|
+
oauth2 (1.0.0)
|
41
|
+
faraday (>= 0.8, < 0.10)
|
42
|
+
jwt (~> 1.0)
|
43
|
+
multi_json (~> 1.3)
|
44
|
+
multi_xml (~> 0.5)
|
45
|
+
rack (~> 1.2)
|
46
|
+
rack (1.6.4)
|
47
|
+
rake (10.4.2)
|
48
|
+
rdoc (4.2.0)
|
49
|
+
json (~> 1.4)
|
12
50
|
rspec (2.4.0)
|
13
51
|
rspec-core (~> 2.4.0)
|
14
52
|
rspec-expectations (~> 2.4.0)
|
@@ -17,14 +55,19 @@ GEM
|
|
17
55
|
rspec-expectations (2.4.0)
|
18
56
|
diff-lcs (~> 1.1.2)
|
19
57
|
rspec-mocks (2.4.0)
|
20
|
-
|
58
|
+
simplecov (0.10.0)
|
59
|
+
docile (~> 1.1.0)
|
60
|
+
json (~> 1.8)
|
61
|
+
simplecov-html (~> 0.10.0)
|
62
|
+
simplecov-html (0.10.0)
|
63
|
+
thread_safe (0.3.5)
|
64
|
+
yard (0.6.8)
|
21
65
|
|
22
66
|
PLATFORMS
|
23
67
|
ruby
|
24
68
|
|
25
69
|
DEPENDENCIES
|
26
|
-
|
27
|
-
jeweler (~> 1.5.2)
|
28
|
-
rcov
|
70
|
+
jeweler
|
29
71
|
rspec (~> 2.4.0)
|
72
|
+
simplecov
|
30
73
|
yard (~> 0.6.0)
|
data/README.rdoc
CHANGED
@@ -54,7 +54,8 @@ The first contains what has to be removed from self to create the second hash. T
|
|
54
54
|
|
55
55
|
=== Hash#easy_merge
|
56
56
|
|
57
|
-
Takes a hash and recursively merges it with self. Arrays are merged by the union operation and then sorted.
|
57
|
+
Takes a hash and recursively merges it with self. Arrays are merged by the union operation and then sorted. Arrays of Hashes are sorted by invoking +#sort+ on each Hash to make them comparable.
|
58
|
+
|
58
59
|
Using Hash#easy_merge! will modify self instead of returning a new hash.
|
59
60
|
|
60
61
|
original = {
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.5
|
data/easy_diff.gemspec
CHANGED
@@ -51,20 +51,20 @@ Gem::Specification.new do |s|
|
|
51
51
|
s.add_development_dependency(%q<yard>, ["~> 0.6.0"])
|
52
52
|
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
53
53
|
s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
|
54
|
-
s.add_development_dependency(%q<
|
54
|
+
s.add_development_dependency(%q<simplecov>, [">= 0"])
|
55
55
|
else
|
56
56
|
s.add_dependency(%q<rspec>, ["~> 2.4.0"])
|
57
57
|
s.add_dependency(%q<yard>, ["~> 0.6.0"])
|
58
58
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
59
59
|
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
60
|
-
s.add_dependency(%q<
|
60
|
+
s.add_dependency(%q<simplecov>, [">= 0"])
|
61
61
|
end
|
62
62
|
else
|
63
63
|
s.add_dependency(%q<rspec>, ["~> 2.4.0"])
|
64
64
|
s.add_dependency(%q<yard>, ["~> 0.6.0"])
|
65
65
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
66
66
|
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
67
|
-
s.add_dependency(%q<
|
67
|
+
s.add_dependency(%q<simplecov>, [">= 0"])
|
68
68
|
end
|
69
69
|
end
|
70
70
|
|
data/lib/easy_diff/core.rb
CHANGED
@@ -56,7 +56,9 @@ module EasyDiff
|
|
56
56
|
added_keys.each{ |key| original[key] = easy_merge!(original[key], added[key])}
|
57
57
|
elsif original.is_a?(Array) && added.is_a?(Array)
|
58
58
|
original |= added
|
59
|
-
original.
|
59
|
+
original.sort_by! { |item|
|
60
|
+
item.is_a?(Hash) ? item.sort : item
|
61
|
+
}
|
60
62
|
else
|
61
63
|
original = added.safe_dup
|
62
64
|
end
|
data/spec/easy_diff_spec.rb
CHANGED
@@ -131,4 +131,30 @@ describe EasyDiff do
|
|
131
131
|
removed.should == {:possibly_empty_string => ""}
|
132
132
|
added.should == {:possibly_empty_string => "not empty"}
|
133
133
|
end
|
134
|
+
|
135
|
+
it "should merge Arrays containing Hashes" do
|
136
|
+
original = {
|
137
|
+
"key" => [
|
138
|
+
{"c" => "1"},
|
139
|
+
{"a" => "2"},
|
140
|
+
{"a" => "1"},
|
141
|
+
]
|
142
|
+
}
|
143
|
+
|
144
|
+
to_merge = {
|
145
|
+
"key" => [
|
146
|
+
{"b" => "2"},
|
147
|
+
]
|
148
|
+
}
|
149
|
+
|
150
|
+
merged = original.easy_merge to_merge
|
151
|
+
merged.should == {
|
152
|
+
"key" => [
|
153
|
+
{"a" => "1"},
|
154
|
+
{"a" => "2"},
|
155
|
+
{"b" => "2"},
|
156
|
+
{"c" => "1"},
|
157
|
+
]
|
158
|
+
}
|
159
|
+
end
|
134
160
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: easy_diff
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.5
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Abner Qian
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2015-08-03 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rspec
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ~>
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ~>
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,7 +27,6 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: yard
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - ~>
|
36
32
|
- !ruby/object:Gem::Version
|
@@ -38,47 +34,27 @@ dependencies:
|
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - ~>
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: 0.6.0
|
46
|
-
- !ruby/object:Gem::Dependency
|
47
|
-
name: bundler
|
48
|
-
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
|
-
requirements:
|
51
|
-
- - ~>
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: 1.0.0
|
54
|
-
type: :development
|
55
|
-
prerelease: false
|
56
|
-
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
|
-
requirements:
|
59
|
-
- - ~>
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: 1.0.0
|
62
41
|
- !ruby/object:Gem::Dependency
|
63
42
|
name: jeweler
|
64
43
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
44
|
requirements:
|
67
|
-
- -
|
45
|
+
- - ! '>='
|
68
46
|
- !ruby/object:Gem::Version
|
69
|
-
version:
|
47
|
+
version: '0'
|
70
48
|
type: :development
|
71
49
|
prerelease: false
|
72
50
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
51
|
requirements:
|
75
|
-
- -
|
52
|
+
- - ! '>='
|
76
53
|
- !ruby/object:Gem::Version
|
77
|
-
version:
|
54
|
+
version: '0'
|
78
55
|
- !ruby/object:Gem::Dependency
|
79
|
-
name:
|
56
|
+
name: simplecov
|
80
57
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
58
|
requirements:
|
83
59
|
- - ! '>='
|
84
60
|
- !ruby/object:Gem::Version
|
@@ -86,7 +62,6 @@ dependencies:
|
|
86
62
|
type: :development
|
87
63
|
prerelease: false
|
88
64
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
65
|
requirements:
|
91
66
|
- - ! '>='
|
92
67
|
- !ruby/object:Gem::Version
|
@@ -121,31 +96,25 @@ files:
|
|
121
96
|
homepage: http://github.com/Blargel/easy_diff
|
122
97
|
licenses:
|
123
98
|
- MIT
|
99
|
+
metadata: {}
|
124
100
|
post_install_message:
|
125
101
|
rdoc_options: []
|
126
102
|
require_paths:
|
127
103
|
- lib
|
128
104
|
required_ruby_version: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
105
|
requirements:
|
131
106
|
- - ! '>='
|
132
107
|
- !ruby/object:Gem::Version
|
133
108
|
version: '0'
|
134
|
-
segments:
|
135
|
-
- 0
|
136
|
-
hash: -1698235666282817780
|
137
109
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
138
|
-
none: false
|
139
110
|
requirements:
|
140
111
|
- - ! '>='
|
141
112
|
- !ruby/object:Gem::Version
|
142
113
|
version: '0'
|
143
114
|
requirements: []
|
144
115
|
rubyforge_project:
|
145
|
-
rubygems_version:
|
116
|
+
rubygems_version: 2.2.2
|
146
117
|
signing_key:
|
147
|
-
specification_version:
|
118
|
+
specification_version: 4
|
148
119
|
summary: Recursive diff, merge, and unmerge for hashes and arrays.
|
149
|
-
test_files:
|
150
|
-
- spec/easy_diff_spec.rb
|
151
|
-
- spec/spec_helper.rb
|
120
|
+
test_files: []
|