Sha256: e3a58b44b2967a36566ef2a5047b45745fb23364763cef25e615a6a6e6c9aa7a
Contents?: true
Size: 1.07 KB
Versions: 4
Compression:
Stored size: 1.07 KB
Contents
module IceNine class Freezer def self.find(name) freezer = name.split('::').reduce(self) do |mod, const| mod.const_lookup(const) or break mod end freezer if freezer < self # only return a descendant freezer end class ObjectWithExclussion < Object class_attribute :excluded_vars self.excluded_vars = [] def self.freeze_instance_variables(object, recursion_guard) object.instance_variables.each do |ivar_name| next if excluded_vars.include? ivar_name Freezer.guarded_deep_freeze( object.instance_variable_get(ivar_name), recursion_guard ) end end private_class_method :freeze_instance_variables end class ActiveScaffold < ::IceNine::Freezer::Object class DataStructures < ::IceNine::Freezer::Object class Column < ::IceNine::Freezer::ObjectWithExclussion self.excluded_vars = %i[@active_record_class @column] end class Association < ::IceNine::Freezer::NoFreeze end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems