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 CHANGED
@@ -1 +1 @@
1
- 0.2.3
1
+ 0.2.4
@@ -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.3"
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-17}
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.class == b.class
5
- if a.is_a?(Hash)
6
- return merge_hashes(a, b)
7
- elsif a.is_a?(Array)
8
- return merge_arrays(a, b)
9
- end
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: 17
4
+ hash: 31
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 2
9
- - 3
10
- version: 0.2.3
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-17 00:00:00 +02:00
18
+ date: 2011-08-21 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
- name: nokogiri
23
- prerelease: false
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
- type: :runtime
34
- requirement: *id001
35
- - !ruby/object:Gem::Dependency
36
- name: redis
32
+ name: nokogiri
33
+ version_requirements: *id001
37
34
  prerelease: false
38
- version_requirements: &id002 !ruby/object:Gem::Requirement
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
- type: :runtime
48
- requirement: *id002
49
- - !ruby/object:Gem::Dependency
50
- name: typhoeus
46
+ name: redis
47
+ version_requirements: *id002
51
48
  prerelease: false
52
- version_requirements: &id003 !ruby/object:Gem::Requirement
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
- type: :runtime
62
- requirement: *id003
63
- - !ruby/object:Gem::Dependency
64
- name: rspec
60
+ name: typhoeus
61
+ version_requirements: *id003
65
62
  prerelease: false
66
- version_requirements: &id004 !ruby/object:Gem::Requirement
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
- type: :development
78
- requirement: *id004
79
- - !ruby/object:Gem::Dependency
80
- name: bundler
76
+ name: rspec
77
+ version_requirements: *id004
81
78
  prerelease: false
82
- version_requirements: &id005 !ruby/object:Gem::Requirement
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
- type: :development
94
- requirement: *id005
95
- - !ruby/object:Gem::Dependency
96
- name: jeweler
92
+ name: bundler
93
+ version_requirements: *id005
97
94
  prerelease: false
98
- version_requirements: &id006 !ruby/object:Gem::Requirement
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
- type: :development
110
- requirement: *id006
111
- - !ruby/object:Gem::Dependency
112
- name: rcov
108
+ name: jeweler
109
+ version_requirements: *id006
113
110
  prerelease: false
114
- version_requirements: &id007 !ruby/object:Gem::Requirement
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
- type: :development
124
- requirement: *id007
125
- - !ruby/object:Gem::Dependency
126
- name: ZenTest
122
+ name: rcov
123
+ version_requirements: *id007
127
124
  prerelease: false
128
- version_requirements: &id008 !ruby/object:Gem::Requirement
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
- type: :development
140
- requirement: *id008
141
- - !ruby/object:Gem::Dependency
142
- name: autotest
138
+ name: ZenTest
139
+ version_requirements: *id008
143
140
  prerelease: false
144
- version_requirements: &id009 !ruby/object:Gem::Requirement
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
- type: :development
154
- requirement: *id009
155
- - !ruby/object:Gem::Dependency
156
- name: autotest-growl
152
+ name: autotest
153
+ version_requirements: *id009
157
154
  prerelease: false
158
- version_requirements: &id010 !ruby/object:Gem::Requirement
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
- type: :development
168
- requirement: *id010
169
- - !ruby/object:Gem::Dependency
170
- name: ruby-debug
166
+ name: autotest-growl
167
+ version_requirements: *id010
171
168
  prerelease: false
172
- version_requirements: &id011 !ruby/object:Gem::Requirement
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
- type: :development
182
- requirement: *id011
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: