Sha256: cbf99c756a55b5b2f716d93e17e6859cb5f09d41336a3c761077223f37f22aef

Contents?: true

Size: 633 Bytes

Versions: 15

Compression:

Stored size: 633 Bytes

Contents

module FactoryBot
  class Callback
    attr_reader :name

    def initialize(name, block)
      @name = name.to_sym
      @block = block
    end

    def run(instance, evaluator)
      case block.arity
      when 1, -1, -2 then syntax_runner.instance_exec(instance, &block)
      when 2 then syntax_runner.instance_exec(instance, evaluator, &block)
      else syntax_runner.instance_exec(&block)
      end
    end

    def ==(other)
      name == other.name &&
        block == other.block
    end

    protected

    attr_reader :block

    private

    def syntax_runner
      @syntax_runner ||= SyntaxRunner.new
    end
  end
end

Version data entries

15 entries across 14 versions & 3 rubygems

Version Path
factory_bot-6.5.1 lib/factory_bot/callback.rb
trusty-cms-7.0.9.1 vendor/bundle/ruby/3.1.0/gems/factory_bot-6.5.0/lib/factory_bot/callback.rb
trusty-cms-7.0.9.1 vendor/bundle/ruby/3.3.0/gems/factory_bot-6.5.0/lib/factory_bot/callback.rb
factory_bot-6.5.0 lib/factory_bot/callback.rb
blacklight-spotlight-3.6.0.beta8 vendor/bundle/ruby/3.2.0/gems/factory_bot-6.4.6/lib/factory_bot/callback.rb
factory_bot-6.4.6 lib/factory_bot/callback.rb
factory_bot-6.4.5 lib/factory_bot/callback.rb
factory_bot-6.4.4 lib/factory_bot/callback.rb
factory_bot-6.4.3 lib/factory_bot/callback.rb
factory_bot-6.4.2 lib/factory_bot/callback.rb
factory_bot-6.4.1 lib/factory_bot/callback.rb
factory_bot-6.4.0 lib/factory_bot/callback.rb
factory_bot-6.3.0 lib/factory_bot/callback.rb
factory_bot-6.2.1 lib/factory_bot/callback.rb
factory_bot-6.2.0 lib/factory_bot/callback.rb