Class: HammerCLIForeman::IdResolver
- Inherits:
-
Object
- Object
- HammerCLIForeman::IdResolver
- Defined in:
- lib/hammer_cli_foreman/id_resolver.rb
Instance Attribute Summary collapse
-
#api ⇒ Object
readonly
Returns the value of attribute api.
Instance Method Summary collapse
-
#initialize(api, searchables) ⇒ IdResolver
constructor
A new instance of IdResolver.
- #puppetclass_ids(options) ⇒ Object
- #scoped_options(scope, options, mode = nil) ⇒ Object
- #searchables(resource) ⇒ Object
Constructor Details
#initialize(api, searchables) ⇒ IdResolver
Returns a new instance of IdResolver.
81 82 83 84 85 |
# File 'lib/hammer_cli_foreman/id_resolver.rb', line 81 def initialize(api, searchables) @api = api @searchables = searchables define_id_finders end |
Instance Attribute Details
#api ⇒ Object (readonly)
Returns the value of attribute api.
79 80 81 |
# File 'lib/hammer_cli_foreman/id_resolver.rb', line 79 def api @api end |
Instance Method Details
#puppetclass_ids(options) ⇒ Object
118 119 120 |
# File 'lib/hammer_cli_foreman/id_resolver.rb', line 118 def puppetclass_ids() [HammerCLI.option_accessor_name("ids")] || find_puppetclasses().collect { |c| c['id'] } end |
#scoped_options(scope, options, mode = nil) ⇒ Object
88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
# File 'lib/hammer_cli_foreman/id_resolver.rb', line 88 def (scope, , mode = nil) = .dup resource = HammerCLIForeman.param_to_resource(scope) return unless resource option_names = [] if (mode.nil? || mode == :single) option_names << "id" option_names += searchables(resource).map { |s| s.name } end if (mode.nil? || mode == :multi) option_names << "ids" option_names += searchables(resource).map { |s| s.plural_name } end option_names.each do |name| option = HammerCLI.option_accessor_name(name) scoped_option = HammerCLI.option_accessor_name("#{scope}_#{name}") # remove the scope # e.g. option_architecture_id -> option_id if [scoped_option] [option] = .delete(scoped_option) else .delete(option) end end end |
#searchables(resource) ⇒ Object
122 123 124 125 |
# File 'lib/hammer_cli_foreman/id_resolver.rb', line 122 def searchables(resource) resource = @api.resource(resource) if resource.is_a? Symbol @searchables.for(resource) end |