class HammerCLIForeman::OptionSources::IdsParams

Public Class Methods

new(command) click to toggle source
# File lib/hammer_cli_foreman/option_sources/ids_params.rb, line 4
def initialize(command)
  @command = command
end

Public Instance Methods

available_ids_params() click to toggle source
# File lib/hammer_cli_foreman/option_sources/ids_params.rb, line 12
def available_ids_params
  IdArrayParamsFilter.new(:only_required => false).for_action(@command.resource.action(@command.action))
end
get_options(defined_options, result) click to toggle source
# File lib/hammer_cli_foreman/option_sources/ids_params.rb, line 16
def get_options(defined_options, result)
  return result if @command.action.nil?
  # resolve all '<resource_name>_ids' parameters if they are defined as options
  available_ids_params.each do |api_param|
    param_resource = HammerCLIForeman.param_to_resource(api_param.name)
    if result[HammerCLI.option_accessor_name(api_param.name)].nil? && param_updatable?(param_resource)
      resource_ids = @command.get_resource_ids(param_resource, :scoped => true, :required => api_param.required?, :all_options => result)
      result[HammerCLI.option_accessor_name(api_param.name)] = resource_ids if resource_ids
    end
  end
  result
end
param_updatable?(param_resource) click to toggle source
# File lib/hammer_cli_foreman/option_sources/ids_params.rb, line 8
def param_updatable?(param_resource)
  param_resource && @command.respond_to?(HammerCLI.option_accessor_name("#{param_resource.singular_name}_ids"))
end