class ResourceKit::MethodFactory

Public Class Methods

construct(object, resource_collection, invoker = ActionInvoker) click to toggle source
# File lib/resource_kit/method_factory.rb, line 3
def self.construct(object, resource_collection, invoker = ActionInvoker)
  resource_collection.each do |action|
    if object.method_defined?(action.name)
      raise ArgumentError, "Action '#{action.name}' is already defined on `#{object}`"
    end
    method_block = method_for_action(action, invoker)

    object.send(:define_method, action.name, &method_block)
  end
end
method_for_action(action, invoker) click to toggle source
# File lib/resource_kit/method_factory.rb, line 14
def self.method_for_action(action, invoker)
  Proc.new do |*args|
    invoker.call(action, self, *args)
  end
end