Sha256: a3680232fb2def22dbc2753aa3510ce0782fbaa32d3b96f0e65583df112e6dbf

Contents?: true

Size: 859 Bytes

Versions: 1

Compression:

Stored size: 859 Bytes

Contents

class Restly::Proxies::Base < SimpleDelegator

  delegate :is_a?, :kind_of?, to: :__getobj__

  # Initialize the Proxy
  def initialize(receiver)

    # Dupe the Requester
    if receiver.class == Class

      @receiver = receiver.dup

      # Some Key Methods Added to the Duplicated Requester
      @receiver.class_eval %{

        def inspect
          super.gsub(/^(#<)?#<[a-z0-9]+:([a-z0-9]+)(>)?/i, '#<#{receiver.name}:\\2')
        end

        def self.inspect
          super.gsub(/^#<[a-z0-9]+:.*/i, '#{receiver.name}')
        end

        def self.name
          "#{receiver.name}"
        end

      }
    else
      @receiver = receiver
    end

    # Initialize the Delegator
    super(@receiver)
  end

  alias_method :proxy_class, :class

  # Tell the Proxy its Class!
  def class
    @receiver.class
  end

  def proxied?
    true
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
restly-0.0.1.alpha.6 lib/restly/proxies/base.rb