class ActiveSupport::Deprecation::DeprecatedInstanceVariableProxy - activesupport-4.2.4 Documentation

# class ActiveSupport::Deprecation::DeprecatedInstanceVariableProxy

This DeprecatedInstanceVariableProxy transforms instance variable to deprecated instance variable.

    class Example
      def initialize(deprecator)
        @request = ActiveSupport::Deprecation::DeprecatedInstanceVariableProxy.new(self, :request, :@request, deprecator)
        @_request = :a_request
      end

      def request
        @_request
      end

      def old_request
        @request
      end
    end

When someone execute any method on @request variable this will trigger `warn` method on `deprecator_instance` and will fetch `@_request` variable via `request` method and execute the same method on non-proxy instance variable.

Default deprecator is `ActiveSupport::Deprecation`.

### Public Class Methods

new(instance, method, var = "@ click to toggle source

    # File lib/active_support/deprecation/proxy_wrappers.rb, line 79
    def initialize(instance, method, var = "@#{method}", deprecator = ActiveSupport::Deprecation.instance)
      @instance = instance
      @method = method
      @var = var
      @deprecator = deprecator
    end

### Private Instance Methods

target() click to toggle source

    # File lib/active_support/deprecation/proxy_wrappers.rb, line 87
    def target
      @instance.__send__(@method)
    end

warn(callstack, called, args) click to toggle source

    # File lib/active_support/deprecation/proxy_wrappers.rb, line 91
    def warn(callstack, called, args)
      @deprecator.warn("#{@var} is deprecated! Call #{@method}.#{called} instead of #{@var}.#{called}. Args: #{args.inspect}", callstack)
    end