class Lono::Configset::Strategy::Base
Public Class Methods
new(options={})
click to toggle source
# 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
Public Instance Methods
build()
click to toggle source
# File lib/lono/configset/strategy/base.rb, line 36 def build @evaluation_path = find_evaluation_path # implemented by subclass copy_instance_variables load_configset_helpers init = load # implemented by subclass finish_full_structure(init) end
copy_instance_variables()
click to toggle source
# 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)
click to toggle source
# 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 # only on dsl full.deep_stringify_keys! end
load_blueprint_predefined_variables()
click to toggle source
# File lib/lono/configset/strategy/base.rb, line 57 def load_blueprint_predefined_variables evaluate_file("#{@root}/lib/variables.rb") end
load_configset_helpers()
click to toggle source
# 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 } # load possible namespaces first 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()
click to toggle source
# File lib/lono/configset/strategy/base.rb, line 61 def load_project_predefined_variables paths = [ "#{Lono.root}/configs/#{@blueprint}/configsets/variables.rb", # global "#{Lono.root}/configs/#{@blueprint}/configsets/variables/#{@configset}.rb", # configset specific ] paths.each do |path| evaluate_file(path) end end