1
2

More than 1 year has passed since last update.

Rakeタスクのメソッドと定数はどこに定義するか

Posted at

経緯

Rakeタスクの中でメソッドと定数を定義していたためリファクタリングしたかったときに参考記事が少なかったため独自で調べたこととその方法について書こうと思います。

ruby.rake
namespace :XXXXX do
  task YYYYY: :environment do
    #リファクタリングしたい定数の集団
    CONSTANT1 = hogehoge.freeze
    CONSTANT2 = hogefuga.freeze
    CONSTANT3 = fugafuga.freeze
    CONSTANT4 = fugahoge.freeze

    ################
    # rakeタスク処理 #
    ################
  end

  #リファクタリングしたいメソッドの集団
  private

  def method1(arg)
    ...
  end

  def method2(arg)
    ...
  end

  def method3(arg1, arg2)
    ...
  end

  def method4
    ...
  end

調べた方法3つ

① namespaceの外に定義 → メソッド数が少ないならいいかも

② Refinementsを使う → 今回はやりたいことと違う気がする

③ libの配下にクラスを作成し切り出す → リファクタリングとしてもスタンダード

採用した方法

今回は上記の参考記事をもとに③の方法でリファクタリングすることにしました!
自作したクラスを読み込む方法は過去記事を参照。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2