privateメソッドの役割
呼び出し制限をかける場合に、privateメソッドを使っていました。
しかし、曖昧なまま使っており、privateメソッドの正しい役割を知りませんでした。
メソッドの役割
レシーバを省略する形でしか呼び出せない
具体例を出します
class Greet def hello puts 'hello' end def private_hello puts 'private hello' end def private private_hello end private :private_hello end greet = Greet.new greet.hello →hello greet.private_hello →private method `private_hello' called for #<Greet:0x007fb32c9a5da8> (NoMethodError) greet.private →private hello
メソッド内から呼び出すと、privateメソッドは呼び出しに成功しますね。
まとめ
具体例を見るとスッキリしました。
レシーバを省略する形でしか呼び出せないことを意識します。