In production mode and when running the frozen specs, clover_freeze now calls freeze on all autoloaded constants, and Clover is an autoloaded constant. Both the specs and config.ru call clover_freeze unconditionally. This also removes the override of Clover.freeze. In production and when running the frozen specs, it would call Sequel::Model.freeze_descendants and DB.freeze. The freezing of all autoloaded constants handles DB.freeze, and clover_freeze calls Sequel::Model.freeze_descendants before freezing all autoloaded constants. This does remove the `Sequel::Model.descendants.each(&:finalize_associations)` when running non-frozen specs, but that's solely an optimization and I don't think it is worth the complexity. The `return self if frozen?` code was added to work around a bug in autoload_hash_branches, where Roda.freeze would break if you called it the second time on the same object. Now that Clover.freeze is only called once, it is not needed. |
||
---|---|---|
.. | ||
clec | ||
lib | ||
model | ||
prog | ||
routes | ||
scheduling | ||
serializers | ||
config_spec.rb | ||
coverage_helper.rb | ||
db_spec.rb | ||
resource_methods_spec.rb | ||
spec_helper.rb | ||
thawed_mock.rb | ||
ubid_spec.rb |