Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

Ruby on Rails | Railsプラグインの開発時にrakeタスクを作成する方法

概要

Railsプラグインの開発時にrakeタスクを作成する方法

内容

Railsプラグインの開発時にrakeタスクを作成する方法について。
プラグインのプロジェクト内ではなく、プラグインをGemとして利用する側で
使うrakeを想定しています。

作成手順

・デフォルトで作成されているplugin_name.rakeを編集
※初期はコメントアウトされている。
・/lib/plugin_name/railtie.rbを作成
・/lib/plugin_name.rbで/lib/plugin_name/ralitie.rbをrequireする
・/test/dummyに移動して

rake -T

すると作成したrakeタスクが表示されていることを確認できる

サンプル

仕様

プロジェクトはltsv-on-railsとする

ソースコード

lib/tasks/ltsv-on-rails_tasks.rb

desc "add require into environment.rb for ltsv-on-rails."
task :ltsv-on-rails do
  puts "test"
end

lib/ltsv-on-rails/railtie.rb

require 'ltsv-on-rails'
require 'rails'
module Ltsvable
  class Railtie < Rails::Railtie
    railtie_name :ltsv-on-rails

    rake_tasks do
      load "tasks/ltsv-on-rails_tasks.rake"
    end
  end
end

lit/ltsv-on-rails.rb

require "ltsv-on-rails/railtie"

module Ltsvable
end
rake試行
cd test/dummy
$ bundle exec rake -T | grep ltsv
rake ltsv-on-rails               # add require into environment.rb for ltsv-on-rails
$ be rake ltsv-on-rails
test