class FactoryBot::Enum

@api private

Public Class Methods

new(attribute_name, values = nil) click to toggle source
# File lib/factory_bot/enum.rb, line 4
def initialize(attribute_name, values = nil)
  @attribute_name = attribute_name
  @values = values
end

Public Instance Methods

build_traits(klass) click to toggle source
# File lib/factory_bot/enum.rb, line 9
def build_traits(klass)
  enum_values(klass).map do |trait_name, value|
    build_trait(trait_name, @attribute_name, value || trait_name)
  end
end

Private Instance Methods

build_trait(trait_name, attribute_name, value) click to toggle source
# File lib/factory_bot/enum.rb, line 21
def build_trait(trait_name, attribute_name, value)
  Trait.new(trait_name) do
    add_attribute(attribute_name) { value }
  end
end
enum_values(klass) click to toggle source
# File lib/factory_bot/enum.rb, line 17
def enum_values(klass)
  @values || klass.send(@attribute_name.to_s.pluralize)
end