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/decorator/new_constructor"
require "factory_bot/linter" require "factory_bot/linter"
require "factory_bot/version" require "factory_bot/version"
require "factory_bot/internal"
module FactoryBot module FactoryBot
DEPRECATOR = ActiveSupport::Deprecation.new("6.0", "factory_bot") DEPRECATOR = ActiveSupport::Deprecation.new("6.0", "factory_bot")
def self.configuration def self.configuration
@configuration ||= Configuration.new Internal.configuration
end end
def self.reset_configuration def self.reset_configuration
@configuration = nil Internal.reset_configuration
end end
mattr_accessor :use_parent_strategy, instance_accessor: false 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 module FactoryBot
def self.reload def self.reload
reset_configuration Internal.reset_configuration
register_default_strategies register_default_strategies
register_default_callbacks register_default_callbacks
find_definitions find_definitions

View file

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