Sha256: c3153b344ad561676b90824d81acee64a9b18aa101a7569e9f67906fd42257ad

Contents?: true

Size: 1.16 KB

Versions: 9

Compression:

Stored size: 1.16 KB

Contents

module HammerCLIForeman
  module OptionSources
    class IdsParams
      def initialize(command)
        @command = command
      end

      def param_updatable?(param_resource)
        param_resource && @command.respond_to?(HammerCLI.option_accessor_name("#{param_resource.singular_name}_ids"))
      end

      def available_ids_params
        IdArrayParamsFilter.new(:only_required => false).for_action(@command.resource.action(@command.action))
      end

      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
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
hammer_cli_foreman-0.15.2 lib/hammer_cli_foreman/option_sources/ids_params.rb
hammer_cli_foreman-0.15.1 lib/hammer_cli_foreman/option_sources/ids_params.rb
hammer_cli_foreman-0.15.0 lib/hammer_cli_foreman/option_sources/ids_params.rb
hammer_cli_foreman-0.14.0 lib/hammer_cli_foreman/option_sources/ids_params.rb
hammer_cli_foreman-0.13.2 lib/hammer_cli_foreman/option_sources/ids_params.rb
hammer_cli_foreman-0.13.1 lib/hammer_cli_foreman/option_sources/ids_params.rb
hammer_cli_foreman-0.13.0 lib/hammer_cli_foreman/option_sources/ids_params.rb
hammer_cli_foreman-0.12.1 lib/hammer_cli_foreman/option_sources/ids_params.rb
hammer_cli_foreman-0.12.0 lib/hammer_cli_foreman/option_sources/ids_params.rb