Sha256: 50ad5f643c9877cd26bef642ee1db17b834226e68c0d99b4f7d9836fe75550bc

Contents?: true

Size: 515 Bytes

Versions: 15

Compression:

Stored size: 515 Bytes

Contents

module FactoryBot
  # @api private
  class EvaluatorClassDefiner
    def initialize(attributes, parent_class)
      @parent_class = parent_class
      @attributes   = attributes

      attributes.each do |attribute|
        evaluator_class.define_attribute(attribute.name, &attribute.to_proc)
      end
    end

    def evaluator_class
      @evaluator_class ||= Class.new(@parent_class).tap do |klass|
        klass.attribute_lists ||= []
        klass.attribute_lists += [@attributes]
      end
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

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