class HammerCLIForeman::BuilderConfigurator
Public Class Methods
new(searchables, dependency_resolver)
click to toggle source
# File lib/hammer_cli_foreman/option_builders.rb, line 62 def initialize(searchables, dependency_resolver) @searchables = searchables @dependency_resolver = dependency_resolver end
Public Instance Methods
builders_for(resource, action)
click to toggle source
# File lib/hammer_cli_foreman/option_builders.rb, line 67 def builders_for(resource, action) builders = [] dependent_resources = [] if action.params.find{ |p| p.name == "id" } builders << SearchablesOptionBuilder.new(resource, @searchables) dependent_resources += @dependency_resolver.resource_dependencies(resource, :only_required => true, :recursive => true) end dependent_resources += @dependency_resolver.action_dependencies(action, :only_required => false, :recursive => false) dependent_resources += @dependency_resolver.action_dependencies(action, :only_required => true, :recursive => true) dependent_resources.uniq(&:name).each do |dep_resource| builders << DependentSearchablesOptionBuilder.new(dep_resource, @searchables) end IdArrayParamsFilter.new(:only_required => false).for_action(action).each do |p| resource = HammerCLIForeman.param_to_resource(p.name) builders << DependentSearchablesArrayOptionBuilder.new(resource, @searchables) unless resource.nil? end builders end