class HammerCLIForeman::DependencyResolver

Public Instance Methods

action_dependencies(action, options={}) click to toggle source
# File lib/hammer_cli_foreman/dependency_resolver.rb, line 6
def action_dependencies(action, options={})
  options[:only_required] = (options[:only_required] == true)
  options[:recursive] = !(options[:recursive] == false)

  resolve_for_action(action, [], options)
end
resource_dependencies(resource, options={}) click to toggle source
# File lib/hammer_cli_foreman/dependency_resolver.rb, line 13
def resource_dependencies(resource, options={})
  action_dependencies(resource.action(:index), options)
end

Protected Instance Methods

resolve_for_action(action, resources_found, options) click to toggle source
# File lib/hammer_cli_foreman/dependency_resolver.rb, line 19
def resolve_for_action(action, resources_found, options)
  IdParamsFilter.new(:only_required => options[:only_required]).for_action(action).each do |param|
    res = HammerCLIForeman.param_to_resource(param.name)
    if res and !resources_found.map(&:name).include?(res.name)
      resources_found << res
      resolve_for_action(res.action(:index), resources_found, options) if options[:recursive]
    end
  end
  resources_found
end