Guardfile
require 'active_support/inflector'
guard :rspec, version: 2 do
watch(%r{^spec/factories/(.*)\.rb$}) { |m| "app/models/#{m[1].singularize}.rb" }
end
Factory GirlのRailsジェネレータは spec/factories/
以下にモデル名の複数形のファイルをつくる。
単純に "#{m[1]}s.rb"
としたのでは不規則変化に対応できない。
RailsやPadrinoはActiveSupportを使用しているので、これが備える単語の活用形を変換する機能、ActiveSupport::Inflectorを使う。
require 'active_support/all'
とするとActiveSupportのすべてのファイルが読み込まれるが、かなりの量があり体感ではっきりと遅いと感じるほどのラグもあるため、特定の機能のみを使いたい場合はそれを提供するファイルのみを読み込むほうがよい。