Class: Mixlib::Install::Generator::Base
- Inherits:
-
Object
- Object
- Mixlib::Install::Generator::Base
- Defined in:
- lib/mixlib/install/generator/base.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#options ⇒ Object
readonly
Returns the value of attribute options.
Class Method Summary collapse
-
.get_script(name, context = {}) ⇒ Object
Gets the contents of the given script.
-
.script_base_path ⇒ Object
Returns the base path where the script fragments are located for the generator as a String.
Instance Method Summary collapse
- #get_script(name, context = {}) ⇒ Object
-
#initialize(options) ⇒ Base
constructor
A new instance of Base.
Constructor Details
#initialize(options) ⇒ Base
Returns a new instance of Base.
29 30 31 |
# File 'lib/mixlib/install/generator/base.rb', line 29 def initialize() = end |
Instance Attribute Details
#options ⇒ Object (readonly)
Returns the value of attribute options.
27 28 29 |
# File 'lib/mixlib/install/generator/base.rb', line 27 def end |
Class Method Details
.get_script(name, context = {}) ⇒ Object
Gets the contents of the given script.
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# 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[: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] ||= context[:default_product].casecmp("chef-ice") == 0 ? Mixlib::Install::Dist::HABITAT_WINDOWS_INSTALL_DIR.freeze : Mixlib::Install::Dist::OMNIBUS_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 |
.script_base_path ⇒ Object
Returns the base path where the script fragments are located for the generator as a String.
37 38 39 |
# 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 |
Instance Method Details
#get_script(name, context = {}) ⇒ Object
67 68 69 |
# File 'lib/mixlib/install/generator/base.rb', line 67 def get_script(name, context = {}) self.class.get_script(name, context) end |