Class/Module Index [+]

Quicksearch

HammerCLIForeman::DependentSearchablesOptionBuilder

Attributes

resource[R]

Public Class Methods

new(resource, searchables) click to toggle source
# File lib/hammer_cli_foreman/option_builders.rb, line 184
def initialize(resource, searchables)
  @resource = resource
  @searchables = searchables
end

Public Instance Methods

build(builder_params={}) click to toggle source
# File lib/hammer_cli_foreman/option_builders.rb, line 191
def build(builder_params={})
  resource_name_map = builder_params[:resource_mapping] || {}
  dependent_options(@resource, resource_name_map)
end

Protected Instance Methods

aliased(name, resource_name_map) click to toggle source
# File lib/hammer_cli_foreman/option_builders.rb, line 238
def aliased(name, resource_name_map)
  resource_name_map[name.to_s] || resource_name_map[name.to_sym] || name
end
dependent_options(resource, resource_name_map) click to toggle source
# File lib/hammer_cli_foreman/option_builders.rb, line 198
def dependent_options(resource, resource_name_map)
  options = []
  searchables = @searchables.for(resource)
  resource_name = resource.singular_name
  aliased_name = aliased(resource_name, resource_name_map)

  unless searchables.empty?
    first = searchables[0]
    remaining = searchables[1..-1] || []

    # First option is named by the resource
    # Eg. --organization with accessor option_organization_name
    options << option(
      optionamize("--#{aliased_name}"),
      "#{aliased_name}_#{first.name}".upcase,
      first.description || " ",
      :attribute_name => HammerCLI.option_accessor_name("#{resource_name}_#{first.name}")
    )

    # Other options are named by the resource plus the searchable name
    # Eg. --organization-label with accessor option_organization_label
    remaining.each do |s|
      options << option(
        optionamize("--#{aliased_name}-#{s.name}"),
        "#{aliased_name}_#{s.name}".upcase,
        s.description || " ",
        :attribute_name => HammerCLI.option_accessor_name("#{resource_name}_#{s.name}")
      )
    end
  end

  options << option(
    optionamize("--#{aliased_name}-id"),
    "#{aliased_name}_id".upcase,
    description("id", :show),
    :attribute_name => HammerCLI.option_accessor_name("#{resource_name}_id")
  )
  options
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.