Module: RDF::Util::Aliasing::LateBound
- Defined in:
- lib/rdf/util/aliasing.rb
Overview
Helpers for late-bound instance method aliasing.
Anything that extends this module will obtain an alias_method
class
method that creates late-bound instance method aliases instead of the
default early-bound aliases created by Ruby's Module#alias_method
.
This is useful because RDF.rb mixins typically alias a number of
overridable methods. For example, RDF::Enumerable#count
has the
aliases #size
and #length
. Normally if implementing classes were
to override the default method, the aliased methods would still be
bound to the mixin's original reference implementation rather than the
new overridden method. Mixing in this module into the implementing
class fixes this problem.
Instance Method Summary collapse
-
#alias_method(new_name, old_name)
Makes
new_name
a late-bound alias of the methodold_name
.
Instance Method Details
#alias_method(new_name, old_name)
This method returns an undefined value.
Makes new_name
a late-bound alias of the method old_name
.
42 43 44 45 46 47 48 49 50 |
# File 'lib/rdf/util/aliasing.rb', line 42 def alias_method(new_name, old_name) new_name, old_name = new_name.to_sym, old_name.to_sym self.__send__(:define_method, new_name) do |*args, &block| __send__(old_name, *args, &block) end return self end |