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.
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/puppet/interface/option_manager.rb', line 46 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| if conflict = get_option(name) then raise ArgumentError, "Option #{option} conflicts with existing option #{conflict}" end actions.each do |action| action = get_action(action) if conflict = action.get_option(name) then raise ArgumentError, "Option #{option} conflicts with existing option #{conflict} on #{action}" end end end @options << option.name option.aliases.each do |name| @options_hash[name] = option end return option end |
#all_display_global_options ⇒ Object
20 21 22 |
# File 'lib/puppet/interface/option_manager.rb', line 20 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.
9 10 11 12 13 14 15 16 17 |
# File 'lib/puppet/interface/option_manager.rb', line 9 def (*args) @display_global_options ||= [] [args].flatten.each do |refopt| raise ArgumentError, "Global option #{refopt} does not exist in Puppet.settings" unless Puppet.settings.include? refopt @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.
80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/puppet/interface/option_manager.rb', line 80 def get_option(name, = true) @options_hash ||= {} result = @options_hash[name.to_sym] if result.nil? and then if self.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 return 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.
41 42 43 |
# File 'lib/puppet/interface/option_manager.rb', line 41 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.
96 97 98 |
# File 'lib/puppet/interface/option_manager.rb', line 96 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.
75 76 77 |
# File 'lib/puppet/interface/option_manager.rb', line 75 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.
25 26 27 28 29 30 31 32 33 |
# File 'lib/puppet/interface/option_manager.rb', line 25 def walk_inheritance_tree(start, sym) result = (start ||= []) if self.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 return result end |