Sha256: 996ef2949c2fe90d11e3c63b8b6c62cef0bd6712231107c029f7c2354505c9dc

Contents?: true

Size: 641 Bytes

Versions: 4

Compression:

Stored size: 641 Bytes

Contents

module Shippinglogic
  class FedEx
    class Proxy
      alias_method :real_class, :class
      instance_methods.each { |m| undef_method m unless m =~ /(^__|^real_class$|^send$|^object_id$)/ }
      
      attr_accessor :target
      
      def initialize(target)
        self.target = target
      end
      
      protected
        # We undefined a lot of methods at the beginning of this class. The only methods present in this
        # class are ones that we need, everything else is delegated to our target object.
        def method_missing(name, *args, &block)
          target.send(name, *args, &block)
        end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
binarylogic-shippinglogic-1.1.0 lib/shippinglogic/fedex/proxy.rb
binarylogic-shippinglogic-1.1.1 lib/shippinglogic/fedex/proxy.rb
binarylogic-shippinglogic-1.1.2 lib/shippinglogic/fedex/proxy.rb
binarylogic-shippinglogic-1.1.3 lib/shippinglogic/fedex/proxy.rb