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 |