dynport_tools 0.2.3 → 0.2.4
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/VERSION +1 -1
- data/dynport_tools.gemspec +2 -2
- data/lib/dynport_tools/deep_merger.rb +6 -7
- data/spec/dynport_tools/deep_merger_spec.rb +20 -0
- metadata +59 -59
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.4
|
data/dynport_tools.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{dynport_tools}
|
8
|
-
s.version = "0.2.
|
8
|
+
s.version = "0.2.4"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Tobias Schwab"]
|
12
|
-
s.date = %q{2011-08-
|
12
|
+
s.date = %q{2011-08-21}
|
13
13
|
s.description = %q{Collection of various tools}
|
14
14
|
s.email = %q{tobias.schwab@dynport.de}
|
15
15
|
s.executables = ["xmldiff", "redis_dumper"]
|
@@ -1,14 +1,13 @@
|
|
1
1
|
class DynportTools::DeepMerger
|
2
2
|
class << self
|
3
3
|
def merge(a, b)
|
4
|
-
if a.
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
4
|
+
if a.is_a?(Hash) && b.is_a?(Hash)
|
5
|
+
merge_hashes(a, b)
|
6
|
+
elsif a.is_a?(Array) && b.is_a?(Array)
|
7
|
+
merge_arrays(a, b)
|
8
|
+
else
|
9
|
+
b
|
10
10
|
end
|
11
|
-
b
|
12
11
|
end
|
13
12
|
|
14
13
|
def merge_arrays(a, b)
|
@@ -1,10 +1,30 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe DynportTools::DeepMerger do
|
4
|
+
class SubHash < Hash
|
5
|
+
end
|
6
|
+
|
7
|
+
class SubArray < Array
|
8
|
+
end
|
9
|
+
|
4
10
|
it "merges two hashes" do
|
5
11
|
DynportTools::DeepMerger.merge({ :a => 1 }, { :b => 2 }).should == { :a => 1, :b => 2 }
|
6
12
|
end
|
7
13
|
|
14
|
+
it "calls merge_hashes even if one is a subclass of hash" do
|
15
|
+
sh = SubHash.new
|
16
|
+
hash = { :a => 1 }
|
17
|
+
DynportTools::DeepMerger.should_receive(:merge_hashes).with(hash, sh).and_return "hash"
|
18
|
+
DynportTools::DeepMerger.merge(hash, sh).should == "hash"
|
19
|
+
end
|
20
|
+
|
21
|
+
it "calls merge_arrays even if one is a subclass of array" do
|
22
|
+
sa = SubArray.new
|
23
|
+
array = [1]
|
24
|
+
DynportTools::DeepMerger.should_receive(:merge_arrays).with(sa, array).and_return "array"
|
25
|
+
DynportTools::DeepMerger.merge(sa, array).should == "array"
|
26
|
+
end
|
27
|
+
|
8
28
|
it "merges two arrays with same number of attributes" do
|
9
29
|
DynportTools::DeepMerger.merge([{ :a => 1, :b => 1 }], [{ :a => 2, :c => 3 }]).should == [{ :a => 2, :b => 1, :c => 3 }]
|
10
30
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dynport_tools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 31
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
9
|
+
- 4
|
10
|
+
version: 0.2.4
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Tobias Schwab
|
@@ -15,13 +15,12 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-08-
|
18
|
+
date: 2011-08-21 00:00:00 +02:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
|
-
|
23
|
-
|
24
|
-
version_requirements: &id001 !ruby/object:Gem::Requirement
|
22
|
+
type: :runtime
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
24
|
none: false
|
26
25
|
requirements:
|
27
26
|
- - ">="
|
@@ -30,12 +29,12 @@ dependencies:
|
|
30
29
|
segments:
|
31
30
|
- 0
|
32
31
|
version: "0"
|
33
|
-
|
34
|
-
|
35
|
-
- !ruby/object:Gem::Dependency
|
36
|
-
name: redis
|
32
|
+
name: nokogiri
|
33
|
+
version_requirements: *id001
|
37
34
|
prerelease: false
|
38
|
-
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
type: :runtime
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
39
38
|
none: false
|
40
39
|
requirements:
|
41
40
|
- - ">="
|
@@ -44,12 +43,12 @@ dependencies:
|
|
44
43
|
segments:
|
45
44
|
- 0
|
46
45
|
version: "0"
|
47
|
-
|
48
|
-
|
49
|
-
- !ruby/object:Gem::Dependency
|
50
|
-
name: typhoeus
|
46
|
+
name: redis
|
47
|
+
version_requirements: *id002
|
51
48
|
prerelease: false
|
52
|
-
|
49
|
+
- !ruby/object:Gem::Dependency
|
50
|
+
type: :runtime
|
51
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
53
52
|
none: false
|
54
53
|
requirements:
|
55
54
|
- - ">="
|
@@ -58,12 +57,12 @@ dependencies:
|
|
58
57
|
segments:
|
59
58
|
- 0
|
60
59
|
version: "0"
|
61
|
-
|
62
|
-
|
63
|
-
- !ruby/object:Gem::Dependency
|
64
|
-
name: rspec
|
60
|
+
name: typhoeus
|
61
|
+
version_requirements: *id003
|
65
62
|
prerelease: false
|
66
|
-
|
63
|
+
- !ruby/object:Gem::Dependency
|
64
|
+
type: :development
|
65
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
67
66
|
none: false
|
68
67
|
requirements:
|
69
68
|
- - ~>
|
@@ -74,12 +73,12 @@ dependencies:
|
|
74
73
|
- 3
|
75
74
|
- 0
|
76
75
|
version: 2.3.0
|
77
|
-
|
78
|
-
|
79
|
-
- !ruby/object:Gem::Dependency
|
80
|
-
name: bundler
|
76
|
+
name: rspec
|
77
|
+
version_requirements: *id004
|
81
78
|
prerelease: false
|
82
|
-
|
79
|
+
- !ruby/object:Gem::Dependency
|
80
|
+
type: :development
|
81
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
83
82
|
none: false
|
84
83
|
requirements:
|
85
84
|
- - ~>
|
@@ -90,12 +89,12 @@ dependencies:
|
|
90
89
|
- 0
|
91
90
|
- 0
|
92
91
|
version: 1.0.0
|
93
|
-
|
94
|
-
|
95
|
-
- !ruby/object:Gem::Dependency
|
96
|
-
name: jeweler
|
92
|
+
name: bundler
|
93
|
+
version_requirements: *id005
|
97
94
|
prerelease: false
|
98
|
-
|
95
|
+
- !ruby/object:Gem::Dependency
|
96
|
+
type: :development
|
97
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
99
98
|
none: false
|
100
99
|
requirements:
|
101
100
|
- - ~>
|
@@ -106,12 +105,12 @@ dependencies:
|
|
106
105
|
- 6
|
107
106
|
- 4
|
108
107
|
version: 1.6.4
|
109
|
-
|
110
|
-
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: rcov
|
108
|
+
name: jeweler
|
109
|
+
version_requirements: *id006
|
113
110
|
prerelease: false
|
114
|
-
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
type: :development
|
113
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
115
114
|
none: false
|
116
115
|
requirements:
|
117
116
|
- - ">="
|
@@ -120,12 +119,12 @@ dependencies:
|
|
120
119
|
segments:
|
121
120
|
- 0
|
122
121
|
version: "0"
|
123
|
-
|
124
|
-
|
125
|
-
- !ruby/object:Gem::Dependency
|
126
|
-
name: ZenTest
|
122
|
+
name: rcov
|
123
|
+
version_requirements: *id007
|
127
124
|
prerelease: false
|
128
|
-
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
type: :development
|
127
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
129
128
|
none: false
|
130
129
|
requirements:
|
131
130
|
- - "="
|
@@ -136,12 +135,12 @@ dependencies:
|
|
136
135
|
- 5
|
137
136
|
- 0
|
138
137
|
version: 4.5.0
|
139
|
-
|
140
|
-
|
141
|
-
- !ruby/object:Gem::Dependency
|
142
|
-
name: autotest
|
138
|
+
name: ZenTest
|
139
|
+
version_requirements: *id008
|
143
140
|
prerelease: false
|
144
|
-
|
141
|
+
- !ruby/object:Gem::Dependency
|
142
|
+
type: :development
|
143
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
145
144
|
none: false
|
146
145
|
requirements:
|
147
146
|
- - ">="
|
@@ -150,12 +149,12 @@ dependencies:
|
|
150
149
|
segments:
|
151
150
|
- 0
|
152
151
|
version: "0"
|
153
|
-
|
154
|
-
|
155
|
-
- !ruby/object:Gem::Dependency
|
156
|
-
name: autotest-growl
|
152
|
+
name: autotest
|
153
|
+
version_requirements: *id009
|
157
154
|
prerelease: false
|
158
|
-
|
155
|
+
- !ruby/object:Gem::Dependency
|
156
|
+
type: :development
|
157
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
159
158
|
none: false
|
160
159
|
requirements:
|
161
160
|
- - ">="
|
@@ -164,12 +163,12 @@ dependencies:
|
|
164
163
|
segments:
|
165
164
|
- 0
|
166
165
|
version: "0"
|
167
|
-
|
168
|
-
|
169
|
-
- !ruby/object:Gem::Dependency
|
170
|
-
name: ruby-debug
|
166
|
+
name: autotest-growl
|
167
|
+
version_requirements: *id010
|
171
168
|
prerelease: false
|
172
|
-
|
169
|
+
- !ruby/object:Gem::Dependency
|
170
|
+
type: :development
|
171
|
+
requirement: &id011 !ruby/object:Gem::Requirement
|
173
172
|
none: false
|
174
173
|
requirements:
|
175
174
|
- - ">="
|
@@ -178,8 +177,9 @@ dependencies:
|
|
178
177
|
segments:
|
179
178
|
- 0
|
180
179
|
version: "0"
|
181
|
-
|
182
|
-
|
180
|
+
name: ruby-debug
|
181
|
+
version_requirements: *id011
|
182
|
+
prerelease: false
|
183
183
|
description: Collection of various tools
|
184
184
|
email: tobias.schwab@dynport.de
|
185
185
|
executables:
|