cascading-configuration-setting 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.md ADDED
@@ -0,0 +1,369 @@
1
+ # Cascading Configuration #
2
+
3
+ http://rubygems.org/gems/cascading-configuration-setting
4
+
5
+ # Description #
6
+
7
+ Adds methods for cascading configuration settings. Support package for cascading-configuration.
8
+
9
+ # Summary #
10
+
11
+ ## :attr_configuration ##
12
+
13
+ :attr_configuration provides inheritable configuration that cascades downward.
14
+
15
+ Configuration inheritance can cascade through modules, classes, and instances.
16
+
17
+ :attr_configuration defines a single attribute accessor that searches upward for the first ancestor defining the configuration.
18
+
19
+ # Install #
20
+
21
+ * sudo gem install cascading-configuration-setting
22
+
23
+ # Usage #
24
+
25
+ Attributes are defined with :attr_configuration.
26
+
27
+ Settings are set and acquired by the attribute name declared in :attr_configuration.
28
+
29
+ ## First Module ##
30
+
31
+ 1. Define initial configuration in a module.
32
+
33
+ A class works just as well, but we can't use a module in the same chain if we start with a class.
34
+
35
+ * Include module to enable attr_configuration_setting.
36
+
37
+ ```ruby
38
+
39
+ module CascadingConfiguration::MockModule
40
+ include CascadingConfiguration::Setting
41
+ end
42
+
43
+ ```
44
+
45
+ * Declare attr_configuration_setting.
46
+
47
+ ```ruby
48
+
49
+ module CascadingConfiguration::MockModule
50
+ attr_configuration :some_configuration
51
+ end
52
+
53
+ ```
54
+
55
+ * Set initial value.
56
+
57
+ ```ruby
58
+
59
+ module CascadingConfiguration::MockModule
60
+ self.some_configuration = :some_value
61
+ end
62
+
63
+ ```
64
+
65
+ * Verify initial configuration value
66
+
67
+ ```ruby
68
+
69
+ module CascadingConfiguration::MockModule
70
+ # => some_configuration.should == :some_value
71
+ end
72
+
73
+ ```
74
+
75
+ ## Including Module 1 ##
76
+
77
+ 2. Include initial module in another module.
78
+
79
+ Including the module that has included a CascadingConfiguration module is the same as including a CascadingConfiguration module.
80
+
81
+ ```ruby
82
+
83
+ module CascadingConfiguration::MockModule2
84
+ include CascadingConfiguration::MockModule
85
+ end
86
+
87
+ ```
88
+
89
+ * Verify inherited value
90
+
91
+ ```ruby
92
+
93
+ module CascadingConfiguration::MockModule2
94
+ # => some_configuration.should == :some_value
95
+ end
96
+
97
+ ```
98
+
99
+ * Override inherited value
100
+
101
+ ```ruby
102
+
103
+ module CascadingConfiguration::MockModule2
104
+ self.some_configuration = :module_value
105
+ end
106
+
107
+ ```
108
+
109
+ * Verify local override value
110
+
111
+ ```ruby
112
+
113
+ module CascadingConfiguration::MockModule2
114
+ # => some_configuration.should == :module_value
115
+ end
116
+
117
+ ```
118
+
119
+ ## Including Module 2 ##
120
+
121
+ 3. Include second module in another module.
122
+
123
+ ```ruby
124
+
125
+ module CascadingConfiguration::MockModule3
126
+ include CascadingConfiguration::MockModule2
127
+ end
128
+
129
+ ```
130
+
131
+ * Verify inherited value
132
+
133
+ ```ruby
134
+
135
+ module CascadingConfiguration::MockModule3
136
+ # => some_configuration.should == :module_value
137
+ end
138
+
139
+ ```
140
+
141
+ ## Top Class ##
142
+
143
+ 4. Include third module in a class.
144
+
145
+ ```ruby
146
+
147
+ class CascadingConfiguration::MockClass
148
+ include CascadingConfiguration::MockModule3
149
+ end
150
+
151
+ ```
152
+
153
+ * Verify inherited value
154
+
155
+ ```ruby
156
+
157
+ class CascadingConfiguration::MockClass
158
+ # => some_configuration.should == :module_value
159
+ end
160
+
161
+ ```
162
+
163
+ * Override inherited value
164
+
165
+ ```ruby
166
+
167
+ class CascadingConfiguration::MockClass
168
+ self.some_configuration = :another_value
169
+ end
170
+
171
+ ```
172
+
173
+ * Verify local override value
174
+
175
+ ```ruby
176
+
177
+ class CascadingConfiguration::MockClass
178
+ # => some_configuration.should == :another_value
179
+ end
180
+
181
+ ```
182
+
183
+ ## Instance of Top Class ##
184
+
185
+ 5. Instantiate class.
186
+
187
+ ```ruby
188
+
189
+ object_instance_one = CascadingConfiguration::MockClass.new
190
+
191
+ ```
192
+
193
+ * Verify inherited value
194
+
195
+ ```ruby
196
+
197
+ # => object_instance_one.some_configuration.should == :another_value
198
+
199
+ ```
200
+
201
+ * Override inherited value
202
+
203
+ ```ruby
204
+
205
+ object_instance_one.some_configuration = :yet_another_value
206
+
207
+ ```
208
+
209
+ * Verify local override value
210
+
211
+ ```ruby
212
+
213
+ # => object_instance_one.some_configuration.should == :yet_another_value
214
+ # => CascadingConfiguration::MockClass.some_configuration.should == :another_value
215
+ # => CascadingConfiguration::MockModule.some_configuration.should == :some_value
216
+
217
+ ```
218
+
219
+ # First Inheriting Class #
220
+
221
+ 6. Inheriting class.
222
+
223
+ Inheriting class should not get any settings from instance of superclass.
224
+
225
+ * Verify inherited value
226
+
227
+ ```ruby
228
+
229
+ class CascadingConfiguration::MockClassSub1 < CascadingConfiguration::MockClass
230
+ # => some_configuration.should == :another_value
231
+ end
232
+
233
+ ```
234
+
235
+ * Override inherited value
236
+
237
+ ```ruby
238
+
239
+ class CascadingConfiguration::MockClassSub1 < CascadingConfiguration::MockClass
240
+ self.some_configuration = :a_value_not_yet_used
241
+ end
242
+
243
+ ```
244
+
245
+ * Verify local override value
246
+
247
+ ```ruby
248
+
249
+ class CascadingConfiguration::MockClassSub1 < CascadingConfiguration::MockClass
250
+ # => some_configuration.should == :a_value_not_yet_used
251
+ # => CascadingConfiguration::MockClass.some_configuration.should == :another_value
252
+ # => CascadingConfiguration::MockModule.some_configuration.should == :some_value
253
+ end
254
+
255
+ ```
256
+
257
+ ## Instance of First Inheriting Class ##
258
+
259
+ 7. Instantiate first inheriting class.
260
+
261
+ ```ruby
262
+
263
+ object_instance_two = CascadingConfiguration::MockClassSub1.new
264
+
265
+ ```
266
+
267
+ * Verify inherited value
268
+
269
+ ```ruby
270
+
271
+ # => object_instance_two.some_configuration.should == :a_value_not_yet_used
272
+ # => object_instance_one.some_configuration.should == :yet_another_value
273
+ # => CascadingConfiguration::MockClass.some_configuration.should == :another_value
274
+ # => CascadingConfiguration::MockModule.some_configuration.should == :some_value
275
+
276
+ ```
277
+
278
+ ## Second Inheriting Class ##
279
+
280
+ 8. Second inheriting class.
281
+
282
+ * Verify inherited value
283
+
284
+ ```ruby
285
+
286
+ class CascadingConfiguration::MockClassSub2 < CascadingConfiguration::MockClassSub1
287
+ # => some_configuration.should == :a_value_not_yet_used
288
+ end
289
+
290
+ ```
291
+
292
+ * Override inherited value
293
+
294
+ ```ruby
295
+
296
+ class CascadingConfiguration::MockClassSub2 < CascadingConfiguration::MockClassSub1
297
+ self.some_configuration = :another_value_not_yet_used
298
+ end
299
+
300
+ ```
301
+
302
+ * Verify local override value
303
+
304
+ ```ruby
305
+
306
+ class CascadingConfiguration::MockClassSub2 < CascadingConfiguration::MockClassSub1
307
+ # => some_configuration.should == :another_value_not_yet_used
308
+ end
309
+
310
+ ```
311
+
312
+ ## Instance of Second Inheriting Class ##
313
+
314
+ 9. Instantiate Second Inheriting Class.
315
+
316
+ ```ruby
317
+
318
+ object_instance_three = CascadingConfiguration::MockClassSub2.new
319
+
320
+ ```
321
+
322
+ * Verify inherited value
323
+
324
+ ```ruby
325
+
326
+ # => object_instance_three.some_configuration.should == :another_value_not_yet_used
327
+
328
+ ```
329
+
330
+ * Override inherited value
331
+
332
+ ```ruby
333
+
334
+ object_instance_three.some_configuration = :one_more_unused_value
335
+
336
+ ```
337
+
338
+ * Verify local override value
339
+
340
+ ```ruby
341
+
342
+ # => object_instance_three.some_configuration.should == :one_more_unused_value
343
+
344
+ ```
345
+
346
+ # License #
347
+
348
+ (The MIT License)
349
+
350
+ Copyright (c) 2011 Asher
351
+
352
+ Permission is hereby granted, free of charge, to any person obtaining
353
+ a copy of this software and associated documentation files (the
354
+ 'Software'), to deal in the Software without restriction, including
355
+ without limitation the rights to use, copy, modify, merge, publish,
356
+ distribute, sublicense, and/or sell copies of the Software, and to
357
+ permit persons to whom the Software is furnished to do so, subject to
358
+ the following conditions:
359
+
360
+ The above copyright notice and this permission notice shall be
361
+ included in all copies or substantial portions of the Software.
362
+
363
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
364
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
365
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
366
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
367
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
368
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
369
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.rdoc CHANGED
@@ -1,121 +1,32 @@
1
1
  == Cascading Configuration
2
2
 
3
- http://rubygems.org/gems/cascading-configuration-setting
4
-
5
- == DESCRIPTION:
6
-
7
- Adds methods for cascading configuration settings. Support package for cascading-configuration.
8
-
9
- == SUMMARY:
10
-
11
- * :attr_configuration
12
-
13
- == INSTALL:
14
-
15
- * sudo gem install cascading-configuration-setting
16
-
17
- == EXAMPLE:
18
-
19
- #############################################################################
20
- ########################### attr_configuration ##############################
21
- #############################################################################
22
-
23
- ##################
24
- # first module #
25
- ##################
26
-
27
- module CascadingConfiguration::MockModule
28
- include CascadingConfiguration
29
- attr_configuration :some_configuration
30
- self.some_configuration = :some_value
31
- # => some_configuration.should == :some_value
32
- end
33
-
34
- ########################
35
- # including module 1 #
36
- ########################
37
-
38
- module CascadingConfiguration::MockModule2
39
- include CascadingConfiguration::MockModule
40
- # => some_configuration.should == :some_value
41
- self.some_configuration = :module_value
42
- # => some_configuration.should == :module_value
43
- end
44
-
45
- ########################
46
- # including module 2 #
47
- ########################
48
-
49
- module CascadingConfiguration::MockModule3
50
- include CascadingConfiguration::MockModule2
51
- end
52
-
53
- ###############
54
- # top class #
55
- ###############
56
-
57
- class CascadingConfiguration::MockClass
58
- include CascadingConfiguration::MockModule3
59
- # => some_configuration.should == :module_value
60
- self.some_configuration = :another_value
61
- # => some_configuration.should == :another_value
62
- end
63
-
64
- ###########################
65
- # instance of top class #
66
- ###########################
67
-
68
- object_instance_one = CascadingConfiguration::MockClass.new
69
- # => object_instance_one.some_configuration.should == :another_value
70
- object_instance_one.some_configuration = :yet_another_value
71
- # => object_instance_one.some_configuration.should == :yet_another_value
72
- # => CascadingConfiguration::MockClass.some_configuration.should == :another_value
73
- # => CascadingConfiguration::MockModule.some_configuration.should == :some_value
74
-
75
- ############################
76
- # first inheriting class #
77
- ############################
78
-
79
- class CascadingConfiguration::MockClassSub1 < CascadingConfiguration::MockClass
80
- # => some_configuration.should == :another_value
81
- self.some_configuration = :a_value_not_yet_used
82
- # => some_configuration.should == :a_value_not_yet_used
83
- # => CascadingConfiguration::MockClass.some_configuration.should == :another_value
84
- # => CascadingConfiguration::MockModule.some_configuration.should == :some_value
85
- end
86
-
87
- ########################################
88
- # instance of first inheriting class #
89
- ########################################
90
-
91
- object_instance_two = CascadingConfiguration::MockClassSub1.new
92
- # => object_instance_two.some_configuration.should == :a_value_not_yet_used
93
- # => object_instance_one.some_configuration.should == :yet_another_value
94
- # => CascadingConfiguration::MockClass.some_configuration.should == :another_value
95
- # => CascadingConfiguration::MockModule.some_configuration.should == :some_value
96
-
97
- #############################
98
- # second inheriting class #
99
- #############################
100
-
101
- class CascadingConfiguration::MockClassSub2 < CascadingConfiguration::MockClassSub1
102
- # => some_configuration.should == :a_value_not_yet_used
103
- self.some_configuration = :another_value_not_yet_used
104
- # => some_configuration.should == :another_value_not_yet_used
105
- end
106
-
107
- #########################################
108
- # instance of second inheriting class #
109
- #########################################
110
-
111
- object_instance_three = CascadingConfiguration::MockClassSub2.new
112
- # => object_instance_three.some_configuration.should == :another_value_not_yet_used
113
- object_instance_three.some_configuration = :one_more_unused_value
114
- # => object_instance_three.some_configuration.should == :one_more_unused_value
115
-
116
- #############################################################################
117
-
118
- == LICENSE:
3
+ http://rubygems.org/gems/cascading-configuration
4
+
5
+ == Description
6
+
7
+ Adds methods for cascading configurations.
8
+
9
+ == Summary
10
+
11
+ Cascading configuration methods for single settings, arrays, hashes.
12
+
13
+ == :attr_configuration
14
+
15
+ :attr_configuration provides inheritable configuration that cascades downward.
16
+
17
+ Configuration inheritance can cascade through modules, classes, and instances.
18
+
19
+ :attr_configuration defines a single attribute accessor that searches upward for the first ancestor defining the configuration.
20
+
21
+ == Install
22
+
23
+ * sudo gem install cascading-configuration
24
+
25
+ == Usage
26
+
27
+ See supporting package README markdown files (README.md) for examples.
28
+
29
+ == License
119
30
 
120
31
  (The MIT License)
121
32
 
@@ -1,9 +1,12 @@
1
1
 
2
- require 'cascading-configuration-variable'
3
- #require_relative '../../variable/lib/cascading-configuration-variable.rb'
2
+ if $cascading_configuration_development
3
+ require_relative '../../variable/lib/cascading-configuration-variable.rb'
4
+ else
5
+ require 'cascading-configuration-variable'
6
+ end
4
7
 
5
8
  module CascadingConfiguration
6
- module ConfigurationSetting
9
+ module Setting
7
10
  module Accessors
8
11
  end
9
12
  module ClassInstance
@@ -15,7 +18,7 @@ module CascadingConfiguration
15
18
  end
16
19
  end
17
20
 
18
- require_relative 'cascading-configuration-setting/CascadingConfiguration/ConfigurationSetting.rb'
19
- require_relative 'cascading-configuration-setting/CascadingConfiguration/ConfigurationSetting/Accessors.rb'
20
- require_relative 'cascading-configuration-setting/CascadingConfiguration/ConfigurationSetting/ClassInstance.rb'
21
- require_relative 'cascading-configuration-setting/CascadingConfiguration/ConfigurationSetting/ModuleInstance.rb'
21
+ require_relative 'cascading-configuration-setting/CascadingConfiguration/Setting.rb'
22
+ require_relative 'cascading-configuration-setting/CascadingConfiguration/Setting/Accessors.rb'
23
+ require_relative 'cascading-configuration-setting/CascadingConfiguration/Setting/ClassInstance.rb'
24
+ require_relative 'cascading-configuration-setting/CascadingConfiguration/Setting/ModuleInstance.rb'
@@ -1,27 +1,35 @@
1
1
 
2
- module CascadingConfiguration::ConfigurationSetting
2
+ module CascadingConfiguration::Setting
3
3
 
4
- ###########################################################################################################
5
- ###################################### Singleton Implementation #########################################
6
- ###########################################################################################################
4
+ extend CascadingConfiguration::InternalModuleStub
7
5
 
8
6
  ###################
9
7
  # self.included #
10
8
  ###################
11
9
 
12
10
  def self.included( class_or_module )
11
+ module_self = self
13
12
  class_or_module.instance_eval do
14
- include CascadingConfiguration::ConfigurationVariable
15
- extend CascadingConfiguration::ConfigurationSetting
16
- include CascadingConfiguration::ConfigurationSetting::ObjectInstance
17
- extend CascadingConfiguration::ConfigurationSetting::ClassInstance
18
- extend CascadingConfiguration::ConfigurationSetting::Accessors
13
+ include CascadingConfiguration::Variable
14
+ extend module_self
15
+ include CascadingConfiguration::Setting::ObjectInstance
16
+ extend CascadingConfiguration::Setting::ClassInstance
17
+ extend CascadingConfiguration::Setting::Accessors
18
+ # module support
19
19
  unless is_a?( Class )
20
- extend CascadingConfiguration::ConfigurationSetting::ModuleInstance
20
+ extend CascadingConfiguration::Setting::ModuleInstance
21
21
  end
22
22
  end
23
23
  end
24
24
 
25
+ #########################
26
+ # ancestors_to_Object #
27
+ #########################
28
+
29
+ def ancestors_to_Object
30
+ return ancestors_to_class_or_module_interpolating_module_branches( Object, CascadingConfiguration::Setting::ModuleInstance )
31
+ end
32
+
25
33
  ########################################
26
34
  # get_configuration_searching_upward #
27
35
  ########################################
@@ -0,0 +1,51 @@
1
+
2
+ module CascadingConfiguration::Setting::Accessors
3
+
4
+ extend CascadingConfiguration::InternalModuleStub
5
+
6
+ ###################
7
+ # self.extended #
8
+ ###################
9
+
10
+ def self.extended( class_or_module )
11
+ class_or_module.instance_eval do
12
+ # accessor support in module to permit method overriding with super
13
+ unless const_defined?( :AccessorSupportModule )
14
+ accessor_support_module = Module.new { extend CascadingConfiguration::InternalModuleStub }
15
+ const_set( :AccessorSupportModule, accessor_support_module )
16
+ include class_or_module::AccessorSupportModule
17
+ extend class_or_module::AccessorSupportModule
18
+ end
19
+ end
20
+ end
21
+
22
+ #############################
23
+ # define_cascading_setter #
24
+ #############################
25
+
26
+ def define_cascading_setter( configuration_name )
27
+ configuration_setter_name = ( configuration_name.to_s + '=' ).to_s
28
+ self::AccessorSupportModule.module_eval do
29
+ define_method( configuration_setter_name ) do |value|
30
+ # configuration setter returns setting variable (variable from self), which is now the ID of value
31
+ return instance_variable_set( cascading_variable_name( configuration_name ), value )
32
+ end
33
+ end
34
+ end
35
+
36
+ #############################
37
+ # define_cascading_getter #
38
+ #############################
39
+
40
+ def define_cascading_getter( configuration_name )
41
+ configuration_getter_name = configuration_name
42
+ self::AccessorSupportModule.module_eval do
43
+ define_method( configuration_getter_name ) do
44
+ # configuration getter returns current setting value (taken from first superclass with setting)
45
+ # that means first variable that has been set
46
+ return get_configuration_searching_upward( configuration_name )
47
+ end
48
+ end
49
+ end
50
+
51
+ end
@@ -1,5 +1,7 @@
1
1
 
2
- module CascadingConfiguration::ConfigurationSetting::ClassInstance
2
+ module CascadingConfiguration::Setting::ClassInstance
3
+
4
+ extend CascadingConfiguration::InternalModuleStub
3
5
 
4
6
  ########################
5
7
  # attr_configuration #
@@ -8,9 +10,9 @@ module CascadingConfiguration::ConfigurationSetting::ClassInstance
8
10
  def attr_configuration( *property_names )
9
11
  property_names.each do |this_property_name|
10
12
  # define configuration setter
11
- define_configuration_setter( this_property_name )
13
+ define_cascading_setter( this_property_name )
12
14
  # define configuration getter
13
- define_configuration_getter( this_property_name )
15
+ define_cascading_getter( this_property_name )
14
16
  end
15
17
  end
16
18
 
@@ -1,19 +1,22 @@
1
1
 
2
- module CascadingConfiguration::ConfigurationSetting::ModuleInstance
2
+ module CascadingConfiguration::Setting::ModuleInstance
3
3
 
4
+ extend CascadingConfiguration::InternalModuleStub
5
+
4
6
  ##############
5
7
  # included #
6
8
  ##############
7
9
 
8
10
  def included( class_or_module )
9
- self_module = self
11
+ super if method_defined?( :super )
12
+ module_self = self
10
13
  class_or_module.instance_eval do
11
- include CascadingConfiguration::ConfigurationSetting
14
+ include CascadingConfiguration::Setting
12
15
  # when we extend a module (which has happened if we got here)
13
16
  # then we need to make sure when the module we are extending is included
14
17
  # * CascadingConfiguration is included
15
18
  # * the module we extended is used to extend the class/module that included
16
- extend self_module
19
+ extend module_self
17
20
  end
18
21
  end
19
22
 
@@ -1,28 +1,29 @@
1
1
 
2
2
  require_relative '../../../lib/cascading-configuration-setting.rb'
3
3
 
4
- describe CascadingConfiguration::ConfigurationSetting::Accessors do
4
+ describe CascadingConfiguration::Setting::Accessors do
5
5
 
6
- #################################
7
- # define_configuration_setter #
8
- # define_configuration_getter #
9
- #################################
6
+ #############################
7
+ # define_cascading_setter #
8
+ # define_cascading_getter #
9
+ #############################
10
10
 
11
11
  it 'can define a method to get and set configuration value' do
12
- class CascadingConfiguration::ConfigurationSetting::Mock
13
- include CascadingConfiguration::ConfigurationSetting
12
+ class CascadingConfiguration::Setting::Mock
13
+ include CascadingConfiguration::Setting
14
14
  end
15
15
  # setter
16
16
  setter_method_name = ( :some_configuration.to_s + '=' ).to_sym
17
- CascadingConfiguration::ConfigurationSetting::Mock.define_configuration_setter( :some_configuration )
18
- CascadingConfiguration::ConfigurationSetting::Mock.methods.include?( setter_method_name ).should == true
19
- CascadingConfiguration::ConfigurationSetting::Mock.instance_methods.include?( setter_method_name ).should == true
20
- CascadingConfiguration::ConfigurationSetting::Mock.some_configuration = :a_setting_not_yet_used
17
+ CascadingConfiguration::Setting::Mock.define_cascading_setter( :some_configuration )
18
+ CascadingConfiguration::Setting::Mock.methods.include?( setter_method_name ).should == true
19
+ CascadingConfiguration::Setting::Mock.instance_methods.include?( setter_method_name ).should == true
20
+ CascadingConfiguration::Setting::Mock.some_configuration = :a_setting_not_yet_used
21
+ CascadingConfiguration::Setting::Mock.instance_variable_get( :@some_configuration ).should == :a_setting_not_yet_used
21
22
  # getter
22
- CascadingConfiguration::ConfigurationSetting::Mock.define_configuration_getter( :some_configuration )
23
- CascadingConfiguration::ConfigurationSetting::Mock.methods.include?( :some_configuration ).should == true
24
- CascadingConfiguration::ConfigurationSetting::Mock.instance_methods.include?( :some_configuration ).should == true
25
- CascadingConfiguration::ConfigurationSetting::Mock.some_configuration.should == :a_setting_not_yet_used
23
+ CascadingConfiguration::Setting::Mock.define_cascading_getter( :some_configuration )
24
+ CascadingConfiguration::Setting::Mock.methods.include?( :some_configuration ).should == true
25
+ CascadingConfiguration::Setting::Mock.instance_methods.include?( :some_configuration ).should == true
26
+ CascadingConfiguration::Setting::Mock.some_configuration.should == :a_setting_not_yet_used
26
27
  end
27
28
 
28
29
  end
@@ -1,39 +1,39 @@
1
1
 
2
2
  require_relative '../../lib/cascading-configuration-setting.rb'
3
3
 
4
- describe CascadingConfiguration::ConfigurationSetting do
4
+ describe CascadingConfiguration::Setting do
5
5
 
6
- ################################
6
+ ########################
7
7
  # attr_configuration #
8
- ################################
8
+ ########################
9
9
 
10
10
  it 'can define a configuration setting, which is the primary interface' do
11
- module CascadingConfiguration::ConfigurationSetting::MockModule
12
- include CascadingConfiguration::ConfigurationSetting
11
+ module CascadingConfiguration::Setting::MockModule
12
+ include CascadingConfiguration::Setting
13
13
  attr_configuration :some_other_configuration
14
14
  self.some_other_configuration = :our_setting_value
15
15
  some_other_configuration.should == :our_setting_value
16
16
  end
17
- module CascadingConfiguration::ConfigurationSetting::MockModule2
18
- include CascadingConfiguration::ConfigurationSetting::MockModule
17
+ module CascadingConfiguration::Setting::MockModule2
18
+ include CascadingConfiguration::Setting::MockModule
19
19
  self.some_other_configuration = :another_value
20
20
  some_other_configuration.should == :another_value
21
21
  end
22
- module CascadingConfiguration::ConfigurationSetting::MockModule3
23
- include CascadingConfiguration::ConfigurationSetting::MockModule2
22
+ module CascadingConfiguration::Setting::MockModule3
23
+ include CascadingConfiguration::Setting::MockModule2
24
24
  some_other_configuration.should == :another_value
25
25
  end
26
- class CascadingConfiguration::ConfigurationSetting::MockClass
27
- include CascadingConfiguration::ConfigurationSetting::MockModule3
26
+ class CascadingConfiguration::Setting::MockClass
27
+ include CascadingConfiguration::Setting::MockModule3
28
28
  some_other_configuration.should == :another_value
29
29
  self.some_other_configuration = :our_setting_value
30
30
  end
31
- class CascadingConfiguration::ConfigurationSetting::MockClassSub1 < CascadingConfiguration::ConfigurationSetting::MockClass
31
+ class CascadingConfiguration::Setting::MockClassSub1 < CascadingConfiguration::Setting::MockClass
32
32
  some_other_configuration.should == :our_setting_value
33
33
  self.some_other_configuration = :our_other_setting_value
34
34
  some_other_configuration.should == :our_other_setting_value
35
35
  end
36
- class CascadingConfiguration::ConfigurationSetting::MockClassSub2 < CascadingConfiguration::ConfigurationSetting::MockClassSub1
36
+ class CascadingConfiguration::Setting::MockClassSub2 < CascadingConfiguration::Setting::MockClassSub1
37
37
  some_other_configuration.should == :our_other_setting_value
38
38
  self.some_other_configuration = :a_third_setting_value
39
39
  some_other_configuration.should == :a_third_setting_value
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 1
7
+ - 1
7
8
  - 0
8
- - 0
9
- version: 1.0.0
9
+ version: 1.1.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - Asher
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2011-07-13 00:00:00 -04:00
17
+ date: 2011-07-14 00:00:00 -04:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -39,13 +39,14 @@ extensions: []
39
39
  extra_rdoc_files: []
40
40
 
41
41
  files:
42
- - lib/cascading-configuration-setting/CascadingConfiguration/ConfigurationSetting/Accessors.rb
43
- - lib/cascading-configuration-setting/CascadingConfiguration/ConfigurationSetting/ClassInstance.rb
44
- - lib/cascading-configuration-setting/CascadingConfiguration/ConfigurationSetting/ModuleInstance.rb
45
- - lib/cascading-configuration-setting/CascadingConfiguration/ConfigurationSetting.rb
42
+ - lib/cascading-configuration-setting/CascadingConfiguration/Setting/Accessors.rb
43
+ - lib/cascading-configuration-setting/CascadingConfiguration/Setting/ClassInstance.rb
44
+ - lib/cascading-configuration-setting/CascadingConfiguration/Setting/ModuleInstance.rb
45
+ - lib/cascading-configuration-setting/CascadingConfiguration/Setting.rb
46
46
  - lib/cascading-configuration-setting.rb
47
47
  - spec/CascadingConfiguration/ConfigurationSetting/Accessors_spec.rb
48
48
  - spec/CascadingConfiguration/ConfigurationSetting_spec.rb
49
+ - README.md
49
50
  - README.rdoc
50
51
  has_rdoc: true
51
52
  homepage: http://rubygems.org/gems/cascading-configuration-setting
@@ -1,37 +0,0 @@
1
-
2
- module CascadingConfiguration::ConfigurationSetting::Accessors
3
-
4
- #################################
5
- # define_configuration_setter #
6
- #################################
7
-
8
- def define_configuration_setter( configuration_name )
9
- configuration_setter_name = ( configuration_name.to_s + '=' ).to_s
10
- [ self, eigenclass ].each do |klass_or_eigenclass|
11
- klass_or_eigenclass.class_eval do
12
- define_method( configuration_setter_name ) do |value|
13
- # configuration setter returns setting variable (variable from self), which is now the ID of value
14
- return instance_variable_set( cascading_variable_name( configuration_name ), value )
15
- end
16
- end
17
- end
18
- end
19
-
20
- #################################
21
- # define_configuration_getter #
22
- #################################
23
-
24
- def define_configuration_getter( configuration_name )
25
- configuration_getter_name = configuration_name
26
- [ self, eigenclass ].each do |klass_or_eigenclass|
27
- klass_or_eigenclass.class_eval do
28
- define_method( configuration_getter_name ) do
29
- # configuration getter returns current setting value (taken from first superclass with setting)
30
- # that means first variable that has been set
31
- return get_configuration_searching_upward( configuration_name )
32
- end
33
- end
34
- end
35
- end
36
-
37
- end