class RequestRegistry

Constants

VERSION

Public Class Methods

new(*method_list) click to toggle source
# File lib/request_registry.rb, line 3
def initialize(*method_list)
  @method_list = method_list
end

Public Instance Methods

extended(object) click to toggle source
# File lib/request_registry.rb, line 7
def extended(object)
  method_list = @method_list
  object.instance_variable_set '@request_registry_key', object.name.freeze
  object.class_eval do
    attr_accessor(*method_list)
  end
  object.singleton_class.class_eval do
    define_method :instance do
      RequestStore.store[@request_registry_key] ||= object.new
    end
    object.public_instance_methods(false).each do |method|
      define_method method do |*args|
        instance.send(method, *args)
      end
    end
  end
end