class HammerCLIForeman::DependentSearchablesArrayOptionBuilder
Public Instance Methods
dependent_options(resource, resource_name_map, command)
click to toggle source
# File lib/hammer_cli_foreman/option_builders.rb, line 352 def dependent_options(resource, resource_name_map, command) options = [] searchables = @searchables.for(resource) resource_name = resource.singular_name aliased_name = aliased(resource_name, resource_name_map) aliased_plural_name = aliased(resource.name, resource_name_map) unless searchables.empty? first = searchables[0] remaining = searchables[1..-1] || [] # Find family created by HammerCLI::Apipie::OptionBuilder for *_ids options family = command.option_families.find do |f| f.head.referenced_resource == resource_name && f.formats.include?(HammerCLI::Options::Normalizers::List) end # First option is named by the resource # Eg. --organizations with accessor option_organization_names options << family.child( optionamize("--#{aliased_plural_name}"), "#{aliased_name}_#{first.plural_name}".upcase, ' ', attribute_name: HammerCLI.option_accessor_name("#{resource_name}_#{first.plural_name}"), format: HammerCLI::Options::Normalizers::List.new, referenced_resource: resource_name, aliased_resource: aliased_name ) # Other options are named by the resource plus the searchable name # Eg. --organization-labels with accessor option_organization_labels remaining.each do |s| options << family.child( optionamize("--#{aliased_name}-#{s.plural_name}"), "#{aliased_name}_#{s.plural_name}".upcase, ' ', attribute_name: HammerCLI.option_accessor_name("#{resource_name}_#{s.plural_name}"), format: HammerCLI::Options::Normalizers::List.new, referenced_resource: resource_name, aliased_resource: aliased_name ) end end options end