Sha256: ae9bb4cc17ed615c68cdfec6b3cba06ca7de1ace1e331062591ff4efd1932f3a
Contents?: true
Size: 995 Bytes
Versions: 5
Compression:
Stored size: 995 Bytes
Contents
module FactoryGirl class Linter def self.lint!(factories_to_lint) new(factories_to_lint).lint! end def initialize(factories_to_lint) @factories_to_lint = factories_to_lint @invalid_factories = calculate_invalid_factories end def lint! if invalid_factories.any? raise InvalidFactoryError, error_message end end private attr_reader :factories_to_lint, :invalid_factories def calculate_invalid_factories factories_to_lint.inject({}) do |result, factory| begin FactoryGirl.create(factory.name) rescue => error result[factory] = error end result end end def error_message lines = invalid_factories.map do |factory, exception| "* #{factory.name} - #{exception.message} (#{exception.class.name})" end <<-ERROR_MESSAGE.strip The following factories are invalid: #{lines.join("\n")} ERROR_MESSAGE end end end
Version data entries
5 entries across 5 versions & 3 rubygems