Class: VagrantBindfs::Bindfs::OptionSet
- Inherits:
-
Object
- Object
- VagrantBindfs::Bindfs::OptionSet
- Extended by:
- Forwardable
- Includes:
- Enumerable
- Defined in:
- lib/vagrant-bindfs/bindfs/option_set.rb
Instance Attribute Summary collapse
-
#invalid_options ⇒ Object
readonly
Returns the value of attribute invalid_options.
-
#options ⇒ Object
readonly
Returns the value of attribute options.
-
#unsupported_options ⇒ Object
readonly
Returns the value of attribute unsupported_options.
-
#version ⇒ Object
readonly
Returns the value of attribute version.
Class Method Summary collapse
- .bindfs_options ⇒ Object
- .compatible_name_for_version(option_name, version) ⇒ Object
- .supported_options(version) ⇒ Object
Instance Method Summary collapse
-
#initialize(version = nil, options = {}) ⇒ OptionSet
constructor
A new instance of OptionSet.
- #merge(other) ⇒ Object
- #merge!(other) ⇒ Object
- #to_version(new_version) ⇒ Object
Constructor Details
#initialize(version = nil, options = {}) ⇒ OptionSet
Returns a new instance of OptionSet.
17 18 19 20 21 22 23 24 25 |
# File 'lib/vagrant-bindfs/bindfs/option_set.rb', line 17 def initialize(version = nil, = {}) @version = version @options = normalize_option_names() @invalid_options = {} @unsupported_options = {} end |
Instance Attribute Details
#invalid_options ⇒ Object (readonly)
Returns the value of attribute invalid_options.
8 9 10 |
# File 'lib/vagrant-bindfs/bindfs/option_set.rb', line 8 def @invalid_options end |
#options ⇒ Object (readonly)
Returns the value of attribute options.
7 8 9 |
# File 'lib/vagrant-bindfs/bindfs/option_set.rb', line 7 def @options end |
#unsupported_options ⇒ Object (readonly)
Returns the value of attribute unsupported_options.
9 10 11 |
# File 'lib/vagrant-bindfs/bindfs/option_set.rb', line 9 def @unsupported_options end |
#version ⇒ Object (readonly)
Returns the value of attribute version.
5 6 7 |
# File 'lib/vagrant-bindfs/bindfs/option_set.rb', line 5 def version @version end |
Class Method Details
.bindfs_options ⇒ Object
80 81 82 |
# File 'lib/vagrant-bindfs/bindfs/option_set.rb', line 80 def @bindfs_options ||= JSON.parse(File.read(File.('../option_definitions.json', __FILE__))) end |
.compatible_name_for_version(option_name, version) ⇒ Object
91 92 93 94 95 |
# File 'lib/vagrant-bindfs/bindfs/option_set.rb', line 91 def compatible_name_for_version(option_name, version) return 'user' if option_name == 'force-user' && version_lower_than(version, '1.12') return 'group' if option_name == 'force-group' && version_lower_than(version, '1.12') option_name end |
.supported_options(version) ⇒ Object
84 85 86 87 88 89 |
# File 'lib/vagrant-bindfs/bindfs/option_set.rb', line 84 def (version) .each_with_object({}) do |(name, definition), supported| supported[name] = definition if version.nil? || !version_lower_than(version, definition['since']) supported end end |
Instance Method Details
#merge(other) ⇒ Object
34 35 36 |
# File 'lib/vagrant-bindfs/bindfs/option_set.rb', line 34 def merge(other) dup.tap { |result| result.merge!(other) } end |
#merge!(other) ⇒ Object
27 28 29 30 31 32 |
# File 'lib/vagrant-bindfs/bindfs/option_set.rb', line 27 def merge!(other) other = other.to_version(version) if other.respond_to?(:to_version) @options.merge!(normalize_option_names(other)) end |
#to_version(new_version) ⇒ Object
38 39 40 |
# File 'lib/vagrant-bindfs/bindfs/option_set.rb', line 38 def to_version(new_version) self.class.new(new_version, @options.merge().merge()) end |