Sha256: 52fb05a1128d5a6be00942eedf54be0466647555a43002da587ccc8f0cf51fb3

Contents?: true

Size: 973 Bytes

Versions: 14

Compression:

Stored size: 973 Bytes

Contents

module FactoryBot
  class DefinitionHierarchy
    def callbacks
      FactoryBot.callbacks
    end

    def constructor
      FactoryBot.constructor
    end

    def to_create
      FactoryBot.to_create
    end

    def self.build_from_definition(definition)
      build_to_create(&definition.to_create)
      build_constructor(&definition.constructor)
      add_callbacks definition.callbacks
    end

    def self.add_callbacks(callbacks)
      if callbacks.any?
        define_method :callbacks do
          super() + callbacks
        end
      end
    end
    private_class_method :add_callbacks

    def self.build_constructor(&block)
      if block
        define_method(:constructor) do
          block
        end
      end
    end
    private_class_method :build_constructor

    def self.build_to_create(&block)
      if block
        define_method(:to_create) do
          block
        end
      end
    end
    private_class_method :build_to_create
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
factory_bot-5.1.2 lib/factory_bot/definition_hierarchy.rb
factory_bot-5.1.1 lib/factory_bot/definition_hierarchy.rb
factory_bot-5.1.0 lib/factory_bot/definition_hierarchy.rb
factory_bot-5.0.2 lib/factory_bot/definition_hierarchy.rb
factory_bot-5.0.1 lib/factory_bot/definition_hierarchy.rb
factory_bot-5.0.0 lib/factory_bot/definition_hierarchy.rb
factory_bot-5.0.0.rc2 lib/factory_bot/definition_hierarchy.rb
factory_bot-5.0.0.rc1 lib/factory_bot/definition_hierarchy.rb
factory_bot-4.11.1 lib/factory_bot/definition_hierarchy.rb
factory_bot-4.11.0 lib/factory_bot/definition_hierarchy.rb
factory_bot-4.10.0 lib/factory_bot/definition_hierarchy.rb
factory_bot-4.8.2 lib/factory_bot/definition_hierarchy.rb
factory_bot-1.0.1.alpha lib/factory_bot/definition_hierarchy.rb
factory_bot-1.0.0.alpha lib/factory_bot/definition_hierarchy.rb