rubyに関する記事一覧→ rubyのまとめ
rubyには 先に実行内容を書いて、その後に if を挟んで 条件式を書く書き方があります
if修飾子 とか 後置if って言われているやつですね
puts('hello') if true
便宜上 trueと書いてますが、この部分に条件式を書くわけですね
この例では条件式は true なので puts('hello')が実行されます
ただし実行されるのは ifの左隣の一つだけです
複数個の処理を対象としようとして
puts('hello'); puts('world') if false
と書き 条件式がfalseの場合なら「hello」も「world」も表示されない のを期待しても
思ったような動作はせず
「hello」は true false に関わらず表示されてしまいます。
つまり ;を使ってワンライナーで書いたとしても
puts('hello') の方は 後置ifには掛かっていないという事ですね
こういった場合には この二つの処理を () で括って纏めてしまえば
二つとも 後置if に掛ける事が出来ます
(puts('hello'); puts('world')) if false
複数行に渡って処理を書く必要がある時は 普通のif式を使った方が良いとは思いますが
後置if でも複数行に渡る処理を書く事は不可能ではありません
( puts('hello') puts('world') exit() ) if true sleep(100)
この例では3行とも実行されますので sleep以前に exitで実行が終了されます
少し実用的な書き方をすると
(puts('コマンドラインオプションで入力ファイル名を指定してください'); exit(0)) if (ARGV[0] == nil)
こういう感じになりますかね