Class: Lono::Configset::Strategy::Dsl

Inherits:
Base
  • Object
show all
Includes:
Helpers::Dsl
Defined in:
lib/lono/configset/strategy/dsl.rb

Constant Summary

Constants included from Template::Strategy::Dsl::Builder::Fn

Template::Strategy::Dsl::Builder::Fn::FUNCTIONS

Instance Method Summary collapse

Methods included from Helpers::Dsl::Syntax

#command, #configset, #source

Methods included from Helpers::Dsl::Package

#gem_package, #yum_package

Methods included from Lono::Core

#blueprint_root, #blueprint_root=, #config, #env, #lono_pro_installed?, #lono_pro_removal_check!, #root, #set_aws_profile!, #settings

Methods included from Helpers::Dsl::Auth

#authentication, #authentication_reader, #authentication_setter

Methods inherited from Base

#build, #copy_instance_variables, #finish_full_structure, #load_blueprint_predefined_variables, #load_configset_helpers, #load_project_predefined_variables

Methods included from Template::Strategy::Dsl::Builder::Fn

#conditional_ref, define_methods, #fn, #fn_id, #get_att, #get_azs, included, #join, #ref, #sub

Methods included from Template::Strategy::Common::Helpers

#extract_scripts, #scripts_name, #scripts_s3_path, #setting

Methods included from EvaluateFile

#evaluate_file

Constructor Details

#initialize(options = {}) ⇒ Dsl

Returns a new instance of Dsl.



6
7
8
9
10
11
12
13
14
# File 'lib/lono/configset/strategy/dsl.rb', line 6

def initialize(options={})
  super
  @structure = {} # holds in memory the configset hash structure to build AWS::CloudFormation::Init
  @current = "main" # current configset
  @command_counts = Hash.new(0)
  @tracked = []
  # Also support ability to add AWS::CloudFormation::Authentication
  @authentication = nil # holds IAM policy info to build AWS::CloudFormation::Authentication
end

Instance Method Details

#find_evaluation_pathObject



16
17
18
# File 'lib/lono/configset/strategy/dsl.rb', line 16

def find_evaluation_path
  "#{@root}/lib/configset.rb"
end

#loadObject



20
21
22
23
24
25
26
27
# File 'lib/lono/configset/strategy/dsl.rb', line 20

def load
  evaluate_file(@evaluation_path)
  configsets = @configsets || @tracked.uniq
  configsets = ["main"] if configsets.empty?
  configsets_structure = {"configSets" => {"default" => configsets}}.merge(@structure)
  full = { "AWS::CloudFormation::Init" => configsets_structure }
  full.deep_stringify_keys!
end