Module: Puppet::Interface::OptionManager
- Included in:
- Puppet::Interface, Puppet::Interface
- Defined in:
- lib/puppet/interface/option_manager.rb
Overview
Instance Method Summary collapse
- #add_option(option) ⇒ Object private
- #all_display_global_options ⇒ Object
- #display_global_options(*args) ⇒ Object (also: #display_global_option) private
- #get_option(name, with_inherited_options = true) ⇒ Object private
-
#option(*declaration, &block) ⇒ Object
Declare that this app can take a specific option, and provide the code to do so.
- #option?(name) ⇒ Boolean private
- #options ⇒ Object private
- #walk_inheritance_tree(start, sym) ⇒ Object private
Instance Method Details
#add_option(option) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'lib/puppet/interface/option_manager.rb', line 51 def add_option(option) # @options collects the added options in the order they're declared. # @options_hash collects the options keyed by alias for quick lookups. @options ||= [] @options_hash ||= {} option.aliases.each do |name| conflict = get_option(name) if conflict raise ArgumentError, _("Option %{option} conflicts with existing option %{conflict}") % { option: option, conflict: conflict } end actions.each do |action| action = get_action(action) conflict = action.get_option(name) if conflict raise ArgumentError, _("Option %{option} conflicts with existing option %{conflict} on %{action}") % { option: option, conflict: conflict, action: action } end end end @options << option.name option.aliases.each do |name| @options_hash[name] = option end option end |
#all_display_global_options ⇒ Object
25 26 27 |
# File 'lib/puppet/interface/option_manager.rb', line 25 def walk_inheritance_tree(@display_global_options, :all_display_global_options) end |
#display_global_options(*args) ⇒ Object Also known as: display_global_option
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/puppet/interface/option_manager.rb', line 10 def (*args) @display_global_options ||= [] [args].flatten.each do |refopt| unless Puppet.settings.include?(refopt) # TRANSLATORS 'Puppet.settings' references to the Puppet settings options and should not be translated raise ArgumentError, _("Global option %{option} does not exist in Puppet.settings") % { option: refopt } end @display_global_options << refopt if refopt end @display_global_options.uniq! @display_global_options end |
#get_option(name, with_inherited_options = true) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
# File 'lib/puppet/interface/option_manager.rb', line 89 def get_option(name, = true) @options_hash ||= {} result = @options_hash[name.to_sym] if result.nil? and then if is_a?(Class) and superclass.respond_to?(:get_option) result = superclass.get_option(name) elsif self.class.respond_to?(:get_option) result = self.class.get_option(name) end end result end |
#option(*declaration, &block) ⇒ Object
Declare that this app can take a specific option, and provide the code to do so. See ActionBuilder#option for details.
46 47 48 |
# File 'lib/puppet/interface/option_manager.rb', line 46 def option(*declaration, &block) add_option Puppet::Interface::OptionBuilder.build(self, *declaration, &block) end |
#option?(name) ⇒ Boolean
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
105 106 107 |
# File 'lib/puppet/interface/option_manager.rb', line 105 def option?(name) .include? name.to_sym end |
#options ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
84 85 86 |
# File 'lib/puppet/interface/option_manager.rb', line 84 def walk_inheritance_tree(@options, :options) end |
#walk_inheritance_tree(start, sym) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
30 31 32 33 34 35 36 37 38 |
# File 'lib/puppet/interface/option_manager.rb', line 30 def walk_inheritance_tree(start, sym) result = start || [] if is_a?(Class) and superclass.respond_to?(sym) result = superclass.send(sym) + result elsif self.class.respond_to?(sym) result = self.class.send(sym) + result end result end |