module TestProf::LetItBe::Freezer::Stoplist
Stoplist
to prevent freezing objects and theirs associations that are defined with `let_it_be`'s `freeze: false` options during deep freezing.
To only keep track of objects that are available in current example group, `begin` adds a new layer, and `rollback` removes a layer of unrelated objects along with rolling back the transaction where they were created.
Stoplist
holds records declared with `freeze: false` (so we do not freeze them even if they're used as associated records for frozen objects)
Public Class Methods
begin()
click to toggle source
# File lib/test_prof/recipes/rspec/let_it_be.rb, line 142 def begin @stoplist.push([]) end
rollback()
click to toggle source
# File lib/test_prof/recipes/rspec/let_it_be.rb, line 146 def rollback @stoplist.pop end
stop!(record)
click to toggle source
# File lib/test_prof/recipes/rspec/let_it_be.rb, line 138 def stop!(record) @stoplist.last.push(record) end
stop?(record)
click to toggle source
# File lib/test_prof/recipes/rspec/let_it_be.rb, line 134 def stop?(record) @stoplist.any? { |layer| layer.include?(record) } end