Redmineにプラグインで列挙項目を追加する

たったこれだけのコードで列挙項目が使用可能になってしまう。
すばらしい。
Redmineのバージョンは1.1.2。


/plugin_root/app/model/new_enum.rb

class NewEnum < Enumeration
  #アンロード可能にする
  #これがないとdevelopmentモードで2回目のロード時に"superclass mismatch"と言われておっこちる
  unloadable

  has_many :hoges, :foreign_key => 'hoge_column'

  OptionName = :enumeration_new_enum

  def option_name
    OptionName
  end

  #この列挙項目インスタンスを使用しているレコードがいくつあるかを返す
  #これが1以上を返す場合はこの列挙項目インスタンスの削除時に
  #他の列挙項目インスタンスへの割り当てをするための画面に遷移する
  #最終的にこのメソッドが0を返さないとこの列挙項目インスタンスの削除はお断りされる
  def objects_count
    hoges.count
  end

  #この列挙項目インスタンスを別の列挙項目インスタンスに割り当てる
  def transfer_relations(to)
    hoges.update_all("hoge_column = #{to.id}")
  end
end

/plugin_root/init.rb

require 'dispatcher'

Dispatcher.to_prepare :pluin_name do
  require_dependency 'new_enum'
end

/plugin_root/config/locales/ja.yml

ja:
  enumeration_new_enum: 列挙項目名