| Module | Deprecated |
| In: |
lib/deprecated.rb
|
Deprecated is a module to help you deprecate code BEFORE you remove it. Don‘t surprise your users, deprecate them!
Usage is simple:
class Foo
include Deprecated
def moo
"cow"
end
deprecated :moo
def sheep
"baaa"
end
deprecated :sheep, "Sounds#baa"
protected
def bar
true
end
deprecated :bar
end
Foo.new.moo # warns that the call is deprecated
Deprecated.set_action(:raise)
Foo.new.moo # raises with the same message
Deprecated.set_action do |klass, sym, replacement|
email_boss(
"Someone tried to use #{klass}##{sym}! " +
"They should be using #{replacement} instead!"
)
end
Foo.new.sheep # do I really need to explain?
Foo.new.bar # still protected!
Let‘s do it live!
class Bar
include Deprecated
# sets it just for this class
deprecated_set_action do |klass, sym, replacement|
email_boss(
"Someone tried to use #{klass}##{sym}! " +
"They should be using #{replacement} instead!"
)
end
def cow
"moo"
end
deprecate :cow # emails your boss when called!
end
Please see Deprecated::Module#deprecated, Deprecated.set_action, and Deprecated::Module#deprecated_set_action for more information.
| VERSION | = | "3.0.1" |
Is called when an action needs to be run. Proably not in your best interest to run this directly.
set_action takes 3 "canned" arguments or an arbitrary block. If you provide the block, any canned argument is ignored.
The canned arguments are:
| :warn: | display a warning |
| :raise: | raise a DeprecatedError (a kind of StandardError) with the warning. |
| :fail: | fail. die. kaput. it‘s over. |
Procs take three arguments: