Class: Lono::UserData

Inherits:
AbstractBase show all
Defined in:
lib/lono/user_data.rb

Overview

This class is not use by lono internally. It is really only meant to be exposed to the lono userdata command so users can debug their generated app/user_data scripts. It is useful for debugging.

Normally, the Lono::Erb#run method generates the CloudFormation templates and embeds user-data script into the template.

Instance Method Summary collapse

Methods inherited from AbstractBase

#reinitialize, #template_path

Methods included from Blueprint::Root

#find_blueprint_root, #set_blueprint_root

Constructor Details

#initialize(options = {}) ⇒ UserData

Returns a new instance of UserData.



9
10
11
12
13
# File 'lib/lono/user_data.rb', line 9

def initialize(options={})
  super
  @name = options[:name]
  @path = "#{Lono.root}/app/user_data/#{@name}.sh"
end

Instance Method Details

#contextObject

Context for ERB rendering. This is where we control what references get passed to the ERB rendering.



27
28
29
# File 'lib/lono/user_data.rb', line 27

def context
  @context ||= Lono::Template::Context.new(@options)
end

#generateObject



15
16
17
18
19
20
21
22
23
# File 'lib/lono/user_data.rb', line 15

def generate
  puts "Generating user_data for '#{@name}' at #{@path}"
  if File.exist?(@path)
    puts RenderMePretty.result(@path, context: context)
  else
    puts "ERROR: #{@path} does not exist".color(:red)
    exit 1
  end
end