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.



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

def initialize(options)
  @options = options
end

Instance Attribute Details

#optionsObject (readonly)

Returns the value of attribute options.



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

def options
  @options
end

Class Method Details

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

Gets the contents of the given script.



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

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_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.



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

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



58
59
60
# File 'lib/mixlib/install/generator/base.rb', line 58

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