Sha256: 1f80f0ddfe58c97f1a13b395bbb8640789dc78efa3b27edf0bec289906497f57

Contents?: true

Size: 536 Bytes

Versions: 17

Compression:

Stored size: 536 Bytes

Contents

module Arrest
  ##
  # Forwards context as first parameter to every method call
  # of the proxied class
  class ResourceProxy
    def initialize(resource, context_provider)
      @resource = resource
      @context_provider = context_provider
    end

    def method_missing(*args, &block)
      params = [@context_provider.get_context]
      params += args.drop(1)
      @resource.send(args.first, *params)
    end

    def load(*args)
      ext = [@context_provider.get_context] + args
      @resource.load(*ext)
    end

  end

end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
arrest-0.0.91 lib/arrest/transport/resource_proxy.rb
arrest-0.0.90 lib/arrest/transport/resource_proxy.rb
arrest-0.0.89 lib/arrest/transport/resource_proxy.rb
arrest-0.0.88 lib/arrest/transport/resource_proxy.rb
arrest-0.0.87 lib/arrest/transport/resource_proxy.rb
arrest-0.0.86 lib/arrest/transport/resource_proxy.rb
arrest-0.0.85 lib/arrest/transport/resource_proxy.rb
arrest-0.0.84 lib/arrest/transport/resource_proxy.rb
arrest-0.0.83.crud lib/arrest/transport/resource_proxy.rb
arrest-0.0.83.1 lib/arrest/transport/resource_proxy.rb
arrest-0.0.83 lib/arrest/transport/resource_proxy.rb
arrest-0.0.82 lib/arrest/transport/resource_proxy.rb
arrest-0.0.80 lib/arrest/transport/resource_proxy.rb
arrest-0.0.79 lib/arrest/transport/resource_proxy.rb
arrest-0.0.78 lib/arrest/transport/resource_proxy.rb
arrest-0.0.77 lib/arrest/transport/resource_proxy.rb
arrest-0.0.76 lib/arrest/transport/resource_proxy.rb