module FactoryBot::Internal
@api private
Public Class Methods
Source
# File lib/factory_bot/internal.rb, line 19 def configuration @configuration ||= Configuration.new end
Source
# File lib/factory_bot/internal.rb, line 86 def factory_by_name(name) factories.find(name) end
Source
# File lib/factory_bot/internal.rb, line 99 def register_default_strategies register_strategy(:build, FactoryBot::Strategy::Build) register_strategy(:create, FactoryBot::Strategy::Create) register_strategy(:attributes_for, FactoryBot::Strategy::AttributesFor) register_strategy(:build_stubbed, FactoryBot::Strategy::Stub) register_strategy(:null, FactoryBot::Strategy::Null) end
Source
# File lib/factory_bot/internal.rb, line 79 def register_factory(factory) factory.names.each do |name| factories.register(name, factory) end factory end
Source
# File lib/factory_bot/internal.rb, line 27 def register_inline_sequence(sequence) inline_sequences.push(sequence) sequence end
Source
# File lib/factory_bot/internal.rb, line 47 def register_sequence(sequence) sequence.names.each do |name| sequences.register(name, sequence) end sequence end
Source
# File lib/factory_bot/internal.rb, line 90 def register_strategy(strategy_name, strategy_class) strategies.register(strategy_name, strategy_class) StrategySyntaxMethodRegistrar.new(strategy_name).define_strategy_methods end
Source
# File lib/factory_bot/internal.rb, line 36 def register_trait(trait) trait.names.each do |name| traits.register(name, trait) end trait end
Source
# File lib/factory_bot/internal.rb, line 23 def reset_configuration @configuration = nil end
Source
# File lib/factory_bot/internal.rb, line 32 def rewind_inline_sequences inline_sequences.each(&:rewind) end
Source
# File lib/factory_bot/internal.rb, line 63 def rewind_sequence(*uri_parts) fail_argument_count(0, "1+") if uri_parts.empty? uri = build_uri(uri_parts) sequence = Sequence.find_by_uri(uri) || fail_unregistered_sequence(uri) sequence.rewind end
Source
# File lib/factory_bot/internal.rb, line 58 def rewind_sequences sequences.each(&:rewind) rewind_inline_sequences end
Source
# File lib/factory_bot/internal.rb, line 54 def sequence_by_name(name) sequences.find(name) end
Source
# File lib/factory_bot/internal.rb, line 72 def set_sequence(*uri_parts, value) uri = build_uri(uri_parts) || fail_argument_count(uri_parts.size, "2+") sequence = Sequence.find(*uri) || fail_unregistered_sequence(uri) sequence.set_value(value) end
Source
# File lib/factory_bot/internal.rb, line 95 def strategy_by_name(name) strategies.find(name) end
Source
# File lib/factory_bot/internal.rb, line 43 def trait_by_name(name, klass) traits.find(name).tap { |t| t.klass = klass } end
Private Class Methods
Source
# File lib/factory_bot/internal.rb, line 109 def build_uri(...) FactoryBot::UriManager.build_uri(...) end
Source
# File lib/factory_bot/internal.rb, line 113 def fail_argument_count(received, expected) fail ArgumentError, "wrong number of arguments (given #{received}, expected #{expected})" end
Source
# File lib/factory_bot/internal.rb, line 118 def fail_unregistered_sequence(uri) fail KeyError, "Sequence not registered: '#{uri}'." end