Module: Faraday::DeprecatedClass

Defined in:
lib/faraday/deprecated_class.rb

Overview

Returns A modified version of new_klass that warns on usage about deprecation.

Returns:

  • (Class)

    A modified version of new_klass that warns on usage about deprecation.

Class Method Summary collapse

Class Method Details

.proxy_class(old_klass, new_klass) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/faraday/deprecated_class.rb', line 10

def self.proxy_class(old_klass, new_klass)
  Class.new(new_klass).tap do |k|
    k.send(:define_method, :initialize) do |*args, &block|
      @old_klass = old_klass
      @new_klass = new_klass
      warn
      super(*args, &block)
    end

    k.send(:define_method, :warn) do
      puts(
        "DEPRECATION WARNING: #{@old_klass} is deprecated! " \
        "Use #{@new_klass} instead."
      )
    end
  end
end