1
0
Fork 0
mirror of https://github.com/thoughtbot/factory_bot.git synced 2022-11-09 11:43:51 -05:00

Introduce FactoryBot::Internal module

The `FactoryBot` module has a mixture of methods that are meant for use
by people using the library, and methods that are meant only for
internal use. The methods meant for internal use are cluttering the
documentation, and may be confusing to users.

This change was prompted by [#1258]. Rather than introduce yet another
public method on `FactoryBot` meant only for internal use,
we can introduce a `FactoryBot::Internal` module,
and avoid generating documentation for that module.

The `FactoryBot::Internal.register_inline_sequence` method in [#1258]
will need access to the configuration instance, so this PR moves that
into `FactoryBot::Internal`. Eventually I plan to deprecate
`FactoryBot.configuration` and `FactoryBot.reset_configuration`, and to
move more of the `FactoryBot` methods into `FactoryBot::Internal`, but I
would rather hold off on all that until the dust settles on the 5.0
release.

[#1258]: https://github.com/thoughtbot/factory_bot/pull/1258
This commit is contained in:
Daniel Colson 2019-02-11 19:16:56 -05:00
parent 721cac082f
commit d2a30d6fd2
4 changed files with 19 additions and 4 deletions

View file

@ -45,16 +45,17 @@ require "factory_bot/decorator/invocation_tracker"
require "factory_bot/decorator/new_constructor"
require "factory_bot/linter"
require "factory_bot/version"
require "factory_bot/internal"
module FactoryBot
DEPRECATOR = ActiveSupport::Deprecation.new("6.0", "factory_bot")
def self.configuration
@configuration ||= Configuration.new
Internal.configuration
end
def self.reset_configuration
@configuration = nil
Internal.reset_configuration
end
mattr_accessor :use_parent_strategy, instance_accessor: false

View file

@ -0,0 +1,14 @@
module FactoryBot
# @api private
module Internal
class << self
def configuration
@configuration ||= Configuration.new
end
def reset_configuration
@configuration = nil
end
end
end
end

View file

@ -1,6 +1,6 @@
module FactoryBot
def self.reload
reset_configuration
Internal.reset_configuration
register_default_strategies
register_default_callbacks
find_definitions

View file

@ -54,7 +54,7 @@ module FactoryBot
private
def configuration
FactoryBot.configuration
FactoryBot::Internal.configuration
end
end