Module: Upkeep::Runtime
- Defined in:
- lib/upkeep/runtime.rb
Defined Under Namespace
Modules: Ambient, AttributeObserver, CacheKeyObserver, ChangeEvents, ChangeLog, CookieObserver, CurrentAttributesClassObserver, Install, Observation, PersistenceObserver, RelationObserver, RequestObserver, SessionObserver, WardenObserver Classes: Current, ObservedHash, ObservedRequest, ObservedWarden, Recorder, RelationProvenance
Class Method Summary collapse
Class Method Details
.wrap_current_attribute_readers(klass, names) ⇒ Object
1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 |
# File 'lib/upkeep/runtime.rb', line 1133 def wrap_current_attribute_readers(klass, names) wrapped = klass.instance_variable_get(:@upkeep_wrapped_current_attributes) || {} names.each do |name| name = name.to_sym next if wrapped[name] next unless klass.method_defined?(name) original_reader = klass.instance_method(name) klass.define_method(name) do value = original_reader.bind_call(self) Runtime::Ambient.record_current_attribute(klass.name || klass.inspect, name, value) value end wrapped[name] = true end klass.instance_variable_set(:@upkeep_wrapped_current_attributes, wrapped) end |