Sha256: eb39166e649d6e81c40ce8eff6c85f48e5d68bd6a12d5b295f80a81125f75fed
Contents?: true
Size: 957 Bytes
Versions: 4
Compression:
Stored size: 957 Bytes
Contents
module FactoryBot class Callback attr_reader :name def initialize(name, block) @name = name.to_sym @block = block ensure_valid_callback_name! end def run(instance, evaluator) case block.arity when 1, -1 then syntax_runner.instance_exec(instance, &block) when 2 then syntax_runner.instance_exec(instance, evaluator, &block) else syntax_runner.instance_exec(&block) end end def ==(other) name == other.name && block == other.block end protected attr_reader :block private def ensure_valid_callback_name! unless FactoryBot::Internal.callback_names.include?(name) raise InvalidCallbackNameError, "#{name} is not a valid callback name. " + "Valid callback names are #{FactoryBot::Internal.callback_names.inspect}" end end def syntax_runner @syntax_runner ||= SyntaxRunner.new end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
factory_bot-5.2.0 | lib/factory_bot/callback.rb |
factory_bot-5.1.2 | lib/factory_bot/callback.rb |
factory_bot-5.1.1 | lib/factory_bot/callback.rb |
factory_bot-5.1.0 | lib/factory_bot/callback.rb |