class HammerCLIForeman::OptionSources::NewParams

Public Class Methods

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

Public Instance Methods

get_options(_defined_options, result) click to toggle source
# File lib/hammer_cli_foreman/option_sources/new_params.rb, line 8
def get_options(_defined_options, result)
  resource_names = @command.class.option_builder.builders
                           .select { |b| b.class == HammerCLIForeman::UpdateDependentSearchablesOptionBuilder }
                           .collect(&:resource)
                           .collect(&:singular_name)
  new_result = resource_names.each_with_object({}) do |name, results|
    new_name = @command.send("option_new_#{name}_name") || @command.send("option_new_#{name}_title")
    results["option_new_#{name}_id"] =
      if new_name
        @command.resolver.send("#{name}_id", 'option_name' => new_name)
      else
        @command.send("option_new_#{name}_id")
      end
  end
  result.merge!(new_result)
end