Sha256: 709065a64c1b7934ffbf412315e22ceba52308e5a53dbdcaec251be3b17270d6

Contents?: true

Size: 826 Bytes

Versions: 9

Compression:

Stored size: 826 Bytes

Contents

module FactoryGirl
  class FactoryRunner
    def initialize(name, strategy, traits_and_overrides)
      @name     = name
      @strategy = strategy

      @overrides = traits_and_overrides.extract_options!
      @traits    = traits_and_overrides
    end

    def run(runner_strategy = @strategy, &block)
      factory = FactoryGirl.factory_by_name(@name)

      factory.compile

      if @traits.any?
        factory = factory.with_traits(@traits)
      end

      instrumentation_payload = {
        name: @name,
        strategy: runner_strategy,
        traits: @traits,
        overrides: @overrides,
        factory: factory
      }

      ActiveSupport::Notifications.instrument('factory_girl.run_factory', instrumentation_payload) do
        factory.run(runner_strategy, @overrides, &block)
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 5 rubygems

Version Path
ffactory_girl-4.8.2 lib/factory_girl/factory_runner.rb
factory_girl-4.9.0 lib/factory_girl/factory_runner.rb
ffactory_girl-4.8.1 lib/factory_girl/factory_runner.rb
factory_girl-4.8.1 lib/factory_girl/factory_runner.rb
enju_leaf-1.2.1 vendor/bundle/ruby/2.3/gems/factory_girl-4.8.0/lib/factory_girl/factory_runner.rb
factory_girl-4.8.0 lib/factory_girl/factory_runner.rb
ish_lib_manager-0.0.1 test/dummy/vendor/bundle/ruby/2.3.0/gems/factory_girl-4.7.0/lib/factory_girl/factory_runner.rb
factory_girl-4.7.0 lib/factory_girl/factory_runner.rb
opal-factory_girl-4.5.0.3 factory_girl/lib/factory_girl/factory_runner.rb