Change soft-fail to use the config, rather than env
[rbx.git] / lib / test / unit / deprecate.rb
blob60a808e018e5fc5978644681dfa83ae56feba2c6
1 class Module # define deprecation api
2   DEPS = Hash.new { |h,k| h[k] = {} }
4   def tu_deprecation_warning old, new = nil, kaller = nil
5     kaller ||= caller[1]
6     unless DEPS[old][kaller] then
7       msg = "#{self}##{old} deprecated. "
8       msg += new ? "Use ##{new}" : "No replacement is provided"
9       msg += ". From #{kaller}."
10       warn msg
11     end
12     DEPS[old][kaller] = true
13   end
15   def tu_deprecate old, new
16     class_eval <<-EOM
17       def #{old} *args, &block
18         cls, clr = self.class, caller.first
19         self.class.tu_deprecation_warning #{old.inspect}, #{new.inspect}, clr
20         #{new}(*args, &block)
21       end
22     EOM
23   end
24 end