class Arpa::Services::Resources::ResourceManagerCreator

Public Instance Methods

create(params, callback) click to toggle source
# File lib/arpa/services/resources/resource_manager_creator.rb, line 7
def create(params, callback)
  manager_action callback do
    resourceables         = params[:resourceables]
    except_action_methods = params[:except_action_methods] || []

    resource_remover.remove_nonexistent_resources(resourceables)

    resourceables.collect do |resourceable|
      resource = resource_creator.create(resourceable)
      action_params = action_params(resource, resourceable, except_action_methods)

      action_remover.remove_nonexistent_actions(action_params)
      action_creator.create_many(action_params)

      resource
    end
  end
end

Private Instance Methods

action_creator() click to toggle source
# File lib/arpa/services/resources/resource_manager_creator.rb, line 40
def action_creator
  @action_creator ||= Arpa::Services::Actions::Create::ActionCreator.new
end
action_params(resource, resourceable, except_action_methods) click to toggle source
# File lib/arpa/services/resources/resource_manager_creator.rb, line 44
def action_params(resource, resourceable, except_action_methods)
  actions_names = resourceable.action_methods.reject { |action| except_action_methods.include?(action) }
  { resource: resource, actions_names: actions_names }
end
action_remover() click to toggle source
# File lib/arpa/services/resources/resource_manager_creator.rb, line 32
def action_remover
  @action_remover ||= Arpa::Services::Actions::Remove::ActionRemover.new
end
resource_creator() click to toggle source
# File lib/arpa/services/resources/resource_manager_creator.rb, line 36
def resource_creator
  @resource_creator ||= Arpa::Services::Resources::Create::ResourceCreator.new
end
resource_remover() click to toggle source
# File lib/arpa/services/resources/resource_manager_creator.rb, line 28
def resource_remover
  @resource_remover ||= Arpa::Services::Resources::Remove::ResourceRemover.new
end