Class: Mixlib::Install::Options
- Inherits:
-
Object
- Object
- Mixlib::Install::Options
- Defined in:
- lib/mixlib/install/options.rb
Defined Under Namespace
Classes: InvalidOptions
Constant Summary collapse
- SUPPORTED_ARCHITECTURES =
%w{ i386 powerpc ppc64 ppc64le s390x sparc x86_64 }
- SUPPORTED_CHANNELS =
[ :stable, :current, :unstable, ]
- SUPPORTED_PRODUCT_NAMES =
PRODUCT_MATRIX.products
- SUPPORTED_SHELL_TYPES =
[ :ps1, :sh, ]
- SUPPORTED_OPTIONS =
[ :architecture, :channel, :platform, :platform_version, :product_name, :product_version, :shell_type, :platform_version_compatibility_mode, :include_metadata, :user_agent_headers, :install_command_options, ]
- SUPPORTED_WINDOWS_DESKTOP_VERSIONS =
%w{7 8 8.1 10}
- SUPPORTED_WINDOWS_NANO_VERSIONS =
%w{2016nano}
Instance Attribute Summary collapse
-
#errors ⇒ Object
readonly
Returns the value of attribute errors.
-
#options ⇒ Object
readonly
Returns the value of attribute options.
-
#original_platform_version ⇒ Object
readonly
Returns the value of attribute original_platform_version.
Instance Method Summary collapse
- #for_ps1? ⇒ Boolean (also: #for_windows?)
- #include_metadata? ⇒ Boolean
-
#initialize(options) ⇒ Options
constructor
A new instance of Options.
- #latest_version? ⇒ Boolean
- #partial_version? ⇒ Boolean
- #platform_info ⇒ Object
-
#resolve_platform_version_compatibility_mode! ⇒ Object
Calling this method will give queries more of an opportunity to collect compatible artifacts where there may not always be an exact match.
-
#set_platform_info(info) ⇒ Object
Set the platform info on the instance info [Hash] Hash with keys :platform, :platform_version and :architecture.
- #validate! ⇒ Object
- #validate_options! ⇒ Object
Constructor Details
#initialize(options) ⇒ Options
Returns a new instance of Options.
70 71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/mixlib/install/options.rb', line 70 def initialize() @options = @errors = [] # Store original options in cases where we must remap @original_platform_version = [:platform_version] resolve_platform_version_compatibility_mode! map_windows_versions! validate! end |
Instance Attribute Details
#errors ⇒ Object (readonly)
Returns the value of attribute errors.
28 29 30 |
# File 'lib/mixlib/install/options.rb', line 28 def errors @errors end |
#options ⇒ Object (readonly)
Returns the value of attribute options.
28 29 30 |
# File 'lib/mixlib/install/options.rb', line 28 def @options end |
#original_platform_version ⇒ Object (readonly)
Returns the value of attribute original_platform_version.
28 29 30 |
# File 'lib/mixlib/install/options.rb', line 28 def original_platform_version @original_platform_version end |
Instance Method Details
#for_ps1? ⇒ Boolean Also known as: for_windows?
105 106 107 |
# File 'lib/mixlib/install/options.rb', line 105 def for_ps1? platform == "windows" || shell_type == :ps1 end |
#include_metadata? ⇒ Boolean
118 119 120 |
# File 'lib/mixlib/install/options.rb', line 118 def .to_s == "true" end |
#latest_version? ⇒ Boolean
110 111 112 |
# File 'lib/mixlib/install/options.rb', line 110 def latest_version? product_version.to_sym == :latest end |
#partial_version? ⇒ Boolean
114 115 116 |
# File 'lib/mixlib/install/options.rb', line 114 def partial_version? !latest_version? && !Mixlib::Versioning.parse(product_version) end |
#platform_info ⇒ Object
135 136 137 138 139 140 141 |
# File 'lib/mixlib/install/options.rb', line 135 def platform_info { platform: [:platform], platform_version: [:platform_version], architecture: [:architecture], } end |
#resolve_platform_version_compatibility_mode! ⇒ Object
Calling this method will give queries more of an opportunity to collect compatible artifacts where there may not always be an exact match.
This option is set to false by default.
-
In cases where no platform options are configured it will set this option to true.
-
In cases where all platform options are configured it will remain false UNLESS the option has been configured to be true.
152 153 154 155 156 |
# File 'lib/mixlib/install/options.rb', line 152 def resolve_platform_version_compatibility_mode! unless [:platform_version_compatibility_mode] [:platform_version_compatibility_mode] = true if platform_info.values.none? end end |
#set_platform_info(info) ⇒ Object
Set the platform info on the instance info [Hash]
Hash with keys :platform, :platform_version and :architecture
127 128 129 130 131 132 133 |
# File 'lib/mixlib/install/options.rb', line 127 def set_platform_info(info) [:platform] = info[:platform] [:platform_version] = info[:platform_version] [:architecture] = info[:architecture] end |
#validate! ⇒ Object
90 91 92 |
# File 'lib/mixlib/install/options.rb', line 90 def validate! end |
#validate_options! ⇒ Object
94 95 96 97 98 99 100 101 102 103 |
# File 'lib/mixlib/install/options.rb', line 94 def validate_architecture validate_product_names validate_channels validate_shell_type validate_user_agent_headers raise InvalidOptions, errors.join("\n") unless errors.empty? end |