RubyのRakeとは何ですか?その使用方法
RakeはRubyで人気のあるタスクランナーです。
タスクとは何ですか?
- データベースのバックアップを作成する
- テストの実行
- 統計の収集と報告
これらは小さなタスクであり、Rakeがないと、プロジェクト全体のさまざまなファイルに分散します。
Rakeは、タスクへのアクセスを一元化します。
Rakeを使用すると、特定のパターンに一致し、最近変更されたファイルを見つけるなど、いくつかのことが簡単になります。
もう1つ :
RakeとRackを混同しないでください。名前は非常に似ていますが、まったく異なるものです。
- 熊手 はタスクランナーです。
- ラック Rubyサーバーとフレームワークが連携するのに役立ちます。
今:
Rakeについて詳しく見ていきましょう!
レーキを使用するのは誰ですか?
レール!
Railsで何かをしたことがあれば、おそらくrake db:migrate
に精通しているでしょう。 コマンド。
またはrake routes
。
それがRakeの実際の動作です。
Railsはバージョン5.0以降、ほとんどのrake
を呼び出すことができることに注意してください。 rails
を使用したコマンド 代わりに。
言い換えれば :
rails db:migrate
を実行できます 、しかしRakeはまだ作業を行っています。
レーキタスクの書き方
簡単なRakeタスクは次のとおりです。
desc "Print reminder about eating more fruit." task :apple do puts "Eat more apples!" end
このコードは、Rakefile
という名前のファイル内に配置できます。 、またはRailsを使用している場合は、これをlib/tasks/apple.rake
に保存できます。 。
このタスクを実行するには :
rake apple # "Eat more apples!"
タスク内では、通常のRubyコードを記述できますが、使用できる便利なRakeメソッドがいくつかあります。
例 :
- ruby(Rubyファイルを実行)
- sh(システムコマンドを実行)
- safe_ln(ファイルシステムにシンボリックリンクを作成します)
RakeにはFileUtils
が含まれています モジュール。
つまり、cp
を使用してファイルをコピーできます 、mkdir_p
でディレクトリを作成します 、さらにはchown
でファイルのアクセス許可を変更します 。
ここに例があります :
task :clean_cache do rm_r FileList["tmp/cache/*"] end
rm_r
に注意してください (再帰的に削除)確認なしでファイルが削除されるため、確認ステップを追加する場合は、依存タスクを追加できます。 (この記事の後半で説明します)続行したくない場合は、例外を発生させます。
別のディレクトリ内でのRakeコマンドの実行
特定のディレクトリ内でRakeコマンドを実行することをお勧めします。
方法は次のとおりです :
task :import do puts "Importing data..." Dir.chdir(Rails.root.join("data")) { ruby "load-data.rb" } end
この例では、data
内でRubyスクリプトを実行しています Railsプロジェクトのフォルダ。
Rakeで名前空間を使用する方法
タスクには同じような名前を付けることができるため、同じ名前を2回使用するのは簡単です。
そのため、Rakeには名前空間があります。
例 :
backup
を作成できます すべてのバックアップタスクの名前空間。
このように :
namespace :backup do task :create do # ... end task :list do # ... end task :restore do # ... end end
名前空間付きタスクを実行するには :
rake backup:create
依存タスク
Rakeを使用すると、現在のタスクの前に実行する必要がある他のタスクのリストを定義できます。
これにより、タスクに必要なセットアップを行うことができます。
例:
task create_examples: "load_database" do # ... end
この例では、load_database
create_examples
の前に実行されます 。
依存タスクのリストは、文字列の配列または記号の配列にすることもできます。
別のタスク内でレーキタスクを実行する
現在のタスクの前に実行される一連のタスクを使用する代わりに、現在のタスク内で別のタスクを実行する場合は、次のコードを使用できます。
例 :
task :coverage do ENV['COVERAGE'] = 'true' Rake::Task["test"].execute end
これは、テストカバレッジやその他のオプションを有効にする環境変数を設定するのに役立ちます。
レーキルールの使用方法
ルールはファイル拡張子の変換を定義します。
例 :
task compress: FileList["/tmp/*.txt"].ext(".txt.gz") rule '.txt.gz' => '.txt' do |t| sh "gzip", "-k", "-f", t.source end
ルールを使用する利点は、ファイルが圧縮されると、ソースファイルが変更されるまで再度圧縮されないことです。
このコードのいくつかの点に注意してください :
-
FileList
を使用します Rakeの一部であるクラスは、操作するファイルのリストを定義します。 - ルールはTARGET拡張子で始まります。ルールを一致させるには、
.ext(".txt.gz")
を使用する必要があります。FileList
で 。 - この
.txt.gz => .txt
txt.gz
から移動するという意味ではありませんtxt
へ 、その逆です。矢印はハッシュ構文です。
レーキオプションとコマンド
便利なレーキオプションのリストは次のとおりです :
- rake -T(利用可能なタスクのリスト)
- rake -P(タスクとその依存関係を一覧表示)
- rake -W(タスクとその定義場所を一覧表示)
- rake -V(冗長モード、エコーシステムコマンド)
- rake -t(デバッグモード)
- rake -f(特定のRakefileを使用)
たとえば、Railsアプリの場合 :
> rake -T test rake test # Runs all tests in test folder except system ones rake test:db # Run tests quickly, but also reset db rake test:system # Run system tests only
概要
Rubyで人気のあるタスクランナーであるRakeについて学びました。
rake -T
を使用します 使用可能なタスクを見つけるには、独自のタスクを作成してRakefile
に追加します 、またはlib/tasks
内 フォルダを作成し、Rake
を覚えておいてください &Rack
別のものです。
より多くの人が楽しめるように、この記事を共有することを忘れないでください🙂
読んでくれてありがとう!
-
ガイド付きアクセスとは?その使用方法は?
人々は、携帯電話を渡した瞬間に周囲をのぞき見する傾向があります。たとえば、面白い写真をチェックするために携帯電話を友人に渡すと、友人はスクロールを開始し、次に知っていることとして、あなたの個人的なものを調べ始めます。これを避けるために、Apple には Guided Access と呼ばれる機能があります。 画像クレジット: いもれ.com ガイド付きアクセスは、iPhone および iPad を使用しているときに一度に 1 つのタスクに集中できるようにするアクセシビリティ機能です。デバイスを 1 つのアプリに限定するだけでなく、アプリの機能も制御できます。 ガイド付きアクセスが有効な場合
-
RSS フィードの概要と使用方法
読書は、十分な知識を得るだけでなく、対人スキルにも役立つ健康的な習慣です。インターネットを使えば、紙を節約して環境に配慮することができるようになりましたが、特に読む価値のあるものを見つけようとすると、頭痛の種にもなります。読み取り可能なコンテンツの選択は、大量のコレクションが原因でインターネットを読む際に直面する可能性がある主要な問題の 1 つです。 この問題を解決するために、RSS フィードが開発されました。これにより、コンテンツを読んだり見たりする時間を節約できます。 RSS を使用すると、購読している作成者 (Web サイト) から RSS アグリゲーター (プログラム) にアクセスし