Class: Neo4j::Wrapper::Rule::EventListener
- Inherits:
-
Object
- Object
- Neo4j::Wrapper::Rule::EventListener
- Defined in:
- lib/neo4j-wrapper/rule/event_listener.rb
Class Method Summary collapse
- .classes_changed(changed_class_map) ⇒ Object
- .on_neo4j_started(db) ⇒ Object
- .on_node_deleted(node, old_properties, deleted_relationship_set, deleted_identity_map) ⇒ Object
- .on_property_changed(node, *changes) ⇒ Object
-
.on_relationship_created(rel) ⇒ Object
—————————————————————————————————————- Event handling methods —————————————————————————————————————-.
Class Method Details
.classes_changed(changed_class_map) ⇒ Object
47 48 49 50 51 |
# File 'lib/neo4j-wrapper/rule/event_listener.rb', line 47 def classes_changed(changed_class_map) changed_class_map.each_pair do |clazz, class_change| Rule.bulk_trigger_rules(clazz, class_change, changed_class_map) end end |
.on_neo4j_started(db) ⇒ Object
53 54 55 56 57 |
# File 'lib/neo4j-wrapper/rule/event_listener.rb', line 53 def on_neo4j_started(db) if not Neo4j::Config[:enable_rules] db.event_handler.remove(self) end end |
.on_node_deleted(node, old_properties, deleted_relationship_set, deleted_identity_map) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/neo4j-wrapper/rule/event_listener.rb', line 19 def on_node_deleted(node, old_properties, deleted_relationship_set, deleted_identity_map) # have we deleted a rule node ? del_rule_node = Rule.find_rule_node(node) del_rule_node && del_rule_node.clear_rule_node return if del_rule_node # do we have prop_aggregations for this clazz = old_properties['_classname'] rule_node = Rule.rule_node_for(clazz) return if rule_node.nil? id = node.neo_id rule_node.rules.each do |rule| next if rule.functions.nil? || (rule_node.rules.size == 1 && rule.bulk_update?) rule_name = rule.rule_name.to_s # is the rule node deleted ? deleted_rule_node = deleted_identity_map.get(rule_node.rule_node.neo_id) next if deleted_rule_node rule.functions.each do |function| next unless deleted_relationship_set.contains?(id, rule_name) previous_value = old_properties[function.function_id] function.delete(rule_name, rule_node.rule_node, previous_value) if previous_value end if rule.functions end end |
.on_property_changed(node, *changes) ⇒ Object
15 16 17 |
# File 'lib/neo4j-wrapper/rule/event_listener.rb', line 15 def on_property_changed(node, *changes) Rule.trigger_rules(node, *changes) if Rule.trigger?(node) end |
.on_relationship_created(rel) ⇒ Object
Event handling methods
10 11 12 13 |
# File 'lib/neo4j-wrapper/rule/event_listener.rb', line 10 def on_relationship_created(rel, *) Rule.trigger_rules(rel._start_node) if Rule.trigger?(rel._start_node) Rule.trigger_rules(rel._end_node) if Rule.trigger?(rel._end_node) end |