回答と呼べるほどのものではなく単なるとんち的なものかも知れませんが、alias_methodの方はメソッドなのでデバッグ目的などで再定義する余地があるという点が使いどころになるかも知れないと思いました。
barメソッドに別名を付ける意図でalias_methodを用いようとして実はtypoによりグローバル(?)な定義のbarを参照してしまっていたいったバグが見つかった・・・というちょっとこじつけっぽい例ですが。
ruby
1# test.rb
2class Module
3 alias_method :org_alias_method, :alias_method
4
5 def alias_method(to, from)
6 if ! method_defined?(from) then
7 puts "alias_method: " + from.to_s + " is not defined in " + self.to_s
8 else
9 org_alias_method to, from
10 end
11 end
12end
13
14def bar
15 "global bar"
16end
17
18class Parent
19 def bar_typo # <---- typo
20 "parent bar"
21 end
22end
23
24class SomeClass < Parent
25 alias_method :foo, :bar
26
27 def baz
28 foo
29 end
30
31 def bar
32 "child bar"
33 end
34end
35
36p SomeClass.new.baz
37
38===>
39$ ruby test.rb
40alias_method: bar is not defined in SomeClass
41test.rb:27:in `baz': undefined local variable or method `foo' for #<SomeClass:0x000006002a9ad0> (NameError)
42Did you mean? fork
43 from test.rb:35:in `<main>'
rubyのプログラミングスタイルや言語仕様に暗いのでトンチンカンなことを言ってしまっているかも知れませ。その際はご容赦ください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。