Rake

参考:

ruby/rake: A make-like build utility for Ruby – GitHub

ドキュメント

参考:

Rake – Ruby Make [Official]

library rake (Ruby 2.6.0)

class Rake::Task (Ruby 2.6.0)

class Rake::FileList (Ruby 2.6.0)

instance method Kernel#task (Ruby 2.6.0)

instance method Kernel#desc (Ruby 2.6.0)

instance method Kernel#namespace (Ruby 2.6.0)

Documentation for rake | RubyDoc.info

使い方

参考:

Rake の基本的な使い方まとめ | うなの日記

Rake タスクを追加する | DoRuby

Rake と Rakefile – Qiita

rake の使い方 – Qiita

Rake – Core Ruby Tools | Launch School

Using Rake to Automate Tasks | Field Notes

Customizing Rails rake tasks | DEV Community

some basics to get you started | Michaël Rigart

コマンド

参考:

command_line_usage | Rake [Official]

概要

参考:

Rake Gem explained | Rudy Yazdi

タスク一覧を表示する

ディスクリプションのあるタスクを表示する。

$ rake -T

全てのタスクを表示する。

$ rake -A

タスク名がパターンに一致するタスクを表示する。

$ rake -T db

タスク名がパターンに一致するタスクのディスクリプションを全て表示する。

$ rake -D db

タスクが定義されているソースファイルの行番号を表示する。

$ rake -W db

参考:

A Better Way To Search Rake Tasks | SpinDance

Find out where a rake task is defined | think (batsov.com)

Hide a Rake task from the `rake -T` list | makandra dev

自分で定義した rake タスクの一覧を表示する – スタック・オーバーフロー

How do I find the source file for a rake task? – Stack Overflow

verbose / quiet / silent

参考:

Rake からタスクを呼び出す際に実行されるコマンドの出力を止めたい | ようへいの日々精進 XP

rake spec での冗長な出力を止める方法。| Sooey

Disable rspec verbosity to hide spec list | Singlebrook

Hide the list of files when running rspec? – Stack Overflow

next

参考:

rake task の途中終了は return じゃなくて next – Qiita

rake task の中断は return ではなく next だった | ノンカフェインであなたにやさしい

rake task を途中で抜けるときは return じゃなくて next 答えを知りたい | 答えを知りたい

How do I return early from a rake task? – Stack Overflow

sh

参考:

Rake の sh で外部コマンドを実行する – Qiita

依存タスク

参考:

他の rake タスクに依存する rake タスクの実行 | Hack Your Design!

enhance

特定のタスクの前後にタスクを追加する。

Rake::Task[:process].enhance([:before_process]) do
  Rake::Task[:after_process].invoke
end

参考:

Rake で任意のタスクの前後に別のタスクを実行する | HsbtDiary

Rails のマイグレーションをフックする – Qiita

rails の migration を hook する方法 | Hive Color

instance method Rake::Task#enhance (Ruby 2.5.0)

Modifying Rake Tasks | Dan Manges’s Blog

他のタスクを呼び出す

invoke

  • 依存タスクを実行する。
  • 同じタスクは一度しか実行しない。(同じタスクを再実行する場合は reenable が必要。)
  • arg_names を用いて TaskArguments のインスタンスを生成して引数を渡す。

execute

  • 依存タスクは実行しない。
  • 引数をそのまま渡す。

参考:

rake タスク内で別のタスクを呼び出す – Qiita

Rails で rake タスクから別のタスクを呼び出す | 動かざることバグの如し

instance method Rake::Task#invoke (Ruby 2.6.0)

instance method Rake::Task#execute (Ruby 2.6.0)

instance method Rake::Task#reenable (Ruby 2.6.0)

Rake Task: invoke or execute?? | Sampat Badhe

タスクに引数を渡す

参考:

class Rake::TaskArguments (Ruby 2.6.0)

Task Arguments | Jacob Swanner

4 Ways to Pass Arguments to a Rake Task | Cobwwweb

optparse で引数を処理する

参考:

Rake と optparse を組み合わせたら少し幸せになった – Qiita

library optparse (Ruby 2.5.0)

run

参考:

rake/application.rb at v12.3.2 · ruby/rake

gem のタスクを読み込む

参考:

Rails ではない場合に gem で定義された Rake Task を呼び出す – Qiita

namespace

参考:

Rake タスクにおける namespace 内でのメソッド定義 | freedom-man

instance method Kernel#namespace (Ruby 2.6.0)

特定の Rake タスク内でのみ使うメソッドの定義方法 – スタック・オーバーフロー

Is it possible to include modules in rake task and make its methods available for the task in rails app? – Stack Overflow

Default task for namespace in Rake – Stack Overflow

タスクに別名を付ける

参考:

Rake の task 名に alias を設定する | SOTA

Rake タスクにエイリアスを付ける | Hack Your Design!

A helper to alias a task in rake – GitHub Gist

Alias of task name in Rake – Stack Overflow

task / desc

参考:

instance method Kernel#task (Ruby 2.6.0)

instance method Kernel#desc (Ruby 2.6.0)

What is the magic behind “desc ‘description'” on rake? – Stack Overflow

define_task

参考:

singleton method Rake::Task.define_task (Ruby 2.6.0)

clear

参考:

rake task を上書きする – Qiita

instance method Rake::Task#clear (Ruby 2.6.0)

Override a rake task | Felix Clack

Completely override rake task (and dismiss it’s actions and prerequisites) – GitHub Gist

Overriding rails’ default rake tasks – Stack Overflow

clear_actions

参考:

Capistrano3 Task を Override する方法 | ふらっと考える

instance method Rake::Task#clear_actions (Ruby 2.6.0)

full_comment

参考:

instance method Rake::Task#full_comment (Ruby 2.6.0)

Access Rake Task Description from within Task – Stack Overflow

actions

参考:

タスクがどこで定義されているか調べる – Qiita

Task Overwriting | Jay Fields’ Thoughts

instance method Rake::Task#actions (Ruby 2.6.0)

How do I find the source file for a rake task? – Stack Overflow

prerequisites

参考:

instance method Rake::Task#prerequisites (Ruby 2.6.0)

Rake::DSL

参考:

モジュールやクラスの中から Rake の DSL 構文を使う – Qiita

Module: Rake::DSL — Documentation for rake | RubyDoc.info

Rake::TaskManager

参考:

module Rake::TaskManager (Ruby 2.6.0)

Rake::TaskManager.record_task_metadata

参考:

Rake でなぜデフォルトで task から自分の description にアクセスできないのか分からない – Qiita

Method: Rake::TaskManager.record_task_metadata — Documentation for rake | RubyDoc.info

rake/task_manager.rb at v12.3.2 · ruby/rake – GitHub

Access Rake Task Description from within Task – Stack Overflow

仕組み

参考:

Rake を徹底解剖 – その1 Rakeの実行から初期化まで | kei-p3’s blog

Rake を徹底解剖 – その2 タスクの読みこみ | kei-p3’s blog

Rake を徹底解剖 – その3 タスクの定義 | kei-p3’s blog

タスクの重複

参考:

Why is my minitest.rake running twice when I enter rake into terminal? – Stack Overflow

Tips

参考:

Everything You Always Wanted to Know About Writing Good Rake Tasks * But Were Afraid to Ask | Ezequiel Delpero

タグ:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です