cascading-configuration-hash 1.4.1 → 1.5.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.
Files changed (19) hide show
  1. data/lib/cascading-configuration-hash/CascadingConfiguration/Hash/Interface.rb +86 -27
  2. data/lib/cascading-configuration-hash/CascadingConfiguration/Hash.rb +5 -21
  3. data/lib/cascading-configuration-hash/{CascadingConfiguration → _private_/CascadingConfiguration/Hash/CompositingHash}/LocalConfigurationHash.rb +29 -2
  4. data/lib/cascading-configuration-hash/_private_/CascadingConfiguration/Hash/CompositingHash.rb +246 -0
  5. data/lib/cascading-configuration-hash/_private_/CascadingConfiguration/Hash/Interface/GettersSetters.rb +233 -0
  6. data/lib/cascading-configuration-hash/_private_/CascadingConfiguration/Hash/ModuleSupportMethods.rb +29 -0
  7. data/lib/cascading-configuration-hash.rb +12 -23
  8. data/spec/CascadingConfiguration/Hash_spec.rb +2 -3
  9. data/spec/{CascadingConfiguration → _private_/CascadingConfiguration/Hash/CompositingHash}/LocalConfigurationHash_spec.rb +9 -9
  10. data/spec/_private_/CascadingConfiguration/Hash/CompositingHash_spec.rb +347 -0
  11. metadata +10 -28
  12. data/lib/cascading-configuration-hash/CascadingConfiguration/CompositingHash/Instance.rb +0 -31
  13. data/lib/cascading-configuration-hash/CascadingConfiguration/CompositingHash.rb +0 -135
  14. data/lib/cascading-configuration-hash/CascadingConfiguration/Hash/AccessorDefinitionMethods.rb +0 -149
  15. data/lib/cascading-configuration-hash/CascadingConfiguration/Hash/Interface/Instance.rb +0 -26
  16. data/lib/cascading-configuration-hash/CascadingConfiguration/_private_/CompositingHash.rb +0 -79
  17. data/lib/cascading-configuration-hash/CascadingConfiguration/_private_/LocalConfigurationHash.rb +0 -31
  18. data/spec/CascadingConfiguration/CascadingCompositeHash_spec.rb +0 -416
  19. data/spec/CascadingConfiguration/Hash/AccessorDefinitionMethods_spec.rb +0 -30
@@ -0,0 +1,347 @@
1
+
2
+ require_relative '../../../../lib/cascading-configuration-hash.rb'
3
+
4
+ describe CascadingConfiguration::Hash::CompositingHash do
5
+
6
+ #########
7
+ # []= #
8
+ #########
9
+
10
+ it 'can add elements' do
11
+
12
+ module CascadingConfiguration::Hash::CompositingHash::CCHMock01
13
+ include CascadingConfiguration::Variable
14
+ end
15
+
16
+ module CascadingConfiguration::Hash::CompositingHash::CIMock01A
17
+ include CascadingConfiguration::Hash::CompositingHash::CCHMock01
18
+ end
19
+ module CascadingConfiguration::Hash::CompositingHash::CIMock01B
20
+ include CascadingConfiguration::Hash::CompositingHash::CIMock01A
21
+ end
22
+
23
+ ccv = CascadingConfiguration::Variable
24
+ ccm_hash = CascadingConfiguration::Hash::CompositingHash::CCHMock01
25
+ configuration_instance = CascadingConfiguration::Hash::CompositingHash::CIMock01A
26
+ sub_configuration_instance = CascadingConfiguration::Hash::CompositingHash::CIMock01B
27
+ configuration_name = :some_configuration
28
+
29
+ # Without super or sub composites
30
+ cascading_composite_hash = ::CascadingConfiguration::Hash::CompositingHash.new( configuration_instance, configuration_name )
31
+ cascading_composite_hash[ :some_setting ] = :some_value
32
+ cascading_composite_hash.local_cascading_hash.should == { :some_setting => :some_value }
33
+ cascading_composite_hash.should == { :some_setting => :some_value }
34
+ cascading_composite_hash[ :other_setting ] = :some_value
35
+ cascading_composite_hash.local_cascading_hash.should == { :some_setting => :some_value,
36
+ :other_setting => :some_value }
37
+ cascading_composite_hash.should == { :some_setting => :some_value,
38
+ :other_setting => :some_value }
39
+
40
+ # Super with a sub composite
41
+ sub_cascading_composite_hash = CascadingConfiguration::Hash::CompositingHash.new( sub_configuration_instance, configuration_name )
42
+ sub_cascading_composite_hash.local_cascading_hash.should == {}
43
+ sub_cascading_composite_hash.should == { :some_setting => :some_value,
44
+ :other_setting => :some_value }
45
+ sub_cascading_composite_hash[ :yet_another_setting ] = :some_value
46
+ sub_cascading_composite_hash.local_cascading_hash.should == { :yet_another_setting => :some_value }
47
+ sub_cascading_composite_hash.should == { :some_setting => :some_value,
48
+ :other_setting => :some_value,
49
+ :yet_another_setting => :some_value }
50
+
51
+ end
52
+
53
+ ###########
54
+ # store #
55
+ ###########
56
+
57
+ it 'can add elements' do
58
+
59
+ module CascadingConfiguration::Hash::CompositingHash::CCHMock02
60
+ include CascadingConfiguration::Variable
61
+ end
62
+
63
+ module CascadingConfiguration::Hash::CompositingHash::CIMock02A
64
+ include CascadingConfiguration::Hash::CompositingHash::CCHMock02
65
+ end
66
+ module CascadingConfiguration::Hash::CompositingHash::CIMock02B
67
+ include CascadingConfiguration::Hash::CompositingHash::CIMock02A
68
+ end
69
+
70
+ ccv = CascadingConfiguration::Variable
71
+ ccm_hash = CascadingConfiguration::Hash::CompositingHash::CCHMock02
72
+ configuration_instance = CascadingConfiguration::Hash::CompositingHash::CIMock02A
73
+ sub_configuration_instance = CascadingConfiguration::Hash::CompositingHash::CIMock02B
74
+ configuration_name = :some_configuration
75
+
76
+ # Without super or sub composites
77
+ cascading_composite_hash = ::CascadingConfiguration::Hash::CompositingHash.new( configuration_instance, configuration_name )
78
+ cascading_composite_hash.store( :some_setting, :some_value )
79
+ cascading_composite_hash.local_cascading_hash.should == { :some_setting => :some_value }
80
+ cascading_composite_hash.should == { :some_setting => :some_value }
81
+ cascading_composite_hash.store( :other_setting, :some_value )
82
+ cascading_composite_hash.local_cascading_hash.should == { :some_setting => :some_value,
83
+ :other_setting => :some_value }
84
+ cascading_composite_hash.should == { :some_setting => :some_value,
85
+ :other_setting => :some_value }
86
+
87
+ # Super with a sub composite
88
+ sub_cascading_composite_hash = CascadingConfiguration::Hash::CompositingHash.new( sub_configuration_instance, configuration_name )
89
+ sub_cascading_composite_hash.local_cascading_hash.should == {}
90
+ sub_cascading_composite_hash.should == { :some_setting => :some_value,
91
+ :other_setting => :some_value }
92
+ sub_cascading_composite_hash.store( :yet_another_setting, :some_value )
93
+ sub_cascading_composite_hash.local_cascading_hash.should == { :yet_another_setting => :some_value }
94
+ sub_cascading_composite_hash.should == { :some_setting => :some_value,
95
+ :other_setting => :some_value,
96
+ :yet_another_setting => :some_value }
97
+
98
+ end
99
+
100
+ ############
101
+ # delete #
102
+ ############
103
+
104
+ it 'can exclude elements' do
105
+
106
+ module CascadingConfiguration::Hash::CompositingHash::CCHMock03
107
+ include CascadingConfiguration::Variable
108
+ end
109
+
110
+ module CascadingConfiguration::Hash::CompositingHash::CIMock03A
111
+ include CascadingConfiguration::Hash::CompositingHash::CCHMock03
112
+ end
113
+ module CascadingConfiguration::Hash::CompositingHash::CIMock03B
114
+ include CascadingConfiguration::Hash::CompositingHash::CIMock03A
115
+ end
116
+
117
+ ccv = CascadingConfiguration::Variable
118
+ ccm_hash = CascadingConfiguration::Hash::CompositingHash::CCHMock03
119
+ configuration_instance = CascadingConfiguration::Hash::CompositingHash::CIMock03A
120
+ sub_configuration_instance = CascadingConfiguration::Hash::CompositingHash::CIMock03B
121
+ configuration_name = :some_configuration
122
+
123
+ # Without super or sub composites
124
+ cascading_composite_hash = ::CascadingConfiguration::Hash::CompositingHash.new( configuration_instance, configuration_name )
125
+ cascading_composite_hash.store( :some_setting, :some_value )
126
+ cascading_composite_hash.local_cascading_hash.should == { :some_setting => :some_value }
127
+ cascading_composite_hash.should == { :some_setting => :some_value }
128
+ cascading_composite_hash.store( :other_setting, :some_value )
129
+ cascading_composite_hash.local_cascading_hash.should == { :some_setting => :some_value,
130
+ :other_setting => :some_value }
131
+ cascading_composite_hash.should == { :some_setting => :some_value,
132
+ :other_setting => :some_value }
133
+ cascading_composite_hash.delete( :some_setting )
134
+ cascading_composite_hash.local_cascading_hash.should == { :other_setting => :some_value }
135
+ cascading_composite_hash.should == { :other_setting => :some_value }
136
+
137
+ # Super with a sub composite
138
+ sub_cascading_composite_hash = CascadingConfiguration::Hash::CompositingHash.new( sub_configuration_instance, configuration_name )
139
+ sub_cascading_composite_hash.local_cascading_hash.should == {}
140
+ sub_cascading_composite_hash.should == { :other_setting => :some_value }
141
+ sub_cascading_composite_hash.store( :yet_another_setting, :some_value )
142
+ sub_cascading_composite_hash.local_cascading_hash.should == { :yet_another_setting => :some_value }
143
+ sub_cascading_composite_hash.should == { :other_setting => :some_value,
144
+ :yet_another_setting => :some_value }
145
+ sub_cascading_composite_hash.delete( :other_setting )
146
+ sub_cascading_composite_hash.local_cascading_hash.should == { :yet_another_setting => :some_value }
147
+ sub_cascading_composite_hash.should == { :yet_another_setting => :some_value }
148
+ cascading_composite_hash.should == { :other_setting => :some_value }
149
+
150
+ end
151
+
152
+ ############
153
+ # merge! #
154
+ ############
155
+
156
+ it 'can merge from another hash' do
157
+
158
+ module CascadingConfiguration::Hash::CompositingHash::CCHMock04
159
+ include CascadingConfiguration::Variable
160
+ end
161
+
162
+ module CascadingConfiguration::Hash::CompositingHash::CIMock04A
163
+ include CascadingConfiguration::Hash::CompositingHash::CCHMock04
164
+ end
165
+ module CascadingConfiguration::Hash::CompositingHash::CIMock04B
166
+ include CascadingConfiguration::Hash::CompositingHash::CIMock04A
167
+ end
168
+
169
+ ccv = CascadingConfiguration::Variable
170
+ ccm_hash = CascadingConfiguration::Hash::CompositingHash::CCHMock04
171
+ configuration_instance = CascadingConfiguration::Hash::CompositingHash::CIMock04A
172
+ sub_configuration_instance = CascadingConfiguration::Hash::CompositingHash::CIMock04B
173
+ configuration_name = :some_configuration
174
+
175
+ # Without super or sub composites
176
+ cascading_composite_hash = ::CascadingConfiguration::Hash::CompositingHash.new( configuration_instance, configuration_name )
177
+ cascading_composite_hash.merge!( :some_setting => :some_value )
178
+ cascading_composite_hash.local_cascading_hash.should == { :some_setting => :some_value }
179
+ cascading_composite_hash.should == { :some_setting => :some_value }
180
+ cascading_composite_hash.merge!( :other_setting => :some_value )
181
+ cascading_composite_hash.local_cascading_hash.should == { :some_setting => :some_value,
182
+ :other_setting => :some_value }
183
+ cascading_composite_hash.should == { :some_setting => :some_value,
184
+ :other_setting => :some_value }
185
+
186
+ # Super with a sub composite
187
+ sub_cascading_composite_hash = CascadingConfiguration::Hash::CompositingHash.new( sub_configuration_instance, configuration_name )
188
+ sub_cascading_composite_hash.local_cascading_hash.should == {}
189
+ sub_cascading_composite_hash.should == { :some_setting => :some_value,
190
+ :other_setting => :some_value }
191
+ sub_cascading_composite_hash.merge!( :yet_another_setting => :some_value )
192
+ sub_cascading_composite_hash.local_cascading_hash.should == { :yet_another_setting => :some_value }
193
+ sub_cascading_composite_hash.should == { :some_setting => :some_value,
194
+ :other_setting => :some_value,
195
+ :yet_another_setting => :some_value }
196
+
197
+ end
198
+
199
+ #############
200
+ # replace #
201
+ #############
202
+
203
+ it 'can replace existing elements with others' do
204
+
205
+ module CascadingConfiguration::Hash::CompositingHash::CCHMock05
206
+ include CascadingConfiguration::Variable
207
+ end
208
+
209
+ module CascadingConfiguration::Hash::CompositingHash::CIMock05A
210
+ include CascadingConfiguration::Hash::CompositingHash::CCHMock05
211
+ end
212
+ module CascadingConfiguration::Hash::CompositingHash::CIMock05B
213
+ include CascadingConfiguration::Hash::CompositingHash::CIMock05A
214
+ end
215
+
216
+ ccv = CascadingConfiguration::Variable
217
+ ccm_hash = CascadingConfiguration::Hash::CompositingHash::CCHMock05
218
+ configuration_instance = CascadingConfiguration::Hash::CompositingHash::CIMock05A
219
+ sub_configuration_instance = CascadingConfiguration::Hash::CompositingHash::CIMock05B
220
+ configuration_name = :some_configuration
221
+
222
+ # Without super or sub composites
223
+ cascading_composite_hash = ::CascadingConfiguration::Hash::CompositingHash.new( configuration_instance, configuration_name )
224
+ cascading_composite_hash.replace( :some_setting => :some_value )
225
+ cascading_composite_hash.local_cascading_hash.should == { :some_setting => :some_value }
226
+ cascading_composite_hash.should == { :some_setting => :some_value }
227
+ cascading_composite_hash.replace( :other_setting => :some_value )
228
+ cascading_composite_hash.local_cascading_hash.should == { :other_setting => :some_value }
229
+ cascading_composite_hash.should == { :other_setting => :some_value }
230
+
231
+ # Super with a sub composite
232
+ sub_cascading_composite_hash = CascadingConfiguration::Hash::CompositingHash.new( sub_configuration_instance, configuration_name )
233
+ sub_cascading_composite_hash.local_cascading_hash.should == {}
234
+ sub_cascading_composite_hash.should == { :other_setting => :some_value }
235
+ sub_cascading_composite_hash.replace( :yet_another_setting => :some_value )
236
+ sub_cascading_composite_hash.local_cascading_hash.should == { :yet_another_setting => :some_value }
237
+ sub_cascading_composite_hash.should == { :yet_another_setting => :some_value }
238
+
239
+ end
240
+
241
+ ###########
242
+ # shift #
243
+ ###########
244
+
245
+ it 'can shift the first element' do
246
+
247
+ module CascadingConfiguration::Hash::CompositingHash::CCHMock06
248
+ include CascadingConfiguration::Variable
249
+ end
250
+
251
+ module CascadingConfiguration::Hash::CompositingHash::CIMock06A
252
+ include CascadingConfiguration::Hash::CompositingHash::CCHMock06
253
+ end
254
+ module CascadingConfiguration::Hash::CompositingHash::CIMock06B
255
+ include CascadingConfiguration::Hash::CompositingHash::CIMock06A
256
+ end
257
+
258
+ ccv = CascadingConfiguration::Variable
259
+ ccm_hash = CascadingConfiguration::Hash::CompositingHash::CCHMock06
260
+ configuration_instance = CascadingConfiguration::Hash::CompositingHash::CIMock06A
261
+ sub_configuration_instance = CascadingConfiguration::Hash::CompositingHash::CIMock06B
262
+ configuration_name = :some_configuration
263
+
264
+ # Without super or sub composites
265
+ cascading_composite_hash = ::CascadingConfiguration::Hash::CompositingHash.new( configuration_instance, configuration_name )
266
+ cascading_composite_hash.store( :some_setting, :some_value )
267
+ cascading_composite_hash.local_cascading_hash.should == { :some_setting => :some_value }
268
+ cascading_composite_hash.should == { :some_setting => :some_value }
269
+ cascading_composite_hash.store( :other_setting, :some_value )
270
+ cascading_composite_hash.local_cascading_hash.should == { :some_setting => :some_value,
271
+ :other_setting => :some_value }
272
+ cascading_composite_hash.should == { :some_setting => :some_value,
273
+ :other_setting => :some_value }
274
+ cascading_composite_hash.shift
275
+ cascading_composite_hash.local_cascading_hash.should == { :other_setting => :some_value }
276
+ cascading_composite_hash.should == { :other_setting => :some_value }
277
+
278
+ # Super with a sub composite
279
+ sub_cascading_composite_hash = CascadingConfiguration::Hash::CompositingHash.new( sub_configuration_instance, configuration_name )
280
+ sub_cascading_composite_hash.local_cascading_hash.should == {}
281
+ sub_cascading_composite_hash.should == { :other_setting => :some_value }
282
+ sub_cascading_composite_hash.store( :yet_another_setting, :some_value )
283
+ sub_cascading_composite_hash.local_cascading_hash.should == { :yet_another_setting => :some_value }
284
+ sub_cascading_composite_hash.should == { :other_setting => :some_value,
285
+ :yet_another_setting => :some_value }
286
+ sub_cascading_composite_hash.shift
287
+ sub_cascading_composite_hash.local_cascading_hash.should == { :yet_another_setting => :some_value }
288
+ sub_cascading_composite_hash.should == { :yet_another_setting => :some_value }
289
+ cascading_composite_hash.should == { :other_setting => :some_value }
290
+
291
+ end
292
+
293
+ ###########
294
+ # clear #
295
+ ###########
296
+
297
+ it 'can clear, causing present elements to be excluded' do
298
+
299
+ module CascadingConfiguration::Hash::CompositingHash::CCHMock07
300
+ include CascadingConfiguration::Variable
301
+ end
302
+
303
+ module CascadingConfiguration::Hash::CompositingHash::CIMock07A
304
+ include CascadingConfiguration::Hash::CompositingHash::CCHMock07
305
+ end
306
+ module CascadingConfiguration::Hash::CompositingHash::CIMock07B
307
+ include CascadingConfiguration::Hash::CompositingHash::CIMock07A
308
+ end
309
+
310
+ ccv = CascadingConfiguration::Variable
311
+ ccm_hash = CascadingConfiguration::Hash::CompositingHash::CCHMock07
312
+ configuration_instance = CascadingConfiguration::Hash::CompositingHash::CIMock07A
313
+ sub_configuration_instance = CascadingConfiguration::Hash::CompositingHash::CIMock07B
314
+ configuration_name = :some_configuration
315
+
316
+ # Without super or sub composites
317
+ cascading_composite_hash = ::CascadingConfiguration::Hash::CompositingHash.new( configuration_instance, configuration_name )
318
+ cascading_composite_hash.store( :some_setting, :some_value )
319
+ cascading_composite_hash.local_cascading_hash.should == { :some_setting => :some_value }
320
+ cascading_composite_hash.should == { :some_setting => :some_value }
321
+ cascading_composite_hash.store( :other_setting, :some_value )
322
+ cascading_composite_hash.local_cascading_hash.should == { :some_setting => :some_value,
323
+ :other_setting => :some_value }
324
+ cascading_composite_hash.should == { :some_setting => :some_value,
325
+ :other_setting => :some_value }
326
+ cascading_composite_hash.clear
327
+ cascading_composite_hash.local_cascading_hash.should == { }
328
+ cascading_composite_hash.should == { }
329
+ cascading_composite_hash.store( :other_setting, :some_value )
330
+ cascading_composite_hash.should == { :other_setting => :some_value }
331
+
332
+ # Super with a sub composite
333
+ sub_cascading_composite_hash = CascadingConfiguration::Hash::CompositingHash.new( sub_configuration_instance, configuration_name )
334
+ sub_cascading_composite_hash.local_cascading_hash.should == {}
335
+ sub_cascading_composite_hash.should == { :other_setting => :some_value }
336
+ sub_cascading_composite_hash.store( :yet_another_setting, :some_value )
337
+ sub_cascading_composite_hash.local_cascading_hash.should == { :yet_another_setting => :some_value }
338
+ sub_cascading_composite_hash.should == { :other_setting => :some_value,
339
+ :yet_another_setting => :some_value }
340
+ sub_cascading_composite_hash.clear
341
+ sub_cascading_composite_hash.local_cascading_hash.should == { }
342
+ sub_cascading_composite_hash.should == { }
343
+ cascading_composite_hash.should == { :other_setting => :some_value }
344
+
345
+ end
346
+
347
+ end
metadata CHANGED
@@ -1,12 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cascading-configuration-hash
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 1
7
- - 4
8
- - 1
9
- version: 1.4.1
4
+ prerelease:
5
+ version: 1.5.0
10
6
  platform: ruby
11
7
  authors:
12
8
  - Asher
@@ -14,8 +10,7 @@ autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
12
 
17
- date: 2011-08-08 00:00:00 -04:00
18
- default_executable:
13
+ date: 2012-01-16 00:00:00 Z
19
14
  dependencies:
20
15
  - !ruby/object:Gem::Dependency
21
16
  name: module-cluster
@@ -25,8 +20,6 @@ dependencies:
25
20
  requirements:
26
21
  - - ">="
27
22
  - !ruby/object:Gem::Version
28
- segments:
29
- - 0
30
23
  version: "0"
31
24
  type: :runtime
32
25
  version_requirements: *id001
@@ -38,8 +31,6 @@ dependencies:
38
31
  requirements:
39
32
  - - ">="
40
33
  - !ruby/object:Gem::Version
41
- segments:
42
- - 0
43
34
  version: "0"
44
35
  type: :runtime
45
36
  version_requirements: *id002
@@ -52,23 +43,18 @@ extensions: []
52
43
  extra_rdoc_files: []
53
44
 
54
45
  files:
55
- - lib/cascading-configuration-hash/CascadingConfiguration/_private_/CompositingHash.rb
56
- - lib/cascading-configuration-hash/CascadingConfiguration/_private_/LocalConfigurationHash.rb
57
- - lib/cascading-configuration-hash/CascadingConfiguration/CompositingHash/Instance.rb
58
- - lib/cascading-configuration-hash/CascadingConfiguration/CompositingHash.rb
59
- - lib/cascading-configuration-hash/CascadingConfiguration/Hash/AccessorDefinitionMethods.rb
60
- - lib/cascading-configuration-hash/CascadingConfiguration/Hash/Interface/Instance.rb
46
+ - lib/cascading-configuration-hash/_private_/CascadingConfiguration/Hash/CompositingHash/LocalConfigurationHash.rb
47
+ - lib/cascading-configuration-hash/_private_/CascadingConfiguration/Hash/CompositingHash.rb
48
+ - lib/cascading-configuration-hash/_private_/CascadingConfiguration/Hash/Interface/GettersSetters.rb
49
+ - lib/cascading-configuration-hash/_private_/CascadingConfiguration/Hash/ModuleSupportMethods.rb
61
50
  - lib/cascading-configuration-hash/CascadingConfiguration/Hash/Interface.rb
62
51
  - lib/cascading-configuration-hash/CascadingConfiguration/Hash.rb
63
- - lib/cascading-configuration-hash/CascadingConfiguration/LocalConfigurationHash.rb
64
52
  - lib/cascading-configuration-hash.rb
65
- - spec/CascadingConfiguration/CascadingCompositeHash_spec.rb
66
- - spec/CascadingConfiguration/Hash/AccessorDefinitionMethods_spec.rb
53
+ - spec/_private_/CascadingConfiguration/Hash/CompositingHash/LocalConfigurationHash_spec.rb
54
+ - spec/_private_/CascadingConfiguration/Hash/CompositingHash_spec.rb
67
55
  - spec/CascadingConfiguration/Hash_spec.rb
68
- - spec/CascadingConfiguration/LocalConfigurationHash_spec.rb
69
56
  - README.md
70
57
  - README.rdoc
71
- has_rdoc: true
72
58
  homepage: http://rubygems.org/gems/cascading-configuration-hash
73
59
  licenses: []
74
60
 
@@ -82,21 +68,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
82
68
  requirements:
83
69
  - - ">="
84
70
  - !ruby/object:Gem::Version
85
- segments:
86
- - 0
87
71
  version: "0"
88
72
  required_rubygems_version: !ruby/object:Gem::Requirement
89
73
  none: false
90
74
  requirements:
91
75
  - - ">="
92
76
  - !ruby/object:Gem::Version
93
- segments:
94
- - 0
95
77
  version: "0"
96
78
  requirements: []
97
79
 
98
80
  rubyforge_project: cascading-configuration-hash
99
- rubygems_version: 1.3.7
81
+ rubygems_version: 1.8.10
100
82
  signing_key:
101
83
  specification_version: 3
102
84
  summary: Support package for cascading-configuration.
@@ -1,31 +0,0 @@
1
-
2
- module CascadingConfiguration::CompositingHash::Instance
3
-
4
- extend ModuleCluster
5
-
6
- extend CascadingConfiguration::InternalModuleStub
7
-
8
- include_also_extends( self )
9
-
10
- ################################################
11
- # composite_hash_for_cascading_configuration #
12
- ################################################
13
-
14
- def composite_hash_for_cascading_configuration( cascading_name )
15
-
16
- composite_hash = nil
17
-
18
- klass = ( is_a?( Module ) ? self : self.class )
19
- self_instance = self
20
- accessor_module_support.instance_eval do
21
- unless composite_hash = ( ( @composite_hashes ||= Hash.new )[ cascading_name ] ||= Hash.new )[ self_instance ]
22
- composite_hash = ::CascadingConfiguration::CompositingHash.new( cascading_name, self_instance )
23
- @composite_hashes[ cascading_name ][ self_instance ] = composite_hash
24
- end
25
- end
26
-
27
- return composite_hash
28
-
29
- end
30
-
31
- end
@@ -1,135 +0,0 @@
1
-
2
- class CascadingConfiguration::CompositingHash < Hash
3
-
4
- attr_accessor :working_instance, :local_cascading_hash
5
-
6
- ################
7
- # initialize #
8
- ################
9
-
10
- def initialize( cascading_name, working_instance )
11
- @cascading_name = cascading_name
12
- @working_class = ( working_instance.is_a?( Module ) ? working_instance : working_instance.class )
13
- @working_instance = working_instance
14
- # if first ancestor can have a composite array, register self with it in case it gets updated in the future
15
- if ( first_ancestor = @working_instance.first_ancestor ).respond_to?( :composite_hash_for_cascading_configuration )
16
- @parent_composite_hash = first_ancestor.composite_hash_for_cascading_configuration( @cascading_name )
17
- @parent_composite_hash.register_child_composite_hash( self )
18
- end
19
- # get local cascading array (not included in parent composite)
20
- @local_cascading_hash = ::CascadingConfiguration::LocalConfigurationHash.new
21
- # we may later have our own child composites
22
- @child_composite_hashes = ::Array.new
23
- # initialize self status for parent and local
24
- update_self_as_cascading_composite
25
- end
26
-
27
- ###################################
28
- # register_child_composite_hash #
29
- ###################################
30
-
31
- def register_child_composite_hash( child_composite_hash )
32
- @child_composite_hashes.push( child_composite_hash )
33
- return self
34
- end
35
-
36
- #####################################
37
- # unregister_child_composite_hash #
38
- #####################################
39
-
40
- def unregister_child_composite_hash( child_composite_hash )
41
- @child_composite_hashes.delete( child_composite_hash )
42
- return self
43
- end
44
-
45
- #########
46
- # []= #
47
- #########
48
-
49
- def []=( key, value )
50
- @local_cascading_hash[ key ] = value
51
- update_adding_composite_elements( key => value )
52
- end
53
- alias_method :store, :[]=
54
-
55
- ############
56
- # delete #
57
- ############
58
-
59
- alias_method :super_delete, :delete
60
- def delete( key )
61
- value = self[ key ]
62
- @local_cascading_hash.delete( key )
63
- update_removing_composite_elements( key )
64
- return value
65
- end
66
-
67
- ############
68
- # merge! #
69
- ############
70
-
71
- alias_method :super_merge!, :merge!
72
- def merge!( other_hash )
73
- @local_cascading_hash.merge!( other_hash )
74
- update_adding_composite_elements( other_hash )
75
- return self
76
- end
77
-
78
- #############
79
- # replace #
80
- #############
81
-
82
- alias_method :super_replace, :replace
83
- def replace( other_hash )
84
- # clear current values
85
- clear
86
- # merge replacement settings
87
- merge!( other_hash )
88
- update_self_as_cascading_composite
89
- return self
90
- end
91
-
92
- ###########
93
- # shift #
94
- ###########
95
-
96
- def shift
97
- element = super
98
- key = element[ 0 ]
99
- @local_cascading_hash.delete( key )
100
- update_removing_composite_elements( key )
101
- return element
102
- end
103
-
104
- ###########
105
- # clear #
106
- ###########
107
-
108
- alias_method :super_clear, :clear
109
- def clear
110
- # add all existing values to exclude array
111
- keys.each do |this_key|
112
- delete( this_key )
113
- end
114
- update_removing_composite_elements( *self.keys )
115
- return self
116
- end
117
-
118
- #############
119
- # freeze! #
120
- #############
121
-
122
- # freezes configuration and prevents ancestors from changing this configuration in the future
123
- def freeze!
124
-
125
- # move current configuration into local configuration
126
- @local_cascading_hash.replace( self )
127
-
128
- # unregister with parent composite so we don't get future updates from it
129
- @parent_composite_hash.unregister_child_composite_hash( self ) if @parent_composite_hash
130
-
131
- return self
132
-
133
- end
134
-
135
- end