😅

「Rakeタスクの引数にスペースがあるとエラー」について勘違いしてたこと

rakeタスクの引数にはスペースは不要、という感じで覚えていて次のように書いてました。
まあ確かにこれでも動くが…勘違いをしていました。
 

問題の前提

例えば、というタスクがあり、このタスクに対して引数を渡す場合、正しくない形式でスペースが含まれているとエラーが発生します。
 
誤った例:
このコマンドを実行すると、次のようなエラーメッセージが表示されます。
 

なぜ問題が発生するのか?

調べてみました。Rakeでは、タスク名の解析時にスペースが含まれていると、タスク名として認識されないため、エラーが発生するようです。(” “というタスクがない。)
 

解決策

タスク名と引数の間にはスペースを入れず、次のように記述すると動きます。
自分はここを勘違いしていて「引数同士もスペースを入れてはならない」と思っていました。これは問題なくて、関数と引数の間にスペースを入れないこと重要でした。
 

まとめ

  • rakeタスクの関数と引数の間のスペースを開けないようにする
  • 似たようなことを伝えてもらった時に、指している場所に誤解がないか検討する