class Mixlib::Install::Generator::Base

Attributes

options[R]

Public Class Methods

get_script(name, context = {}) click to toggle source

Gets the contents of the given script.

# File lib/mixlib/install/generator/base.rb, line 44
def self.get_script(name, context = {})
  script_path = File.join(script_base_path, name)

  # If there is an erb template we render it, otherwise we just read
  # and return the contents of the script
  if File.exist? "#{script_path}.erb"
    # Default values to use incase they are not set in the context
    context[:project_name] ||= Mixlib::Install::Dist::PROJECT_NAME.freeze
    context[:base_url] ||= Mixlib::Install::Dist::OMNITRUCK_ENDPOINT.freeze
    context[:default_product] ||= Mixlib::Install::Dist::DEFAULT_PRODUCT.freeze
    context[:bug_url] ||= Mixlib::Install::Dist::BUG_URL.freeze
    context[:support_url] ||= Mixlib::Install::Dist::SUPPORT_URL.freeze
    context[:resources_url] ||= Mixlib::Install::Dist::RESOURCES_URL.freeze
    context[:macos_dir] ||= Mixlib::Install::Dist::MACOS_VOLUME.freeze
    context[:windows_dir] ||= Mixlib::Install::Dist::WINDOWS_INSTALL_DIR.freeze
    context[:user_agent_string] = Util.user_agent_string(context[:user_agent_headers])

    context_object = OpenStruct.new(context).instance_eval { binding }
    ERB.new(File.read("#{script_path}.erb")).result(context_object)
  else
    File.read(script_path)
  end
end
new(options) click to toggle source
# File lib/mixlib/install/generator/base.rb, line 29
def initialize(options)
  @options = options
end
script_base_path() click to toggle source

Returns the base path where the script fragments are located for the generator as a String.

# File lib/mixlib/install/generator/base.rb, line 37
def self.script_base_path
  raise "You must define a script_base_path for your Generator::Base class."
end

Public Instance Methods

get_script(name, context = {}) click to toggle source
# File lib/mixlib/install/generator/base.rb, line 68
def get_script(name, context = {})
  self.class.get_script(name, context)
end