Module: Upkeep::Runtime
- Defined in:
- lib/upkeep/runtime.rb
Defined Under Namespace
Modules: Ambient, AttributeObserver, 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
1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 |
# File 'lib/upkeep/runtime.rb', line 1055 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 |