class HammerCLIForeman::SearchablesOptionBuilder
Attributes
resource[R]
Public Class Methods
new(resource, searchables)
click to toggle source
# File lib/hammer_cli_foreman/option_builders.rb, line 165 def initialize(resource, searchables) @resource = resource @searchables = searchables end
Public Instance Methods
aliased_name(name, resource_name_map)
click to toggle source
# File lib/hammer_cli_foreman/option_builders.rb, line 186 def aliased_name(name, resource_name_map) return if name.nil? resource_name_map[name.to_s] || resource_name_map[name.to_sym] || name end
build(builder_params={})
click to toggle source
# File lib/hammer_cli_foreman/option_builders.rb, line 172 def build(builder_params={}) resource_name_map = builder_params[:resource_mapping] || {} @searchables.for(@resource).collect do |s| family = HammerCLI::Options::OptionFamily.new family.parent( optionamize("--#{s.name}"), s.name.upcase, s.description, referenced_resource: @resource.singular_name, aliased_resource: aliased_name(resource_name(s.name), resource_name_map) ) end end
resource_name(param)
click to toggle source
# File lib/hammer_cli_foreman/option_builders.rb, line 192 def resource_name(param) if param =~ /^id[s]?$/ @resource.singular_name elsif param =~ /_id[s]?$/ param.gsub(/_id[s]?$/, '') else nil end end