class FactoryBot::DeclarationList

@api private

Public Class Methods

new(name = nil) click to toggle source
# File lib/factory_bot/declaration_list.rb, line 6
def initialize(name = nil)
  @declarations = []
  @name = name
  @overridable = false
end

Public Instance Methods

attributes() click to toggle source
# File lib/factory_bot/declaration_list.rb, line 23
def attributes
  @attributes ||= AttributeList.new(@name).tap do |list|
    to_attributes.each do |attribute|
      list.define_attribute(attribute)
    end
  end
end
declare_attribute(declaration) click to toggle source
# File lib/factory_bot/declaration_list.rb, line 12
def declare_attribute(declaration)
  delete_declaration(declaration) if overridable?

  @declarations << declaration
  declaration
end
each(&block) click to toggle source
# File lib/factory_bot/declaration_list.rb, line 31
def each(&block)
  @declarations.each(&block)
end
overridable() click to toggle source
# File lib/factory_bot/declaration_list.rb, line 19
def overridable
  @overridable = true
end

Private Instance Methods

delete_declaration(declaration) click to toggle source
# File lib/factory_bot/declaration_list.rb, line 37
def delete_declaration(declaration)
  @declarations.delete_if { |decl| decl.name == declaration.name }
end
overridable?() click to toggle source
# File lib/factory_bot/declaration_list.rb, line 45
def overridable?
  @overridable
end
to_attributes() click to toggle source
# File lib/factory_bot/declaration_list.rb, line 41
def to_attributes
  @declarations.reduce([]) { |result, declaration| result + declaration.to_attributes }
end