class FactoryBot::CallbacksObserver
@api private
Public Class Methods
Source
# File lib/factory_bot/callbacks_observer.rb, line 4 def initialize(callbacks, evaluator) @callbacks = callbacks @evaluator = evaluator @completed = [] end
Public Instance Methods
Source
# File lib/factory_bot/callbacks_observer.rb, line 10 def update(name, result_instance) callbacks_by_name(name).each do |callback| if !completed?(result_instance, callback) callback.run(result_instance, @evaluator) record_completion!(result_instance, callback) end end end
Private Instance Methods
Source
# File lib/factory_bot/callbacks_observer.rb, line 21 def callbacks_by_name(name) @callbacks.select { |callback| callback.name == name } end
Source
# File lib/factory_bot/callbacks_observer.rb, line 25 def completed?(instance, callback) key = completion_key_for(instance, callback) @completed.include?(key) end
Source
# File lib/factory_bot/callbacks_observer.rb, line 35 def completion_key_for(instance, callback) "#{instance.object_id}-#{callback.object_id}" end
Source
# File lib/factory_bot/callbacks_observer.rb, line 30 def record_completion!(instance, callback) key = completion_key_for(instance, callback) @completed << key end