corl 0.4.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (122) hide show
  1. data/Gemfile +5 -10
  2. data/Gemfile.lock +13 -11
  3. data/README.rdoc +1 -1
  4. data/Rakefile +3 -3
  5. data/VERSION +1 -1
  6. data/bin/corl +2 -54
  7. data/bootstrap/bootstrap.sh +91 -0
  8. data/bootstrap/lib/shell/LICENSE.txt +674 -0
  9. data/bootstrap/lib/shell/command.sh +214 -0
  10. data/bootstrap/lib/shell/filesystem.sh +139 -0
  11. data/bootstrap/lib/shell/load.sh +73 -0
  12. data/bootstrap/lib/shell/os.sh +67 -0
  13. data/bootstrap/lib/shell/script.sh +160 -0
  14. data/bootstrap/lib/shell/starter.sh +64 -0
  15. data/bootstrap/lib/shell/validators.sh +50 -0
  16. data/bootstrap/os/ubuntu/00_base.sh +5 -0
  17. data/bootstrap/os/ubuntu/01_git.sh +5 -0
  18. data/bootstrap/os/ubuntu/05_ruby.sh +7 -0
  19. data/bootstrap/os/ubuntu/06_puppet.sh +38 -0
  20. data/bootstrap/os/ubuntu/10_corl.sh +9 -0
  21. data/corl.gemspec +61 -124
  22. data/lib/{corl → CORL}/action/bootstrap.rb +13 -7
  23. data/lib/CORL/action/exec.rb +39 -0
  24. data/lib/CORL/action/image.rb +31 -0
  25. data/lib/{corl → CORL}/action/images.rb +1 -1
  26. data/lib/CORL/action/lookup.rb +34 -0
  27. data/lib/{corl → CORL}/action/machines.rb +1 -1
  28. data/lib/CORL/action/provision.rb +31 -0
  29. data/lib/{corl → CORL}/action/seed.rb +3 -3
  30. data/lib/{corl → CORL}/action/spawn.rb +2 -2
  31. data/lib/CORL/action/start.rb +31 -0
  32. data/lib/CORL/action/stop.rb +31 -0
  33. data/lib/{corl → CORL}/configuration/file.rb +1 -1
  34. data/lib/{corl → CORL}/event/puppet.rb +1 -1
  35. data/lib/{corl → CORL}/extension/puppetloader.rb +1 -1
  36. data/lib/{corl → CORL}/machine/fog.rb +3 -3
  37. data/lib/{corl → CORL}/machine/physical.rb +2 -2
  38. data/lib/{corl → CORL}/network/default.rb +1 -1
  39. data/lib/{corl → CORL}/node/aws.rb +0 -4
  40. data/lib/{corl → CORL}/node/google.rb +0 -4
  41. data/lib/{corl → CORL}/node/local.rb +1 -1
  42. data/lib/{corl → CORL}/node/rackspace.rb +0 -4
  43. data/lib/{corl → CORL}/provisioner/puppetnode.rb +1 -14
  44. data/lib/{corl → CORL}/provisioner/puppetnode/resource.rb +0 -0
  45. data/lib/{corl → CORL}/provisioner/puppetnode/resource_group.rb +0 -0
  46. data/lib/{corl → CORL}/template/environment.rb +1 -1
  47. data/lib/core/facade.rb +49 -0
  48. data/lib/{corl_core → core}/mixin/action/keypair.rb +10 -10
  49. data/lib/{corl_core → core}/mixin/lookup.rb +0 -0
  50. data/lib/{corl_core → core}/mod/hiera_backend.rb +0 -0
  51. data/lib/{corl_core/mixin/action/node.rb → core/plugin/action.rb} +66 -33
  52. data/lib/{corl_core → core}/plugin/configuration.rb +2 -2
  53. data/lib/{corl/node → core/plugin}/fog.rb +5 -1
  54. data/lib/{corl_core → core}/plugin/machine.rb +2 -2
  55. data/lib/{corl_core → core}/plugin/network.rb +4 -4
  56. data/lib/{corl_core → core}/plugin/node.rb +11 -9
  57. data/lib/{corl_core → core}/plugin/provisioner.rb +2 -2
  58. data/lib/{corl_core → core}/util/ssh.rb +1 -1
  59. data/lib/corl.rb +53 -112
  60. data/lib/puppet/parser/functions/ensure.rb +0 -4
  61. data/locales/en.yml +55 -148
  62. metadata +84 -222
  63. data/lib/corl/action/add.rb +0 -69
  64. data/lib/corl/action/clone.rb +0 -40
  65. data/lib/corl/action/create.rb +0 -55
  66. data/lib/corl/action/exec.rb +0 -41
  67. data/lib/corl/action/extract.rb +0 -49
  68. data/lib/corl/action/image.rb +0 -30
  69. data/lib/corl/action/lookup.rb +0 -35
  70. data/lib/corl/action/provision.rb +0 -37
  71. data/lib/corl/action/remove.rb +0 -51
  72. data/lib/corl/action/save.rb +0 -53
  73. data/lib/corl/action/start.rb +0 -37
  74. data/lib/corl/action/stop.rb +0 -30
  75. data/lib/corl/action/update.rb +0 -37
  76. data/lib/corl/command/shell.rb +0 -164
  77. data/lib/corl/event/regex.rb +0 -52
  78. data/lib/corl/project/git.rb +0 -465
  79. data/lib/corl/project/github.rb +0 -108
  80. data/lib/corl/template/json.rb +0 -16
  81. data/lib/corl/template/wrapper.rb +0 -16
  82. data/lib/corl/template/yaml.rb +0 -16
  83. data/lib/corl/translator/json.rb +0 -27
  84. data/lib/corl/translator/yaml.rb +0 -27
  85. data/lib/corl_core/codes.rb +0 -107
  86. data/lib/corl_core/config.rb +0 -337
  87. data/lib/corl_core/config/collection.rb +0 -57
  88. data/lib/corl_core/config/options.rb +0 -70
  89. data/lib/corl_core/core.rb +0 -59
  90. data/lib/corl_core/corl.rb +0 -254
  91. data/lib/corl_core/errors.rb +0 -84
  92. data/lib/corl_core/facade.rb +0 -126
  93. data/lib/corl_core/gems.rb +0 -72
  94. data/lib/corl_core/manager.rb +0 -425
  95. data/lib/corl_core/mixin/action/commit.rb +0 -58
  96. data/lib/corl_core/mixin/action/project.rb +0 -53
  97. data/lib/corl_core/mixin/action/push.rb +0 -52
  98. data/lib/corl_core/mixin/config/collection.rb +0 -53
  99. data/lib/corl_core/mixin/config/ops.rb +0 -53
  100. data/lib/corl_core/mixin/config/options.rb +0 -39
  101. data/lib/corl_core/mixin/macro/object_interface.rb +0 -361
  102. data/lib/corl_core/mixin/macro/plugin_interface.rb +0 -380
  103. data/lib/corl_core/mixin/settings.rb +0 -46
  104. data/lib/corl_core/mixin/sub_config.rb +0 -148
  105. data/lib/corl_core/mod/hash.rb +0 -29
  106. data/lib/corl_core/plugin/action.rb +0 -381
  107. data/lib/corl_core/plugin/base.rb +0 -374
  108. data/lib/corl_core/plugin/command.rb +0 -98
  109. data/lib/corl_core/plugin/event.rb +0 -53
  110. data/lib/corl_core/plugin/extension.rb +0 -12
  111. data/lib/corl_core/plugin/project.rb +0 -927
  112. data/lib/corl_core/plugin/template.rb +0 -80
  113. data/lib/corl_core/plugin/translator.rb +0 -38
  114. data/lib/corl_core/util/cli.rb +0 -352
  115. data/lib/corl_core/util/data.rb +0 -404
  116. data/lib/corl_core/util/disk.rb +0 -114
  117. data/lib/corl_core/util/git.rb +0 -47
  118. data/lib/corl_core/util/interface.rb +0 -319
  119. data/lib/corl_core/util/liquid.rb +0 -17
  120. data/lib/corl_core/util/package.rb +0 -93
  121. data/lib/corl_core/util/shell.rb +0 -239
  122. data/spec/corl_core/interface_spec.rb +0 -489
@@ -1,380 +0,0 @@
1
-
2
- # Should be included via extend
3
- #
4
- # extend Mixin::Macro::PluginInterface
5
- #
6
-
7
- corl_require(File.dirname(__FILE__), :object_interface)
8
-
9
- #---
10
-
11
- module CORL
12
- module Mixin
13
- module Macro
14
- module PluginInterface
15
-
16
- include Macro::ObjectInterface
17
-
18
- #-----------------------------------------------------------------------------
19
- # Plugin collections
20
-
21
- def plugin_collection(_type, _method_options = {})
22
- _method_config = Config.ensure(_method_options)
23
- _method_config.set(:plugin, true)
24
-
25
- _plural = _method_config.init(:plural, "#{_type}s").get(:plural)
26
- _search_proc = _method_config.get(:search_proc)
27
- _single_instance = _method_config.get(:single_instance, false)
28
- _plugin_type = _method_config.get(:plugin_type, _type)
29
-
30
- @@object_types[_type] = _method_config
31
-
32
- logger.debug("Creating new plugin collection #{_type} with: #{_method_config.inspect}")
33
-
34
- #---------------------------------------------------------------------------
35
-
36
- object_utilities
37
-
38
- #---
39
-
40
- unless respond_to? :each_plugin
41
- logger.debug("Defining plugin interface method: each_plugin")
42
-
43
- define_method :each_plugin do |plugin_types = nil, providers = nil, &code|
44
- providers = [ providers ] if providers && ! providers.is_a?(Array)
45
-
46
- filter_proc = Proc.new {|type, config| config[:plugin] }
47
- each_object_type(plugin_types, filter_proc) do |type, plural, options|
48
- logger.debug("Processing plugin type #{type}/#{plural} with: #{options.inspect}")
49
-
50
- send(plural).each do |provider, plugins|
51
- logger.debug("Processing plugin provider: #{provider}")
52
-
53
- unless providers && ! providers.include?(provider)
54
- if plugins.is_a?(Hash)
55
- plugins.each do |name, plugin|
56
- logger.debug("Processing plugin: #{name}")
57
- code.call(type, provider, name, plugin)
58
- end
59
- else
60
- logger.debug("Processing plugin: #{plugin.name}")
61
- code.call(type, provider, plugin.name, plugin)
62
- end
63
- end
64
- end
65
- end
66
- end
67
- end
68
-
69
- #---
70
-
71
- logger.debug("Defining plugin interface method: each_#{_type}")
72
-
73
- define_method "each_#{_type}" do |providers = nil, &code|
74
- each_plugin(_type, providers) do |type, provider, name, plugin|
75
- code.call(provider, name, plugin)
76
- end
77
- end
78
-
79
- #---------------------------------------------------------------------------
80
-
81
- logger.debug("Defining plugin interface method: #{_plural}")
82
-
83
- define_method "#{_plural}" do |provider = nil, reset = false|
84
- keys = ( provider ? [ _plural, provider ] : _plural )
85
- send("init_#{_plural}", provider) if reset || _get(keys, {}).empty?
86
- _get(keys, {})
87
- end
88
-
89
- #---
90
-
91
- logger.debug("Defining plugin interface method: init_#{_plural}")
92
-
93
- define_method "init_#{_plural}" do |providers = nil|
94
- data = hash(_search_proc.call) if _search_proc
95
- data = get_hash(_plural) unless data
96
-
97
- providers = [ providers ] if providers && ! providers.is_a?(Array)
98
-
99
- logger.debug("Initializing #{_plugin_type} plugin data: #{data.inspect}")
100
- logger.debug("Providers: #{providers.inspect}")
101
-
102
- symbol_map(data).each do |provider, instance_settings|
103
- if ! providers || providers.include?(provider)
104
- if _single_instance
105
- logger.debug("Initializing single instance plugin: #{instance_settings.inspect}")
106
-
107
- plugin = CORL.plugin(_plugin_type, provider, Config.ensure(instance_settings).import({ :meta => { :parent => myself } }))
108
-
109
- _set([ _plural, provider ], plugin)
110
- else
111
- instance_settings.each do |name, options|
112
- if name != :settings
113
- logger.debug("Initializing plugin #{_plugin_type} #{name}: #{options.inspect}")
114
-
115
- options[:name] = name
116
- plugin = CORL.plugin(_plugin_type, provider, Config.ensure(options).import({ :meta => { :parent => myself } }))
117
-
118
- _set([ _plural, provider, name ], plugin)
119
- end
120
- end
121
- end
122
- end
123
- end
124
- end
125
-
126
- #---
127
-
128
- logger.debug("Defining plugin interface method: set_#{_plural}")
129
-
130
- define_method "set_#{_plural}" do |data = {}|
131
- data = Config.ensure(data).export
132
-
133
- send("clear_#{_plural}")
134
- set(_plural, data)
135
-
136
- logger.debug("Setting #{_plural}")
137
-
138
- data.each do |provider, instance_settings|
139
- if _single_instance
140
- logger.debug("Setting single #{_plugin_type} #{provider}: #{instance_settings.inspect}")
141
-
142
- plugin = CORL.plugin(_plugin_type, provider, Config.ensure(instance_settings).import({ :meta => { :parent => myself } }))
143
-
144
- _set([ _plural, provider ], plugin)
145
- else
146
- instance_settings.each do |name, options|
147
- logger.debug("Setting #{_plugin_type} #{provider} #{name}: #{options.inspect}")
148
-
149
- options[:name] = name
150
- plugin = CORL.plugin(_plugin_type, provider, Config.ensure(options).import({ :meta => { :parent => myself } }))
151
-
152
- _set([ _plural, provider, name ], plugin)
153
- end
154
- end
155
- end
156
- end
157
-
158
- #---
159
-
160
- logger.debug("Defining plugin interface method: clear_#{_plural}")
161
-
162
- define_method "clear_#{_plural}" do
163
- get(_plural).keys.each do |provider|
164
- logger.debug("Clearing #{_type} #{provider}")
165
-
166
- if _single_instance
167
- send("delete_#{_type}", provider)
168
- else
169
- get_hash([ _plural, provider ]).keys.each do |name|
170
- send("delete_#{_type}", provider, name)
171
- end
172
- end
173
- end
174
- end
175
-
176
- #---------------------------------------------------------------------------
177
-
178
- if _single_instance
179
- logger.debug("Defining single instance plugin interface method: #{_type}_config")
180
-
181
- define_method "#{_type}_config" do |provider = nil|
182
- keys = [ _plural ]
183
- keys << provider unless provider.nil?
184
- Config.new(get(keys, {}))
185
- end
186
-
187
- #---
188
-
189
- logger.debug("Defining single instance plugin interface method: #{_type}_setting")
190
-
191
- define_method "#{_type}_setting" do |provider, property, default = nil, format = false|
192
- get([ _plural, provider, property ], default, format)
193
- end
194
-
195
- #---
196
-
197
- logger.debug("Defining single instance plugin interface method: #{_type}")
198
-
199
- define_method "#{_type}" do |provider, reset = false|
200
- if reset || _get([ _plural, provider ], nil).nil?
201
- options = get([ _plural, provider ], nil)
202
-
203
- unless options.nil?
204
- plugin = CORL.plugin(_plugin_type, provider, Config.ensure(options).import({ :meta => { :parent => myself } }))
205
-
206
- logger.debug("Initializing plugin #{_plugin_type} #{provider}: #{options.inspect}")
207
-
208
- _set([ _plural, provider ], plugin)
209
- end
210
- end
211
- _get([ _plural, provider ])
212
- end
213
-
214
- #---
215
-
216
- logger.debug("Defining single instance plugin interface method: set_#{_type}")
217
-
218
- define_method "set_#{_type}" do |provider, options = {}|
219
- options = Config.ensure(options).export
220
-
221
- set([ _plural, provider ], options)
222
-
223
- plugin = CORL.plugin(_plugin_type, provider, Config.ensure(options).import({ :meta => { :parent => myself } }))
224
-
225
- logger.debug("Setting single #{_plugin_type} #{provider}: #{options.inspect}")
226
-
227
- _set([ _plural, provider ], plugin)
228
- plugin
229
- end
230
-
231
- #---
232
-
233
- logger.debug("Defining single instance plugin interface method: set_#{_type}_setting")
234
-
235
- define_method "set_#{_type}_setting" do |provider, property, value = nil|
236
- logger.debug("Setting single #{provider} property #{property} to #{value.inspect}")
237
- set([ _plural, provider, property ], value)
238
- end
239
-
240
- #---
241
-
242
- logger.debug("Defining single instance plugin interface method: delete_#{_type}")
243
-
244
- define_method "delete_#{_type}" do |provider|
245
- plugin = send(_type, provider)
246
-
247
- logger.debug("Deleting single #{_type} #{provider}")
248
-
249
- delete([ _plural, provider ])
250
- _delete([ _plural, provider ])
251
-
252
- CORL.remove_plugin(plugin) unless plugin.nil?
253
- end
254
-
255
- #---
256
-
257
- logger.debug("Defining single instance plugin interface method: delete_#{_type}_setting")
258
-
259
- define_method "delete_#{_type}_setting" do |provider, property|
260
- logger.debug("Deleting single #{provider} property: #{property}")
261
- delete([ _plural, provider, property ])
262
- end
263
-
264
- #---
265
-
266
- logger.debug("Defining single instance plugin interface method: search_#{_type}")
267
-
268
- define_method "search_#{_type}" do |provider, keys, default = '', format = false|
269
- plugin_config = send("#{_type}_config", provider)
270
- logger.debug("Searching single #{_type} #{provider}: #{plugin_config.inspect}")
271
-
272
- search_object(plugin_config, keys, default, format)
273
- end
274
-
275
- #---------------------------------------------------------------------------
276
- else
277
- logger.debug("Defining multi instance plugin interface method: #{_type}_config")
278
-
279
- define_method "#{_type}_config" do |provider = nil, name = nil|
280
- keys = [ _plural ]
281
- keys << provider unless provider.nil?
282
- keys << name unless name.nil?
283
- Config.new(get(keys, {}))
284
- end
285
-
286
- #---
287
-
288
- logger.debug("Defining multi instance plugin interface method: #{_type}_setting")
289
-
290
- define_method "#{_type}_setting" do |provider, name, property, default = nil, format = false|
291
- get([ _plural, provider, name, property ], default, format)
292
- end
293
-
294
- #---
295
-
296
- logger.debug("Defining multi instance plugin interface method: #{_type}")
297
-
298
- define_method "#{_type}" do |provider, name|
299
- if reset || _get([ _plural, provider, name ], nil).nil?
300
- options = get([ _plural, provider, name ], nil)
301
-
302
- unless options.nil?
303
- options[:name] = name
304
- plugin = CORL.plugin(_plugin_type, provider, Config.ensure(options).import({ :meta => { :parent => myself } }))
305
-
306
- logger.debug("Initializing plugin #{_plugin_type} #{provider}: #{options.inspect}")
307
-
308
- _set([ _plural, provider, name ], plugin)
309
- end
310
- end
311
- _get([ _plural, provider, name ])
312
- end
313
-
314
- #---
315
-
316
- logger.debug("Defining multi instance plugin interface method: set_#{_type}")
317
-
318
- define_method "set_#{_type}" do |provider, name, options = {}|
319
- options = Config.ensure(options).export
320
-
321
- set([ _plural, provider, name ], options)
322
-
323
- options[:name] = name
324
- plugin = CORL.plugin(_plugin_type, provider, Config.ensure(options).import({ :meta => { :parent => myself } }))
325
-
326
- logger.debug("Setting #{_plugin_type} #{provider} #{name}: #{options.inspect}")
327
-
328
- _set([ _plural, provider, name ], plugin)
329
- plugin
330
- end
331
-
332
- #---
333
-
334
- logger.debug("Defining multi instance plugin interface method: set_#{_type}_setting")
335
-
336
- define_method "set_#{_type}_setting" do |provider, name, property, value = nil|
337
- logger.debug("Setting #{provider} #{name} property #{property} to #{value.inspect}")
338
- set([ _plural, provider, name, property ], value)
339
- end
340
-
341
- #---
342
-
343
- logger.debug("Defining multi instance plugin interface method: delete_#{_type}")
344
-
345
- define_method "delete_#{_type}" do |provider, name|
346
- plugin = send(_type, provider, name)
347
-
348
- logger.debug("Deleting #{_type} #{provider} #{name}")
349
-
350
- delete([ _plural, provider, name ])
351
- _delete([ _plural, provider, name ])
352
-
353
- CORL.remove_plugin(plugin) unless plugin.nil?
354
- end
355
-
356
- #---
357
-
358
- logger.debug("Defining multi instance plugin interface method: delete_#{_type}_setting")
359
-
360
- define_method "delete_#{_type}_setting" do |provider, name, property|
361
- logger.debug("Deleting #{provider} #{name} property: #{property}")
362
- delete([ _plural, provider, name, property ])
363
- end
364
-
365
- #---
366
-
367
- logger.debug("Defining multi instance plugin interface method: search_#{_type}")
368
-
369
- define_method "search_#{_type}" do |provider, name, keys, default = '', format = false|
370
- plugin_config = send("#{_type}_config", provider, name)
371
- logger.debug("Searching #{_type} #{provider} #{name}: #{plugin_config.inspect}")
372
-
373
- search_object(plugin_config, keys, default, format)
374
- end
375
- end
376
- end
377
- end
378
- end
379
- end
380
- end
@@ -1,46 +0,0 @@
1
-
2
- # Should be included via include
3
- #
4
- # include Mixin::Settings
5
- #
6
-
7
- module CORL
8
- module Mixin
9
- module Settings
10
-
11
- def settings(name)
12
- return get_hash([ :settings, name ])
13
- end
14
-
15
- #---
16
-
17
- def set_settings(name, settings = {})
18
- return set([ :settings, name ], settings)
19
- end
20
-
21
- #---
22
-
23
- def delete_settings(name)
24
- return delete([ :settings, name ])
25
- end
26
-
27
- #---
28
-
29
- def setting(name, key, default = '', format = false)
30
- return get([ :settings, name, key ], default, format)
31
- end
32
-
33
- #---
34
-
35
- def set_setting(name, key, value = '')
36
- return set([ :settings, name, key ], value)
37
- end
38
-
39
- #---
40
-
41
- def delete_setting(name, key)
42
- return delete([ :settings, name, key ])
43
- end
44
- end
45
- end
46
- end
@@ -1,148 +0,0 @@
1
-
2
- # Should be included via include
3
- #
4
- # include Mixin::SubConfig
5
- #
6
-
7
- module CORL
8
- module Mixin
9
- module SubConfig
10
-
11
- #-----------------------------------------------------------------------------
12
- # Initialization
13
-
14
- def init_subconfig(reset = false)
15
- return if @subconfig_initialized && ! reset
16
-
17
- unless @config
18
- @config = Config.new
19
- end
20
-
21
- @subconfig_initialized = true
22
- end
23
- protected :init_subconfig
24
-
25
- #-----------------------------------------------------------------------------
26
- # Propety accessors / modifiers
27
-
28
- def config
29
- return @config
30
- end
31
-
32
- #---
33
-
34
- def config=config
35
- @config = config
36
- end
37
-
38
- #-----------------------------------------------------------------------------
39
-
40
- def _get(keys, default = nil, format = false)
41
- return fetch(@properties, array(keys).flatten, default, format)
42
- end
43
- protected :_get
44
-
45
- #---
46
-
47
- def get(keys, default = nil, format = false)
48
- init_subconfig
49
- return config.get(keys, default, format)
50
- end
51
-
52
- #---
53
-
54
- def _init(keys, default = nil)
55
- return _set(keys, _get(keys, default))
56
- end
57
- protected :_init
58
-
59
- #---
60
-
61
- def _set(keys, value = '')
62
- modify(@properties, array(keys).flatten, value)
63
- end
64
- protected :_set
65
-
66
- #---
67
-
68
- def set(keys, value = '')
69
- init_subconfig
70
- config.set(keys, value)
71
- end
72
-
73
- #---
74
-
75
- def _delete(keys, default = nil)
76
- existing = modify(@properties, array(keys).flatten, nil)
77
- return existing[:value] if existing[:value]
78
- return default
79
- end
80
- protected :_delete
81
-
82
- #---
83
-
84
- def delete(keys, default = nil)
85
- init_subconfig
86
- config.delete(keys, default)
87
- end
88
-
89
- #---
90
-
91
- def _clear
92
- @properties = {}
93
- end
94
- protected :_clear
95
-
96
- #---
97
-
98
- def clear
99
- init_subconfig
100
- config.clear
101
- end
102
-
103
- #-----------------------------------------------------------------------------
104
- # Import / Export
105
-
106
- def _import(properties, options = {})
107
- return import_base(properties, options)
108
- end
109
- protected :_import
110
-
111
- #---
112
-
113
- def import(properties, options = {})
114
- init_subconfig
115
- config.import(properties, options)
116
- end
117
-
118
- #---
119
-
120
- def _defaults(defaults, options = {})
121
- config = new(options).set(:import_type, :default)
122
- return import_base(defaults, config)
123
- end
124
- protected :_defaults
125
-
126
- #---
127
-
128
- def defaults(defaults, options = {})
129
- init_subconfig
130
- config.defaults(defaults, options)
131
- end
132
-
133
- #---
134
-
135
- def _export
136
- return @properties
137
- end
138
- protected :_export
139
-
140
- #---
141
-
142
- def export
143
- init_subconfig
144
- return config.export
145
- end
146
- end
147
- end
148
- end