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.
- #install_sh_from_upstream ⇒ Object
Constructor Details
#initialize(options) ⇒ Base
Returns a new instance of Base.
30 31 32 |
# File 'lib/mixlib/install/generator/base.rb', line 30 def initialize() @options = end |
Instance Attribute Details
#options ⇒ Object (readonly)
Returns the value of attribute options.
28 29 30 |
# File 'lib/mixlib/install/generator/base.rb', line 28 def @options end |
Class Method Details
.get_script(name, context = {}) ⇒ Object
Gets the contents of the given script.
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/mixlib/install/generator/base.rb', line 45 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 |
.script_base_path ⇒ Object
Returns the base path where the script fragments are located for the generator as a String.
38 39 40 |
# File 'lib/mixlib/install/generator/base.rb', line 38 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
69 70 71 |
# File 'lib/mixlib/install/generator/base.rb', line 69 def get_script(name, context = {}) self.class.get_script(name, context) end |
#install_sh_from_upstream ⇒ Object
73 74 75 76 77 78 79 80 81 82 |
# File 'lib/mixlib/install/generator/base.rb', line 73 def install_sh_from_upstream uri = URI.parse(.[:new_omnibus_download_url]) response = Net::HTTP.get_response(uri) if response.code == "200" response.body else raise StandardError, "unable to fetch the install.sh" end end |