Sha256: 45ee744b0495ea7e63a654726d9b62be19eb65d1e954bb0ced36aeca259e05af

Contents?: true

Size: 693 Bytes

Versions: 26

Compression:

Stored size: 693 Bytes

Contents

class Module
  private
  # Aliases a method and undefines the original.
  #
  #   rename_method( :to_method, :from_method  )
  #
  def rename_method( to_sym, from_sym )
    raise ArgumentError, "method #{from_sym} does not exist" unless method_defined?( from_sym )
    alias_method( to_sym, from_sym )
    undef_method( from_sym )
  end
end


#  _____         _
# |_   _|__  ___| |_
#   | |/ _ \/ __| __|
#   | |  __/\__ \ |_
#   |_|\___||___/\__|
#
=begin test

  require 'test/unit'

  class TCModule < Test::Unit::TestCase

    def a; "A" ; end

    rename_method :b, :a

    def test_rename_method
      assert( ! respond_to?( :a ) )
      assert( respond_to?( :b ) )
    end

  end

=end

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
facets-1.8.0 lib/facets/core/module/rename_method.rb
facets-1.8.51 lib/facets/core/module/rename_method.rb
facets-1.8.49 lib/facets/core/module/rename_method.rb
facets-1.8.20 lib/facets/core/module/rename_method.rb
facets-1.8.54 lib/facets/core/module/rename_method.rb
facets-1.8.8 lib/facets/core/module/rename_method.rb