cascading-configuration-setting 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.
- data/lib/cascading-configuration-setting.rb +9 -12
- data/lib/cascading-configuration-setting/CascadingConfiguration/Setting.rb +4 -39
- data/lib/cascading-configuration-setting/CascadingConfiguration/Setting/Interface.rb +58 -20
- data/lib/cascading-configuration-setting/_private_/CascadingConfiguration/Setting/Interface/GettersSetters.rb +298 -0
- data/spec/CascadingConfiguration/Setting_spec.rb +23 -4
- metadata +5 -21
- data/lib/cascading-configuration-setting/CascadingConfiguration/Setting/AccessorDefinitionMethods.rb +0 -159
- data/lib/cascading-configuration-setting/CascadingConfiguration/Setting/Interface/Instance.rb +0 -23
- data/spec/CascadingConfiguration/Setting/AccessorDefinitionMethods_spec.rb +0 -29
@@ -1,24 +1,21 @@
|
|
1
1
|
|
2
|
-
|
3
|
-
|
4
|
-
else
|
5
|
-
require 'cascading-configuration-variable'
|
6
|
-
end
|
2
|
+
require 'cascading-configuration-variable'
|
3
|
+
#require_relative '../../variable/lib/cascading-configuration-variable.rb'
|
7
4
|
|
8
5
|
module CascadingConfiguration
|
9
6
|
module Setting
|
10
|
-
|
7
|
+
class CompositingHash < ::Hash
|
8
|
+
class LocalConfigurationHash < ::Hash
|
9
|
+
end
|
11
10
|
end
|
12
11
|
module Interface
|
13
|
-
module
|
12
|
+
module GettersSetters
|
14
13
|
end
|
15
14
|
end
|
16
|
-
module ObjectInstance
|
17
|
-
end
|
18
15
|
end
|
19
16
|
end
|
20
17
|
|
21
|
-
require_relative 'cascading-configuration-setting/CascadingConfiguration/Setting.rb'
|
22
|
-
|
18
|
+
require_relative 'cascading-configuration-setting/_private_/CascadingConfiguration/Setting/Interface/GettersSetters.rb'
|
19
|
+
|
23
20
|
require_relative 'cascading-configuration-setting/CascadingConfiguration/Setting/Interface.rb'
|
24
|
-
require_relative 'cascading-configuration-setting/CascadingConfiguration/Setting
|
21
|
+
require_relative 'cascading-configuration-setting/CascadingConfiguration/Setting.rb'
|
@@ -1,45 +1,10 @@
|
|
1
1
|
|
2
2
|
module CascadingConfiguration::Setting
|
3
|
-
|
4
|
-
extend ModuleCluster
|
5
|
-
|
6
|
-
extend CascadingConfiguration::InternalModuleStub
|
7
|
-
|
8
|
-
include CascadingConfiguration::Variable
|
9
|
-
include CascadingConfiguration::Setting::Interface
|
10
|
-
include CascadingConfiguration::Setting::AccessorDefinitionMethods
|
11
|
-
|
12
|
-
prepend_module_include do |class_or_module|
|
13
|
-
class_or_module.extend_also_extends( CascadingConfiguration::Variable::EigenclassConfigurationChain )
|
14
|
-
end
|
15
|
-
|
16
|
-
include_cascades_extends( CascadingConfiguration::Setting::Interface::Instance )
|
17
3
|
|
18
|
-
|
4
|
+
# Configuration modules for storage of settings variables
|
5
|
+
include ::CascadingConfiguration::Variable
|
19
6
|
|
20
|
-
|
21
|
-
|
22
|
-
accessor_module_support
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
########################################
|
27
|
-
# get_configuration_searching_upward #
|
28
|
-
########################################
|
29
|
-
|
30
|
-
def get_configuration_searching_upward( configuration_name )
|
31
|
-
|
32
|
-
configuration = nil
|
33
|
-
|
34
|
-
ancestor_configuration_chain.each do |this_ancestor|
|
35
|
-
if accessor_module_support.has_configuration_variable?( this_ancestor, configuration_name )
|
36
|
-
configuration = accessor_module_support.get_configuration_variable( this_ancestor, configuration_name )
|
37
|
-
break
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
return configuration
|
42
|
-
|
43
|
-
end
|
7
|
+
# Interface to declare configuration settings
|
8
|
+
include ::CascadingConfiguration::Setting::Interface
|
44
9
|
|
45
10
|
end
|
@@ -1,7 +1,8 @@
|
|
1
1
|
|
2
2
|
module CascadingConfiguration::Setting::Interface
|
3
3
|
|
4
|
-
|
4
|
+
# Support methods that define configuration setting methods
|
5
|
+
include CascadingConfiguration::Setting::Interface::GettersSetters
|
5
6
|
|
6
7
|
########################
|
7
8
|
# attr_configuration #
|
@@ -9,13 +10,17 @@ module CascadingConfiguration::Setting::Interface
|
|
9
10
|
|
10
11
|
# defines configuration in class or module
|
11
12
|
# configuration cascades downward to instance including all classes or modules in-between
|
12
|
-
def attr_configuration( *
|
13
|
-
|
13
|
+
def attr_configuration( *configuration_names )
|
14
|
+
|
15
|
+
configuration_names.each do |this_configuration_name|
|
14
16
|
# define configuration setter
|
15
|
-
define_cascading_setter(
|
17
|
+
define_cascading_setter( this_configuration_name )
|
16
18
|
# define configuration getter
|
17
|
-
define_cascading_getter(
|
19
|
+
define_cascading_getter( this_configuration_name )
|
18
20
|
end
|
21
|
+
|
22
|
+
return self
|
23
|
+
|
19
24
|
end
|
20
25
|
|
21
26
|
###############################
|
@@ -24,13 +29,17 @@ module CascadingConfiguration::Setting::Interface
|
|
24
29
|
|
25
30
|
# defines configuration in class or module
|
26
31
|
# configuration cascades downward to last class or module
|
27
|
-
def attr_module_configuration( *
|
28
|
-
|
32
|
+
def attr_module_configuration( *configuration_names )
|
33
|
+
|
34
|
+
configuration_names.each do |this_configuration_name|
|
29
35
|
# define configuration setter
|
30
|
-
define_class_configuration_setter(
|
36
|
+
define_class_configuration_setter( this_configuration_name )
|
31
37
|
# define configuration getter
|
32
|
-
define_class_configuration_getter(
|
38
|
+
define_class_configuration_getter( this_configuration_name )
|
33
39
|
end
|
40
|
+
|
41
|
+
return self
|
42
|
+
|
34
43
|
end
|
35
44
|
alias_method :attr_class_configuration, :attr_module_configuration
|
36
45
|
|
@@ -42,15 +51,19 @@ module CascadingConfiguration::Setting::Interface
|
|
42
51
|
# also local to instances of class or module
|
43
52
|
# * any instances of class
|
44
53
|
# * first class to include module (inherited)
|
45
|
-
def attr_local_configuration( *
|
46
|
-
|
47
|
-
|
54
|
+
def attr_local_configuration( *configuration_names )
|
55
|
+
|
56
|
+
CascadingConfiguration::Variable.initialize_local_instance_configuration_module( self )
|
57
|
+
|
58
|
+
configuration_names.each do |this_configuration_name|
|
48
59
|
# define configuration setter
|
49
|
-
define_local_configuration_setter(
|
60
|
+
define_local_configuration_setter( this_configuration_name )
|
50
61
|
# define configuration getter
|
51
|
-
define_local_configuration_getter(
|
62
|
+
define_local_configuration_getter( this_configuration_name )
|
52
63
|
end
|
53
|
-
|
64
|
+
|
65
|
+
return self
|
66
|
+
|
54
67
|
end
|
55
68
|
|
56
69
|
###############################
|
@@ -59,14 +72,39 @@ module CascadingConfiguration::Setting::Interface
|
|
59
72
|
|
60
73
|
# local to class or module or instance that declares it
|
61
74
|
# * only in the instance that declares it
|
62
|
-
def attr_object_configuration( *
|
63
|
-
|
64
|
-
|
75
|
+
def attr_object_configuration( *configuration_names )
|
76
|
+
|
77
|
+
CascadingConfiguration::Variable.initialize_local_instance_configuration_module( self )
|
78
|
+
|
79
|
+
configuration_names.each do |this_configuration_name|
|
65
80
|
# define configuration setter
|
66
|
-
define_object_configuration_setter(
|
81
|
+
define_object_configuration_setter( this_configuration_name )
|
67
82
|
# define configuration getter
|
68
|
-
define_object_configuration_getter(
|
83
|
+
define_object_configuration_getter( this_configuration_name )
|
69
84
|
end
|
85
|
+
|
86
|
+
return self
|
87
|
+
|
88
|
+
end
|
89
|
+
|
90
|
+
#################################
|
91
|
+
# attr_instance_configuration #
|
92
|
+
#################################
|
93
|
+
|
94
|
+
# local to class or module or instance that declares it
|
95
|
+
# * in instances of the class or module that declares it
|
96
|
+
# * in instance if declared on non-class/non-module object instance
|
97
|
+
def attr_instance_configuration( *configuration_names )
|
98
|
+
|
99
|
+
configuration_names.each do |this_configuration_name|
|
100
|
+
# define configuration setter
|
101
|
+
define_instance_configuration_setter( this_configuration_name )
|
102
|
+
# define configuration getter
|
103
|
+
define_instance_configuration_getter( this_configuration_name )
|
104
|
+
end
|
105
|
+
|
106
|
+
return self
|
107
|
+
|
70
108
|
end
|
71
109
|
|
72
110
|
end
|
@@ -0,0 +1,298 @@
|
|
1
|
+
|
2
|
+
module CascadingConfiguration::Setting::Interface::GettersSetters
|
3
|
+
|
4
|
+
#############################
|
5
|
+
# define_cascading_setter #
|
6
|
+
#############################
|
7
|
+
|
8
|
+
def define_cascading_setter( configuration_name )
|
9
|
+
|
10
|
+
configuration_setter_name = ( configuration_name.to_s + '=' ).to_s
|
11
|
+
|
12
|
+
module_configuration_support_module = CascadingConfiguration::Variable.module_configuration_support_module( self )
|
13
|
+
instance_configuration_support_module = CascadingConfiguration::Variable.instance_configuration_support_module( self )
|
14
|
+
|
15
|
+
module_configuration_support_module.module_eval do
|
16
|
+
define_method( configuration_setter_name ) do |value|
|
17
|
+
|
18
|
+
# we define in one module but set in the local module where the method is _used_ not defined
|
19
|
+
self_module_configuration_support_module = CascadingConfiguration::Variable.module_configuration_support_module( self )
|
20
|
+
|
21
|
+
# configuration setter returns setting variable (variable from self), which is now the ID of value
|
22
|
+
return self_module_configuration_support_module.set_configuration_variable( configuration_name, value )
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
instance_configuration_support_module.module_eval do
|
28
|
+
define_method( configuration_setter_name ) do |value|
|
29
|
+
|
30
|
+
# we define in one module but set in the local module where the method is _used_ not defined
|
31
|
+
self_module_configuration_support_module = CascadingConfiguration::Variable.module_configuration_support_module( self )
|
32
|
+
|
33
|
+
if for_instance = ! is_a?( Module ) and ! self_module_configuration_support_module
|
34
|
+
self_module_configuration_support_module = CascadingConfiguration::Variable.module_configuration_support_module( self.class )
|
35
|
+
end
|
36
|
+
|
37
|
+
# configuration setter returns setting variable (variable from self), which is now the ID of value
|
38
|
+
return self_module_configuration_support_module.set_configuration_variable( configuration_name, value, for_instance )
|
39
|
+
|
40
|
+
end
|
41
|
+
end if instance_configuration_support_module
|
42
|
+
|
43
|
+
end
|
44
|
+
|
45
|
+
#############################
|
46
|
+
# define_cascading_getter #
|
47
|
+
#############################
|
48
|
+
|
49
|
+
def define_cascading_getter( configuration_name )
|
50
|
+
|
51
|
+
configuration_getter_name = configuration_name
|
52
|
+
|
53
|
+
module_configuration_support_module = CascadingConfiguration::Variable.module_configuration_support_module( self )
|
54
|
+
instance_configuration_support_module = CascadingConfiguration::Variable.instance_configuration_support_module( self )
|
55
|
+
|
56
|
+
module_configuration_support_module.module_eval do
|
57
|
+
define_method( configuration_getter_name ) do
|
58
|
+
|
59
|
+
self_module_configuration_support_module = CascadingConfiguration::Variable.module_configuration_support_module( self )
|
60
|
+
|
61
|
+
# configuration getter returns current setting value (taken from first superclass with setting)
|
62
|
+
# that means first variable that has been set
|
63
|
+
return self_module_configuration_support_module.get_configuration_searching_upward( configuration_name )
|
64
|
+
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
instance_configuration_support_module.module_eval do
|
69
|
+
define_method( configuration_getter_name ) do
|
70
|
+
|
71
|
+
self_module_configuration_support_module = CascadingConfiguration::Variable.module_configuration_support_module( self )
|
72
|
+
|
73
|
+
if for_instance = ! is_a?( Module ) and ! self_module_configuration_support_module
|
74
|
+
self_module_configuration_support_module = CascadingConfiguration::Variable.module_configuration_support_module( self.class )
|
75
|
+
end
|
76
|
+
|
77
|
+
# configuration getter returns current setting value (taken from first superclass with setting)
|
78
|
+
# that means first variable that has been set
|
79
|
+
return self_module_configuration_support_module.get_configuration_searching_upward( configuration_name, for_instance )
|
80
|
+
|
81
|
+
end
|
82
|
+
end if instance_configuration_support_module
|
83
|
+
|
84
|
+
end
|
85
|
+
|
86
|
+
#######################################
|
87
|
+
# define_class_configuration_setter #
|
88
|
+
#######################################
|
89
|
+
|
90
|
+
def define_class_configuration_setter( configuration_name )
|
91
|
+
|
92
|
+
configuration_setter_name = ( configuration_name.to_s + '=' ).to_s
|
93
|
+
|
94
|
+
module_configuration_support_module = CascadingConfiguration::Variable.module_configuration_support_module( self )
|
95
|
+
|
96
|
+
module_configuration_support_module.module_eval do
|
97
|
+
define_method( configuration_setter_name ) do |value|
|
98
|
+
|
99
|
+
# we define in one module but set in the local module where the method is _used_ not defined
|
100
|
+
module_configuration_support_module = CascadingConfiguration::Variable.module_configuration_support_module( self )
|
101
|
+
|
102
|
+
# configuration setter returns setting variable (variable from self), which is now the ID of value
|
103
|
+
return module_configuration_support_module.set_configuration_variable( configuration_name, value )
|
104
|
+
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
end
|
109
|
+
|
110
|
+
#######################################
|
111
|
+
# define_class_configuration_getter #
|
112
|
+
#######################################
|
113
|
+
|
114
|
+
def define_class_configuration_getter( configuration_name )
|
115
|
+
|
116
|
+
configuration_getter_name = configuration_name
|
117
|
+
|
118
|
+
module_configuration_support_module = CascadingConfiguration::Variable.module_configuration_support_module( self )
|
119
|
+
|
120
|
+
module_configuration_support_module.module_eval do
|
121
|
+
define_method( configuration_getter_name ) do
|
122
|
+
|
123
|
+
# we define in one module but set in the local module where the method is _used_ not defined
|
124
|
+
self_module_configuration_support_module = CascadingConfiguration::Variable.module_configuration_support_module( self )
|
125
|
+
|
126
|
+
# configuration getter returns current setting value (taken from first superclass with setting)
|
127
|
+
# that means first variable that has been set
|
128
|
+
return self_module_configuration_support_module.get_configuration_searching_upward( configuration_name )
|
129
|
+
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
end
|
134
|
+
|
135
|
+
#######################################
|
136
|
+
# define_local_configuration_setter #
|
137
|
+
#######################################
|
138
|
+
|
139
|
+
def define_local_configuration_setter( configuration_name )
|
140
|
+
|
141
|
+
configuration_setter_name = ( configuration_name.to_s + '=' ).to_s
|
142
|
+
|
143
|
+
instance_configuration_support_module = CascadingConfiguration::Variable.instance_configuration_support_module( self )
|
144
|
+
|
145
|
+
local_instance_configuration_support_module = CascadingConfiguration::Variable.local_instance_configuration_support_module( self )
|
146
|
+
|
147
|
+
local_setter_proc = Proc.new do |value|
|
148
|
+
|
149
|
+
# we define in one module but set in the local module where the method is _used_ not defined
|
150
|
+
module_configuration_support_module = CascadingConfiguration::Variable.module_configuration_support_module( self )
|
151
|
+
|
152
|
+
# configuration setter returns setting variable (variable from self), which is now the ID of value
|
153
|
+
return module_configuration_support_module.set_configuration_variable( configuration_name, value )
|
154
|
+
|
155
|
+
end
|
156
|
+
|
157
|
+
instance_configuration_support_module.module_eval do
|
158
|
+
define_method( configuration_setter_name, & local_setter_proc )
|
159
|
+
end if instance_configuration_support_module
|
160
|
+
|
161
|
+
local_instance_configuration_support_module.module_eval do
|
162
|
+
define_method( configuration_setter_name, & local_setter_proc )
|
163
|
+
end
|
164
|
+
|
165
|
+
end
|
166
|
+
|
167
|
+
#######################################
|
168
|
+
# define_local_configuration_getter #
|
169
|
+
#######################################
|
170
|
+
|
171
|
+
def define_local_configuration_getter( configuration_name )
|
172
|
+
|
173
|
+
configuration_getter_name = configuration_name
|
174
|
+
|
175
|
+
instance_configuration_support_module = CascadingConfiguration::Variable.instance_configuration_support_module( self )
|
176
|
+
|
177
|
+
local_instance_configuration_support_module = CascadingConfiguration::Variable.local_instance_configuration_support_module( self )
|
178
|
+
|
179
|
+
local_getter_proc = Proc.new do
|
180
|
+
|
181
|
+
# we define in one module but set in the local module where the method is _used_ not defined
|
182
|
+
module_configuration_support_module = CascadingConfiguration::Variable.module_configuration_support_module( self )
|
183
|
+
|
184
|
+
# configuration getter returns current setting value (taken from first superclass with setting)
|
185
|
+
# that means first variable that has been set
|
186
|
+
return module_configuration_support_module.get_configuration_variable( configuration_name )
|
187
|
+
|
188
|
+
end
|
189
|
+
|
190
|
+
instance_configuration_support_module.module_eval do
|
191
|
+
define_method( configuration_getter_name, & local_getter_proc )
|
192
|
+
end if instance_configuration_support_module
|
193
|
+
|
194
|
+
local_instance_configuration_support_module.module_eval do
|
195
|
+
define_method( configuration_getter_name, & local_getter_proc )
|
196
|
+
end
|
197
|
+
|
198
|
+
end
|
199
|
+
|
200
|
+
##########################################
|
201
|
+
# define_instance_configuration_setter #
|
202
|
+
##########################################
|
203
|
+
|
204
|
+
def define_instance_configuration_setter( configuration_name )
|
205
|
+
|
206
|
+
configuration_setter_name = ( configuration_name.to_s + '=' ).to_s
|
207
|
+
|
208
|
+
instance_configuration_support_module = CascadingConfiguration::Variable.instance_configuration_support_module( self )
|
209
|
+
|
210
|
+
instance_configuration_support_module.module_eval do
|
211
|
+
define_method( configuration_setter_name ) do |value|
|
212
|
+
|
213
|
+
# we define in one module but set in the local module where the method is _used_ not defined
|
214
|
+
module_configuration_support_module = CascadingConfiguration::Variable.module_configuration_support_module( self )
|
215
|
+
|
216
|
+
# configuration setter returns setting variable (variable from self), which is now the ID of value
|
217
|
+
return module_configuration_support_module.set_configuration_variable( configuration_name, value )
|
218
|
+
|
219
|
+
end
|
220
|
+
end
|
221
|
+
|
222
|
+
end
|
223
|
+
|
224
|
+
##########################################
|
225
|
+
# define_instance_configuration_getter #
|
226
|
+
##########################################
|
227
|
+
|
228
|
+
def define_instance_configuration_getter( configuration_name )
|
229
|
+
|
230
|
+
configuration_getter_name = configuration_name
|
231
|
+
|
232
|
+
instance_configuration_support_module = CascadingConfiguration::Variable.instance_configuration_support_module( self )
|
233
|
+
|
234
|
+
instance_configuration_support_module.module_eval do
|
235
|
+
define_method( configuration_getter_name ) do
|
236
|
+
|
237
|
+
# we define in one module but set in the local module where the method is _used_ not defined
|
238
|
+
module_configuration_support_module = CascadingConfiguration::Variable.module_configuration_support_module( self )
|
239
|
+
|
240
|
+
# configuration getter returns current setting value (taken from first superclass with setting)
|
241
|
+
# that means first variable that has been set
|
242
|
+
return module_configuration_support_module.get_configuration_variable( configuration_name )
|
243
|
+
|
244
|
+
end
|
245
|
+
end
|
246
|
+
|
247
|
+
end
|
248
|
+
|
249
|
+
########################################
|
250
|
+
# define_object_configuration_setter #
|
251
|
+
########################################
|
252
|
+
|
253
|
+
def define_object_configuration_setter( configuration_name )
|
254
|
+
|
255
|
+
configuration_setter_name = ( configuration_name.to_s + '=' ).to_s
|
256
|
+
|
257
|
+
local_instance_configuration_support_module = CascadingConfiguration::Variable.local_instance_configuration_support_module( self )
|
258
|
+
|
259
|
+
local_instance_configuration_support_module.module_eval do
|
260
|
+
define_method( configuration_setter_name ) do |value|
|
261
|
+
|
262
|
+
# we define in one module but set in the local module where the method is _used_ not defined
|
263
|
+
module_configuration_support_module = CascadingConfiguration::Variable.module_configuration_support_module( self )
|
264
|
+
|
265
|
+
# configuration setter returns setting variable (variable from self), which is now the ID of value
|
266
|
+
return module_configuration_support_module.set_configuration_variable( configuration_name, value )
|
267
|
+
|
268
|
+
end
|
269
|
+
end
|
270
|
+
|
271
|
+
end
|
272
|
+
|
273
|
+
########################################
|
274
|
+
# define_object_configuration_getter #
|
275
|
+
########################################
|
276
|
+
|
277
|
+
def define_object_configuration_getter( configuration_name )
|
278
|
+
|
279
|
+
configuration_getter_name = configuration_name
|
280
|
+
|
281
|
+
local_instance_configuration_support_module = CascadingConfiguration::Variable.local_instance_configuration_support_module( self )
|
282
|
+
|
283
|
+
local_instance_configuration_support_module.module_eval do
|
284
|
+
define_method( configuration_getter_name ) do
|
285
|
+
|
286
|
+
# we define in one module but set in the local module where the method is _used_ not defined
|
287
|
+
module_configuration_support_module = CascadingConfiguration::Variable.module_configuration_support_module( self )
|
288
|
+
|
289
|
+
# configuration getter returns current setting value (taken from first superclass with setting)
|
290
|
+
# that means first variable that has been set
|
291
|
+
return module_configuration_support_module.get_configuration_variable( configuration_name )
|
292
|
+
|
293
|
+
end
|
294
|
+
end
|
295
|
+
|
296
|
+
end
|
297
|
+
|
298
|
+
end
|
@@ -141,6 +141,24 @@ describe CascadingConfiguration::Setting do
|
|
141
141
|
some_configuration.should == :a_third_setting_value
|
142
142
|
instance_variables.empty?.should == true
|
143
143
|
end
|
144
|
+
|
145
|
+
module SomeModule
|
146
|
+
include CascadingConfiguration::Setting
|
147
|
+
attr_configuration :some_configuration
|
148
|
+
self.some_configuration = :another_configuration
|
149
|
+
end
|
150
|
+
module OtherModule
|
151
|
+
include SomeModule
|
152
|
+
end
|
153
|
+
Object.new.instance_eval do
|
154
|
+
extend( OtherModule )
|
155
|
+
respond_to?( :some_configuration ).should == true
|
156
|
+
some_configuration.should == :another_configuration
|
157
|
+
self.some_configuration = :our_setting_value
|
158
|
+
some_configuration.should == :our_setting_value
|
159
|
+
instance_variables.empty?.should == true
|
160
|
+
end
|
161
|
+
|
144
162
|
end
|
145
163
|
|
146
164
|
###############################
|
@@ -280,6 +298,7 @@ describe CascadingConfiguration::Setting do
|
|
280
298
|
some_configuration.should == :a_third_setting_value
|
281
299
|
instance_variables.empty?.should == true
|
282
300
|
end
|
301
|
+
|
283
302
|
end
|
284
303
|
|
285
304
|
##############################
|
@@ -350,13 +369,13 @@ describe CascadingConfiguration::Setting do
|
|
350
369
|
module SubmoduleIncluding
|
351
370
|
include CascadingConfiguration::Setting::LocalConfigurationMockIncluded
|
352
371
|
instance_methods.include?( :some_configuration ).should == true
|
353
|
-
respond_to?( :some_configuration ).should ==
|
372
|
+
respond_to?( :some_configuration ).should == false
|
354
373
|
instance_variables.empty?.should == true
|
355
374
|
end
|
356
375
|
module SubSubmoduleIncluding
|
357
376
|
include CascadingConfiguration::Setting::LocalConfigurationMockIncluded::SubmoduleIncluding
|
358
377
|
instance_methods.include?( :some_configuration ).should == true
|
359
|
-
respond_to?( :some_configuration ).should ==
|
378
|
+
respond_to?( :some_configuration ).should == false
|
360
379
|
instance_variables.empty?.should == true
|
361
380
|
end
|
362
381
|
# => extending modules and classes get attr_configuration and configurations
|
@@ -382,7 +401,7 @@ describe CascadingConfiguration::Setting do
|
|
382
401
|
class ClassIncluding
|
383
402
|
include CascadingConfiguration::Setting::LocalConfigurationMockIncluded
|
384
403
|
instance_methods.include?( :some_configuration ).should == true
|
385
|
-
respond_to?( :some_configuration ).should ==
|
404
|
+
respond_to?( :some_configuration ).should == false
|
386
405
|
instance_variables.empty?.should == true
|
387
406
|
end
|
388
407
|
setting_class_including_instance = ClassIncluding.new
|
@@ -454,7 +473,7 @@ describe CascadingConfiguration::Setting do
|
|
454
473
|
module CascadingConfiguration::Setting::InstanceConfigurationMockExtended
|
455
474
|
extend CascadingConfiguration::Setting
|
456
475
|
# => singleton gets attr_configuration and configurations
|
457
|
-
respond_to?( :attr_instance_configuration ).should ==
|
476
|
+
respond_to?( :attr_instance_configuration ).should == true
|
458
477
|
instance_methods.include?( :some_configuration ).should == false
|
459
478
|
instance_variables.empty?.should == true
|
460
479
|
# => including modules and classes get nothing
|
metadata
CHANGED
@@ -1,12 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cascading-configuration-setting
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
prerelease:
|
5
|
-
|
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:
|
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,16 +43,13 @@ extensions: []
|
|
52
43
|
extra_rdoc_files: []
|
53
44
|
|
54
45
|
files:
|
55
|
-
- lib/cascading-configuration-setting/CascadingConfiguration/Setting/
|
56
|
-
- lib/cascading-configuration-setting/CascadingConfiguration/Setting/Interface/Instance.rb
|
46
|
+
- lib/cascading-configuration-setting/_private_/CascadingConfiguration/Setting/Interface/GettersSetters.rb
|
57
47
|
- lib/cascading-configuration-setting/CascadingConfiguration/Setting/Interface.rb
|
58
48
|
- lib/cascading-configuration-setting/CascadingConfiguration/Setting.rb
|
59
49
|
- lib/cascading-configuration-setting.rb
|
60
|
-
- spec/CascadingConfiguration/Setting/AccessorDefinitionMethods_spec.rb
|
61
50
|
- spec/CascadingConfiguration/Setting_spec.rb
|
62
51
|
- README.md
|
63
52
|
- README.rdoc
|
64
|
-
has_rdoc: true
|
65
53
|
homepage: http://rubygems.org/gems/cascading-configuration-setting
|
66
54
|
licenses: []
|
67
55
|
|
@@ -75,21 +63,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
75
63
|
requirements:
|
76
64
|
- - ">="
|
77
65
|
- !ruby/object:Gem::Version
|
78
|
-
segments:
|
79
|
-
- 0
|
80
66
|
version: "0"
|
81
67
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
82
68
|
none: false
|
83
69
|
requirements:
|
84
70
|
- - ">="
|
85
71
|
- !ruby/object:Gem::Version
|
86
|
-
segments:
|
87
|
-
- 0
|
88
72
|
version: "0"
|
89
73
|
requirements: []
|
90
74
|
|
91
75
|
rubyforge_project: cascading-configuration-setting
|
92
|
-
rubygems_version: 1.
|
76
|
+
rubygems_version: 1.8.10
|
93
77
|
signing_key:
|
94
78
|
specification_version: 3
|
95
79
|
summary: Support package for cascading-configuration.
|
data/lib/cascading-configuration-setting/CascadingConfiguration/Setting/AccessorDefinitionMethods.rb
DELETED
@@ -1,159 +0,0 @@
|
|
1
|
-
|
2
|
-
module CascadingConfiguration::Setting::AccessorDefinitionMethods
|
3
|
-
|
4
|
-
extend CascadingConfiguration::InternalModuleStub
|
5
|
-
|
6
|
-
#############################
|
7
|
-
# define_cascading_setter #
|
8
|
-
#############################
|
9
|
-
|
10
|
-
def define_cascading_setter( configuration_name )
|
11
|
-
configuration_setter_name = ( configuration_name.to_s + '=' ).to_s
|
12
|
-
[ accessor_instance_support, accessor_module_support ].compact.each do |module_support|
|
13
|
-
module_support.module_eval do
|
14
|
-
define_method( configuration_setter_name ) do |value|
|
15
|
-
# configuration setter returns setting variable (variable from self), which is now the ID of value
|
16
|
-
return accessor_module_support.set_configuration_variable( self, configuration_name, value )
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
#############################
|
23
|
-
# define_cascading_getter #
|
24
|
-
#############################
|
25
|
-
|
26
|
-
def define_cascading_getter( configuration_name )
|
27
|
-
configuration_getter_name = configuration_name
|
28
|
-
[ accessor_instance_support, accessor_module_support ].compact.each do |module_support|
|
29
|
-
module_support.module_eval do
|
30
|
-
define_method( configuration_getter_name ) do
|
31
|
-
# configuration getter returns current setting value (taken from first superclass with setting)
|
32
|
-
# that means first variable that has been set
|
33
|
-
return get_configuration_searching_upward( configuration_name )
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
#######################################
|
40
|
-
# define_class_configuration_setter #
|
41
|
-
#######################################
|
42
|
-
|
43
|
-
def define_class_configuration_setter( configuration_name )
|
44
|
-
configuration_setter_name = ( configuration_name.to_s + '=' ).to_s
|
45
|
-
accessor_module_support.module_eval do
|
46
|
-
define_method( configuration_setter_name ) do |value|
|
47
|
-
# configuration setter returns setting variable (variable from self), which is now the ID of value
|
48
|
-
return accessor_module_support.set_configuration_variable( self, configuration_name, value )
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
#######################################
|
54
|
-
# define_class_configuration_getter #
|
55
|
-
#######################################
|
56
|
-
|
57
|
-
def define_class_configuration_getter( configuration_name )
|
58
|
-
configuration_getter_name = configuration_name
|
59
|
-
accessor_module_support.module_eval do
|
60
|
-
define_method( configuration_getter_name ) do
|
61
|
-
# configuration getter returns current setting value (taken from first superclass with setting)
|
62
|
-
# that means first variable that has been set
|
63
|
-
return get_configuration_searching_upward( configuration_name )
|
64
|
-
end
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
#######################################
|
69
|
-
# define_local_configuration_setter #
|
70
|
-
#######################################
|
71
|
-
|
72
|
-
def define_local_configuration_setter( configuration_name )
|
73
|
-
configuration_setter_name = ( configuration_name.to_s + '=' ).to_s
|
74
|
-
[ accessor_instance_support, accessor_local_instance_support ].compact.each do |module_support|
|
75
|
-
module_support.module_eval do
|
76
|
-
define_method( configuration_setter_name ) do |value|
|
77
|
-
# configuration setter returns setting variable (variable from self), which is now the ID of value
|
78
|
-
return accessor_module_support.set_configuration_variable( self, configuration_name, value )
|
79
|
-
end
|
80
|
-
end
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
#######################################
|
85
|
-
# define_local_configuration_getter #
|
86
|
-
#######################################
|
87
|
-
|
88
|
-
def define_local_configuration_getter( configuration_name )
|
89
|
-
configuration_getter_name = configuration_name
|
90
|
-
[ accessor_instance_support, accessor_local_instance_support ].compact.each do |module_support|
|
91
|
-
module_support.module_eval do
|
92
|
-
define_method( configuration_getter_name ) do
|
93
|
-
# configuration getter returns current setting value (taken from first superclass with setting)
|
94
|
-
# that means first variable that has been set
|
95
|
-
return accessor_module_support.get_configuration_variable( self, configuration_name )
|
96
|
-
end
|
97
|
-
end
|
98
|
-
end
|
99
|
-
end
|
100
|
-
|
101
|
-
##########################################
|
102
|
-
# define_instance_configuration_setter #
|
103
|
-
##########################################
|
104
|
-
|
105
|
-
def define_instance_configuration_setter( configuration_name )
|
106
|
-
configuration_setter_name = ( configuration_name.to_s + '=' ).to_s
|
107
|
-
accessor_instance_support.module_eval do
|
108
|
-
define_method( configuration_setter_name ) do |value|
|
109
|
-
# configuration setter returns setting variable (variable from self), which is now the ID of value
|
110
|
-
return accessor_module_support.set_configuration_variable( self, configuration_name, value )
|
111
|
-
end
|
112
|
-
end
|
113
|
-
end
|
114
|
-
|
115
|
-
##########################################
|
116
|
-
# define_instance_configuration_getter #
|
117
|
-
##########################################
|
118
|
-
|
119
|
-
def define_instance_configuration_getter( configuration_name )
|
120
|
-
configuration_getter_name = configuration_name
|
121
|
-
accessor_instance_support.module_eval do
|
122
|
-
define_method( configuration_getter_name ) do
|
123
|
-
# configuration getter returns current setting value (taken from first superclass with setting)
|
124
|
-
# that means first variable that has been set
|
125
|
-
return accessor_module_support.get_configuration_variable( self, configuration_name )
|
126
|
-
end
|
127
|
-
end
|
128
|
-
end
|
129
|
-
|
130
|
-
########################################
|
131
|
-
# define_object_configuration_setter #
|
132
|
-
########################################
|
133
|
-
|
134
|
-
def define_object_configuration_setter( configuration_name )
|
135
|
-
configuration_setter_name = ( configuration_name.to_s + '=' ).to_s
|
136
|
-
accessor_local_instance_support.module_eval do
|
137
|
-
define_method( configuration_setter_name ) do |value|
|
138
|
-
# configuration setter returns setting variable (variable from self), which is now the ID of value
|
139
|
-
return accessor_module_support.set_configuration_variable( self, configuration_name, value )
|
140
|
-
end
|
141
|
-
end
|
142
|
-
end
|
143
|
-
|
144
|
-
########################################
|
145
|
-
# define_object_configuration_getter #
|
146
|
-
########################################
|
147
|
-
|
148
|
-
def define_object_configuration_getter( configuration_name )
|
149
|
-
configuration_getter_name = configuration_name
|
150
|
-
accessor_local_instance_support.module_eval do
|
151
|
-
define_method( configuration_getter_name ) do
|
152
|
-
# configuration getter returns current setting value (taken from first superclass with setting)
|
153
|
-
# that means first variable that has been set
|
154
|
-
return accessor_module_support.get_configuration_variable( self, configuration_name )
|
155
|
-
end
|
156
|
-
end
|
157
|
-
end
|
158
|
-
|
159
|
-
end
|
data/lib/cascading-configuration-setting/CascadingConfiguration/Setting/Interface/Instance.rb
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
|
2
|
-
module CascadingConfiguration::Setting::Interface::Instance
|
3
|
-
|
4
|
-
extend CascadingConfiguration::InternalModuleStub
|
5
|
-
|
6
|
-
#################################
|
7
|
-
# attr_instance_configuration #
|
8
|
-
#################################
|
9
|
-
|
10
|
-
# local to class or module or instance that declares it
|
11
|
-
# * in instances of the class or module that declares it
|
12
|
-
# * in instance if declared on non-class/non-module object instance
|
13
|
-
def attr_instance_configuration( *property_names )
|
14
|
-
property_names.each do |this_property_name|
|
15
|
-
# define configuration setter
|
16
|
-
define_instance_configuration_setter( this_property_name )
|
17
|
-
# define configuration getter
|
18
|
-
define_instance_configuration_getter( this_property_name )
|
19
|
-
end
|
20
|
-
return self
|
21
|
-
end
|
22
|
-
|
23
|
-
end
|
@@ -1,29 +0,0 @@
|
|
1
|
-
|
2
|
-
require_relative '../../../lib/cascading-configuration-setting.rb'
|
3
|
-
|
4
|
-
describe CascadingConfiguration::Setting::AccessorDefinitionMethods do
|
5
|
-
|
6
|
-
#############################
|
7
|
-
# define_cascading_setter #
|
8
|
-
# define_cascading_getter #
|
9
|
-
#############################
|
10
|
-
|
11
|
-
it 'can define a method to get and set configuration value' do
|
12
|
-
class CascadingConfiguration::Setting::Mock
|
13
|
-
include CascadingConfiguration::Setting
|
14
|
-
end
|
15
|
-
# setter
|
16
|
-
setter_method_name = ( :some_configuration.to_s + '=' ).to_sym
|
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.accessor_module_support.get_configuration_variable( CascadingConfiguration::Setting::Mock, :some_configuration ).should == :a_setting_not_yet_used
|
22
|
-
# getter
|
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
|
27
|
-
end
|
28
|
-
|
29
|
-
end
|