Sha256: 5a83fe06d61c848aec8b325fb4b088512c28b3d8a1ad5a519deba1f9fa4122d1
Contents?: true
Size: 1.18 KB
Versions: 4
Compression:
Stored size: 1.18 KB
Contents
class Lono::Builder::Dsl class Evaluator < Lono::CLI::Base include DslEvaluator include Lono::Builder::Context include Lono::Builder::Dsl::Syntax include Lono::Utils::Pretty def initialize(options={}) super @template_path = "#{@blueprint.root}/template.rb" @parameters = [] # built by parameter_groups.rb @cfn = {} end def evaluate load_context evaluate_template_paths(@template_path) # modifies @cfn finalize to_yaml @cfn end def finalize o = @options.merge(parameters: @parameters) @cfn = Finalizer.new(@cfn, o).run end def to_yaml # https://stackoverflow.com/questions/24508364/how-to-emit-yaml-in-ruby-expanding-aliases # Trick to prevent YAML from emitting aliases @cfn = YAML.load(@cfn.to_json) end # Example path: /full/path/to/project/app/blueprints/demo/template.rb def evaluate_template_paths(path) ext = File.extname(path) folder = path.sub(ext, '') expr = "#{folder}/**/*.rb" evaluate_file(path) # process top-level template.rb first Dir.glob(expr).each do |path| evaluate_file(path) end end end end
Version data entries
4 entries across 4 versions & 1 rubygems