Ruby にも変数宣言があったほうがいいよね、という話。 Thor タスクを書いていて desc "load KVS_FILE", "load data from given KVS file" def load(kvs_file) case kvs_file when "shift" ksv_file = Dir.glob("kvs/requests/*").sort.first when "pop" ksv_file = Dir.glob("kvs/requests/*").sort.last end p kvs_fileload("shift") しても "shift" が表示されちゃう謎の現象に遭遇。 実は Thor は引数を symbol とか特別なオブジェクトにしてる? あれ、case 文って文字列直接はダメだっけか?(classみたいに) とか色々調べること10分。原因に気付