質問: 特定のケースに関しての質問ではないのですが、 例えばMailのGemを使う時に、公式では送信部分のコードを ``` Mail.defaults do delivery_method :smtp, address: "localhost", port: 1025 end ``` と解説してあり、 一方、その他開発者の皆さんのブログなどを読むと下記のような書き方が見られます。 ``` Mail.defaults do delivery_method :smtp, { :address => "smtp.gmail.com", :port => 587, :domain => 'example.com', :user_name => '<自分のgmailアカウント>', :password => '<自分のgmailアカウントのパスワード>', :authentication => 'plain', :enable_starttls_auto => true } end ``` こういった場合、 * 例えば:smtpなどのオプションを{}で書けるといったことは常識なのでしょうか?常識とすれば、どういうキーワードを入り口にこういう記法や作法を知ることができますでしょうか? * 公式のドキュメントに書いていないオプション(user_nameは予想できるにしろ、authentificationやenable_starttls_autoなど)はどうやって見つけているのでしょうか?
回答: > > 例えば:smtpなどのオプションを{}で書けるといったことは常識なのでしょうか?常識とすれば、どういうキーワードを入り口にこういう記法や作法を知ることができますでしょうか? > > > 例文の方も本質的には**同じ**です。bare hashといって、メソッドに渡す最後の引数では、ハッシュの中括弧を省略できます。 ``` delivery_method :smtp, address: "localhost", port: 1025 # 実際は、このようにHashが引数となっている delivery_method :smtp, { address: "localhost", port: 1025 } ``` > > 公式のドキュメントに書いていないオプション(user_nameは予想できるにしろ、authentificationやenable_starttls_autoなど)はどうやって見つけているのでしょうか? > > > ソースコードやリファレンスを読む、あるいはrubydocから探す、などです。