mirror of
https://github.com/thoughtbot/factory_bot.git
synced 2022-11-09 11:43:51 -05:00
5947e10578
Why: Another run of internal methods that should not be publicly available from the base namespace. This time the sequence involving methods were moved. It's worth noticing that the ```Internal``` class is getting crowded. Maybe we can start name-spacing the internal groups into modules under ```internal/sequence.rb``` ```internal/trait.rb``` and so on. Thoughts? This PR: - Moves the ```register_sequence```, ```sequence_by_name```, ```sequences``` and ```rewind_sequences``` to the ```FactoryBot::Internal``` module. - Deprecates uses of ```sequence_by_name```, and ```sequences``` from the ```FactoryBot``` module. - Refactor rewind sequences test to use spies This is one of the steps towards fixing [this issue](https://github.com/thoughtbot/factory_bot/pull/1285#1281)
35 lines
799 B
Ruby
35 lines
799 B
Ruby
module FactoryBot
|
|
class Declaration
|
|
# @api private
|
|
class Implicit < Declaration
|
|
def initialize(name, factory = nil, ignored = false)
|
|
super(name, ignored)
|
|
@factory = factory
|
|
end
|
|
|
|
def ==(other)
|
|
self.class == other.class &&
|
|
name == other.name &&
|
|
factory == other.factory &&
|
|
ignored == other.ignored
|
|
end
|
|
|
|
protected
|
|
|
|
attr_reader :factory
|
|
|
|
private
|
|
|
|
def build
|
|
if FactoryBot.factories.registered?(name)
|
|
[Attribute::Association.new(name, name, {})]
|
|
elsif FactoryBot::Internal.sequences.registered?(name)
|
|
[Attribute::Sequence.new(name, name, @ignored)]
|
|
else
|
|
@factory.inherit_traits([name])
|
|
[]
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|