Method: Module#*

Defined in:
lib/core/facets/module/op.rb

#*(rename_map) ⇒ Object

Rename methods.

module AStar
  def a; "a"; end
end

BStar = AStar * { :a => :b }

class XStar; include BStar; end

XStar.new.b    #=> "a"

CREDIT: Thomas Sawyer, Robert Dober



95
96
97
98
99
100
101
102
103
104
# File 'lib/core/facets/module/op.rb', line 95

def *(rename_map)
  base = self
  Module.new do
    include base
    rename_map.each do |from, to|
      alias_method to, from
      undef_method from
    end
  end
end