メソッドからメソッドを呼び出す方法

Rubyではメソッドから他のメソッドを呼び出すことができます。
さっそくみていきましょう。

メソッドからメソッドを呼び出す

オブジェクトのメソッドの中から、同じオブジェクトの他のメソッドを呼び出す例を書いてみます。Userクラスを作成し、名前、メールアドレスを持たせています。

class User
  attr_accessor :name, :email
  def profile
    "#{name}(#{email})"
  end
end

実行結果は次の通りです。

>user = User.new
>user.name = "山田太郎"
>user.email = "test@test.com"
>user.profile
=> "山田太郎(test@test.com)"

このようにprofileメソッドの中で、同じオブジェクトの別メソッドであるnameやemailを呼び出すことができます。

シングルクオーテーションではできない

ちなみにですが、上記の動作はシングルクオーテーションではできません。ダブルクオーテーションのみとなっています。
例えば次のような挙動になります。

>name = "山田太郎"
>"#{name}"
=> "山田太郎"
>'#{name}'
=> '\#{name}'

このような実行結果になります。
シングルクオーテーションの場合#{などがそのまま文字列の一部として認識されるためです。