Class: Levels::Audit::NestedGroupObserver

Inherits:
Object
  • Object
show all
Defined in:
lib/levels/audit/nested_group_observer.rb

Overview

The NestedGroupObserver is like a GroupObserver, but used to observe what happens during recursive value evaluation.

Instance Method Summary collapse

Constructor Details

#initialize(value_observer) ⇒ NestedGroupObserver

Initialize a new NestedGroupObserver.

value_observer - Levels::Audit::ValueObserver.



11
12
13
14
# File 'lib/levels/audit/nested_group_observer.rb', line 11

def initialize(value_observer)
  @value_observer = value_observer
  @values = []
end

Instance Method Details

#notify_nested(event_handler) ⇒ Object

Private: Notify that the observed values were seen. After notifying of the observed values, the set of observed values is reset.

event_handler - Levels::EventHandler.

Returns nothing.



31
32
33
34
# File 'lib/levels/audit/nested_group_observer.rb', line 31

def notify_nested(event_handler)
  @values.each { |v| event_handler.on_nested_values(v) }
  @values.clear
end

#observe_values(levels, group_key, value_key) ⇒ Object

Retrieve the value at a group+value key.

Returns a Levels::Audit::Values.



19
20
21
22
23
# File 'lib/levels/audit/nested_group_observer.rb', line 19

def observe_values(levels, group_key, value_key)
  values = @value_observer.observe_values(levels, group_key, value_key)
  @values << values
  values
end