Class: Module

Inherits:
Object
  • Object
show all
Defined in:
lib/test/unit/deprecate.rb

Overview

define deprecation api

Constant Summary collapse

DEPS =
Hash.new { |h,k| h[k] = {} }

Instance Method Summary collapse

Instance Method Details

#tu_deprecate(old, new) ⇒ Object



15
16
17
18
19
20
21
22
23
# File 'lib/test/unit/deprecate.rb', line 15

def tu_deprecate old, new
  class_eval <<-EOM
    def #{old} *args, &block
      cls, clr = self.class, caller.first
      self.class.tu_deprecation_warning #{old.inspect}, #{new.inspect}, clr
      #{new}(*args, &block)
    end
  EOM
end

#tu_deprecation_warning(old, new = nil, kaller = nil) ⇒ Object



4
5
6
7
8
9
10
11
12
13
# File 'lib/test/unit/deprecate.rb', line 4

def tu_deprecation_warning old, new = nil, kaller = nil
  kaller ||= caller[1]
  unless DEPS[old][kaller] then
    msg = "#{self}##{old} deprecated. "
    msg += new ? "Use ##{new}" : "No replacement is provided"
    msg += ". From #{kaller}."
    warn msg
  end
  DEPS[old][kaller] = true
end