Class: Lono::Configset::Strategy::Base
Direct Known Subclasses
Dsl, Erb
Constant Summary
Template::Strategy::Dsl::Builder::Fn::FUNCTIONS
Instance Method Summary
collapse
#conditional_ref, define_methods, #fn, #fn_id, #get_att, #get_azs, included, #join, #ref, #sub
#extract_scripts, #scripts_name, #scripts_s3_path, #setting
#evaluate_file
Constructor Details
#initialize(options = {}) ⇒ Base
Returns a new instance of Base.
28
29
30
31
32
33
34
|
# File 'lib/lono/configset/strategy/base.rb', line 28
def initialize(options={})
@options = options
@configset = options[:configset]
@root = options[:root]
@resource = options[:resource] || "FakeResource"
@blueprint = Lono::Conventions.new(options).blueprint
end
|
Instance Method Details
#build ⇒ Object
36
37
38
39
40
41
42
|
# File 'lib/lono/configset/strategy/base.rb', line 36
def build
@evaluation_path = find_evaluation_path
copy_instance_variables
load_configset_helpers
init = load
finish_full_structure(init)
end
|
#copy_instance_variables ⇒ Object
52
53
54
55
|
# File 'lib/lono/configset/strategy/base.rb', line 52
def copy_instance_variables
load_blueprint_predefined_variables
load_project_predefined_variables
end
|
#finish_full_structure(init) ⇒ Object
45
46
47
48
49
50
|
# File 'lib/lono/configset/strategy/base.rb', line 45
def finish_full_structure(init)
full = {"Metadata" => {}}
full["Metadata"]["AWS::CloudFormation::Init"] = init["AWS::CloudFormation::Init"]
full["Metadata"]["AWS::CloudFormation::Authentication"] = authentication if authentication
full.deep_stringify_keys!
end
|
#load_blueprint_predefined_variables ⇒ Object
57
58
59
|
# File 'lib/lono/configset/strategy/base.rb', line 57
def load_blueprint_predefined_variables
evaluate_file("#{@root}/lib/variables.rb")
end
|
#load_configset_helpers ⇒ Object
71
72
73
74
75
76
77
78
79
80
81
|
# File 'lib/lono/configset/strategy/base.rb', line 71
def load_configset_helpers
paths = Dir.glob("#{@root}/lib/helpers/**/*.rb")
paths.sort_by! { |p| p.size }
paths.each do |path|
filename = path.sub(%r{.*/lib/helpers/},'').sub('.rb','')
module_name = filename.camelize
require path
self.class.send :include, module_name.constantize
end
end
|
#load_project_predefined_variables ⇒ Object
61
62
63
64
65
66
67
68
69
|
# File 'lib/lono/configset/strategy/base.rb', line 61
def load_project_predefined_variables
paths = [
"#{Lono.root}/configs/#{@blueprint}/configsets/variables.rb",
"#{Lono.root}/configs/#{@blueprint}/configsets/variables/#{@configset}.rb",
]
paths.each do |path|
evaluate_file(path)
end
end
|