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