Class: Mixlib::Install::Generator::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/mixlib/install/generator/base.rb

Direct Known Subclasses

Bourne, PowerShell

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ Base

Returns a new instance of Base.



28
29
30
# File 'lib/mixlib/install/generator/base.rb', line 28

def initialize(options)
  @options = options
end

Instance Attribute Details

#optionsObject (readonly)

Returns the value of attribute options.



26
27
28
# File 'lib/mixlib/install/generator/base.rb', line 26

def options
  @options
end

Class Method Details

.get_script(name, context = {}) ⇒ Object

Gets the contents of the given script.



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/mixlib/install/generator/base.rb', line 43

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 returnt the contents of the script
  if File.exist? "#{script_path}.erb"
    # Default values to use incase they are not set in the context
    context[:base_url] ||= "https://omnitruck.chef.io"
    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

.script_base_pathObject

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



36
37
38
# File 'lib/mixlib/install/generator/base.rb', line 36

def self.script_base_path
  raise "You must define a script_base_path for your Generator::Base class."
end

Instance Method Details

#get_script(name, context = {}) ⇒ Object



60
61
62
# File 'lib/mixlib/install/generator/base.rb', line 60

def get_script(name, context = {})
  self.class.get_script(name, context)
end