Skip to content

Commit ac91aeb

Browse files
Earlopainmike-burns
authored andcommitted
Remove dependency on observer
1 parent 138ae7d commit ac91aeb

File tree

5 files changed

+6
-13
lines changed

5 files changed

+6
-13
lines changed

Gemfile.lock

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ PATH
33
specs:
44
factory_bot (6.4.3)
55
activesupport (>= 5.0.0)
6-
observer
76

87
GEM
98
remote: https://rubygems.org/
@@ -74,7 +73,6 @@ GEM
7473
middleware (0.1.0)
7574
minitest (5.14.3)
7675
multi_test (0.1.2)
77-
observer (0.1.2)
7876
parallel (1.22.1)
7977
parser (3.1.2.1)
8078
ast (~> 2.4.1)

factory_bot.gemspec

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ Gem::Specification.new do |s|
2727
}
2828

2929
s.add_dependency("activesupport", ">= 5.0.0")
30-
s.add_dependency("observer") if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.3")
3130

3231
s.add_development_dependency("activerecord")
3332
s.add_development_dependency("appraisal")

lib/factory_bot/evaluation.rb

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,10 @@
1-
require "observer"
2-
31
module FactoryBot
42
class Evaluation
5-
include Observable
6-
7-
def initialize(evaluator, attribute_assigner, to_create)
3+
def initialize(evaluator, attribute_assigner, to_create, observer)
84
@evaluator = evaluator
95
@attribute_assigner = attribute_assigner
106
@to_create = to_create
7+
@observer = observer
118
end
129

1310
delegate :object, :hash, to: :@attribute_assigner
@@ -20,8 +17,7 @@ def create(result_instance)
2017
end
2118

2219
def notify(name, result_instance)
23-
changed
24-
notify_observers(name, result_instance)
20+
@observer.update(name, result_instance)
2521
end
2622
end
2723
end

lib/factory_bot/factory.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,9 @@ def run(build_strategy, overrides, &block)
3636
evaluator = evaluator_class.new(strategy, overrides.symbolize_keys)
3737
attribute_assigner = AttributeAssigner.new(evaluator, build_class, &compiled_constructor)
3838

39+
observer = CallbacksObserver.new(callbacks, evaluator)
3940
evaluation =
40-
Evaluation.new(evaluator, attribute_assigner, compiled_to_create)
41-
evaluation.add_observer(CallbacksObserver.new(callbacks, evaluator))
41+
Evaluation.new(evaluator, attribute_assigner, compiled_to_create, observer)
4242

4343
strategy.result(evaluation).tap(&block)
4444
end

spec/factory_bot/factory_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -294,7 +294,7 @@ def build_factory
294294
attribute = FactoryBot::Attribute::Dynamic.new(:name, false, -> { "value" })
295295
attributes = [attribute]
296296
declaration = FactoryBot::Declaration::Dynamic.new(:name, false, -> { "value" })
297-
strategy = double("strategy", result: "result", add_observer: true)
297+
strategy = double("strategy", result: "result")
298298
define_model("User", name: :string)
299299
allow(FactoryBot::Declaration::Dynamic).to receive(:new)
300300
.and_return declaration

0 commit comments

Comments
 (0)