validatesの引数に名付け

Railsのvalidatesの引数に同じようなのをならべなくてはならなくて、いつも通りにちょっと悩んでいたとき、ちょっと思い付いたので作ってみた。

class Hoge < NamedValidations
  define :moge, :length, maximum: 78
  define :fuga, :moge, minimum: 8
  define :moge_de_fuga do
    moge.fuga
  end
end

base = Hoge.new
validates :name, base.moge
validates :user, base.fuga.precense(true).fuga.fuga
validates :bio, base.moge_de_fuga

https://github.com/arika/named_validations