LinkParser::

DeprecationUtilities

module

Functions for marking methods as deprecated.

Public Instance Methods

anchor
deprecated_method( *names )

Make a wrapper for a deprecated method. The wrapper will print a deprecation warning to STDERR, and then call the method with the same name prefixed with an underscore.

# File lib/linkparser/mixins.rb, line 13
def deprecated_method( *names )
        names.each do |name|
                method_body = lambda do |*args|
                        source = caller( 1 ).first
                        if $lp_deprecation_warnings.key?( source )
                                $lp_deprecation_warnings[ source ] += 1
                        else
                                $lp_deprecation_warnings[ source ] = 1
                                warn "Use of deprecated method %p from %s." % [ name, source ]
                        end

                        return self.method( "_#{name}" ).call( *args )
                end

                # Install the wrapper after aliasing away the old method
                alias_method( "_#{name}", name )
                remove_method( name )
                define_method( name, &method_body )
        end
end