ワンライナーとは一行で書かれたコードや、一行で書かれたコマンドの組み合わせのことです。
例えばif分などを使わず、三項演算子で書くなど一行で収まるようにしたコードや、
rake db:migrate など一行で書かれたコマンド等のことを言います。
以下ではRails のrakeタスクに自分が行いたいタスクを登録しておきconsoleからコマンドを叩くだけで実行する流れを説明します。
Rakefileを作成する
railsではrakeコマンドを実行した場合、Rakefileと言う名前で登録されているファイルを参照しにいきます。(-fオプションをつけ明示的に違う名前のファイルを参照させることもできます。)
mkdir test
cd test
touch Rakefile
Rakefileの編集
Rakefaileの中では「desc」「task」と言う記述が出てきます。
「desc」にはタスクの一覧(次の項目で説明)を表示させた際、タスクがどのような役割を持っているかを説明する文を記述します。
「task」はrake taskで実際に実行するタスクの名称を記述します。
desc 'rakeタスクのテスト' # タスクの説明
task :test do # 実行する際の名称
puts 'これはテストです'
end
rakeコマンドで -T オプションをつけどんなタスクが登録されているのかを確認する
実際にタスクが登録されているのかを確認してみます。
rake -T
コマンド実行時の表示(#に続く文字列は実際に表示される文字列となります)
rake test # rakeタスクのテスト
rakeタスクの実行
それでは最後に作成したrakeタスクを実行してみます。
rake test
これはテストです
「これはテストです」と表示が出ればOKです。