cfhighlander 0.8.1 → 0.8.2.alpha.1551064496

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3a2517ba474a565383bc6a0c921b2c2d2c8aa06b5e8735853d094526a3ef2edf
4
- data.tar.gz: 38204d0c32c8523012edacfbc3f1a6fbb505372bc3499f8c44693d58e23ec66a
3
+ metadata.gz: cce94745ecdb8897540bd384b79990b1ababcdea8667a2ae3d58f62487ba4716
4
+ data.tar.gz: 74596ee2a94bcdb39bf42f2f38862cb3b7559a0d6c323c723e637bcbbac60f5a
5
5
  SHA512:
6
- metadata.gz: 869a4178746a2a272bee3bbe051ba7379843d9fb566dbc468fbc04c2ffa0183fba8e5c486b4b15dffa05800631ebb559fa4e724182f7864e7b1596ce25fca40f
7
- data.tar.gz: cb64b5d7d59f43241c53b669c3acbe484abf563dc5d03f5fd18777313b14f65e316f9b9db9733064ecb02e6913be66a5b82dd742bf670ebcaab9b0c7e38d7cd9
6
+ metadata.gz: eb58ace4d06a009ef0e12d6d2236d36870fecfedeef2afca72420be783d3d4fdd50feba6d3180ab182663122204c1f5afd59e623b3d5bea7e26504bdaa54d232
7
+ data.tar.gz: c79f3f89b9988b7f674d32c578d8173f551126724df2e3419e4176f58dc1a664a7cf49b7c5f46689d272ecb1675b07b47769221461fa7d33c6cd0a9d3f53227d
@@ -0,0 +1,34 @@
1
+ require_relative '../hl_ext/common_helper'
2
+
3
+ module Cfhighlander
4
+
5
+ module Config
6
+
7
+ class Loader
8
+ # creates top-level component configuration
9
+ # for component.subcomponent.subsubcomponent.....config.yaml
10
+ # configuration file
11
+ # method allows for N-level configuration (no limitation on level)
12
+ # parameters
13
+ # component_location: component in hierarchy e.g. app.db.rds
14
+ # config: actual component configuration
15
+ def get_nested_config(component_location, config)
16
+ parts = component_location.split('.')
17
+ i = 0
18
+ current_config = Hash.new
19
+ rval = current_config
20
+ while i < parts.size
21
+ current_config['components'] = Hash.new
22
+ component_name = parts[i]
23
+ current_config['components'][component_name] = { 'config' => Hash.new }
24
+ current_config = current_config['components'][component_name]['config']
25
+ i = i+1
26
+ end
27
+ current_config.extend config
28
+ return rval
29
+ end
30
+
31
+ end
32
+
33
+ end
34
+ end
@@ -11,6 +11,7 @@ Dir["#{extensions_folder}/*.rb"].each {|f|
11
11
  require_relative './cfhighlander.dsl.base'
12
12
  require_relative './cfhighlander.dsl.params'
13
13
  require_relative './cfhighlander.dsl.subcomponent'
14
+ require_relative './cfhighlander.config.loader'
14
15
 
15
16
  module Cfhighlander
16
17
 
@@ -486,10 +487,13 @@ def CfhighlanderTemplate(&block)
486
487
  end
487
488
 
488
489
  # process convention over configuration componentname.config.yaml files
490
+ config_loader = Cfhighlander::Config::Loader.new
491
+
489
492
  @potential_subcomponent_overrides.each do |name, config|
490
493
 
491
494
  # if there is component with given file name
492
- if (not instance.subcomponents.find {|s| s.name == name}.nil?)
495
+ first_component = name.split('.').first
496
+ if (not instance.subcomponents.find { |s| s.name == first_component }.nil?)
493
497
  instance.config['components'] = {} unless instance.config.key? 'components'
494
498
  instance.config['components'][name] = {} unless instance.config['components'].key? name
495
499
  instance.config['components'][name]['config'] = {} unless instance.config['components'][name].key? 'config'
@@ -503,8 +507,7 @@ def CfhighlanderTemplate(&block)
503
507
  end
504
508
  end
505
509
  end
506
-
507
- instance.config['components'][name]['config'].extend config
510
+ instance.config.extend(config_loader.get_nested_config(name, config))
508
511
  end
509
512
  end
510
513
 
@@ -1,3 +1,3 @@
1
1
  module Cfhighlander
2
- VERSION="0.8.1".freeze
2
+ VERSION="0.8.2".freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cfhighlander
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.1
4
+ version: 0.8.2.alpha.1551064496
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nikola Tosic
@@ -262,6 +262,7 @@ files:
262
262
  - hl_ext/mapping_helper.rb
263
263
  - hl_ext/vpc.rb
264
264
  - lib/cfhighlander.compiler.rb
265
+ - lib/cfhighlander.config.loader.rb
265
266
  - lib/cfhighlander.dsl.base.rb
266
267
  - lib/cfhighlander.dsl.params.rb
267
268
  - lib/cfhighlander.dsl.subcomponent.rb
@@ -296,9 +297,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
296
297
  version: '0'
297
298
  required_rubygems_version: !ruby/object:Gem::Requirement
298
299
  requirements:
299
- - - ">="
300
+ - - ">"
300
301
  - !ruby/object:Gem::Version
301
- version: '0'
302
+ version: 1.3.1
302
303
  requirements: []
303
304
  rubygems_version: 3.0.2
304
305
  signing_key: