常識なんでしょうけど、なぜか毎回失念してしまうので・・・
aliasする場所がどこであっても関係なく、alias元のvisibilityがそのままコピーされるみたいです。
class Foo
private
def foo; end
public
alias_method :bar, :foo
end
class Bar < Foo
alias baz foo
end
Bar.new.bar #=> NoMethodError: private method `bar' called...
Bar.new.baz #=> NoMethodError: private method `baz' called...
親でprivateなメソッド作っておいて子供で別名にaliasとかしたとき、
publicメソッドに戻し忘れそうになったことが何回かあります。