class Arborist::Event::NodeDelta
An event sent when one or more attributes of a node changes.
Public Class Methods
new( node, delta )
click to toggle source
Create a new NodeDelta
event for the specified node
. The delta
is a Hash of:
attribute_name => [ old_value, new_value ]
Calls superclass method
Arborist::Event::Node::new
# File lib/arborist/event/node_delta.rb, line 16 def initialize( node, delta ) super # Overridden for the documentation end
Public Instance Methods
delta_matches?( criteria, if_empty: true )
click to toggle source
Returns true
if the 'delta' value of the specified criteria
(which must respond to .all?) matches the delta this event represents. If the specified criteria doesn't contain any `delta` criteria, the default
value is used instead.
# File lib/arborist/event/node_delta.rb, line 47 def delta_matches?( criteria, if_empty: true ) self.log.debug "Delta matching %p (%p if empty)" % [ criteria, if_empty ] delta_criteria = criteria['delta'] return if_empty if !delta_criteria || delta_criteria.empty? self.log.debug "Matching event against delta criteria: %p" % [ delta_criteria ] return delta_criteria.all? do |key, val| self.log.debug " matching %p: %p against %p" % [ key, val, self.payload ] hash_matches( self.payload, key, val ) end.tap {|match| self.log.debug " event delta %s match." % [ match ? "DID" : "did not"] } end
informational?()
click to toggle source
Returns true
if the event contains node information other than about a change in its state.
# File lib/arborist/event/node_delta.rb, line 29 def informational? return true end
match( object )
click to toggle source
Returns true
if the specified object
matches this event.
Calls superclass method
Arborist::Event::Node#match
# File lib/arborist/event/node_delta.rb, line 35 def match( object ) rval = super && self.delta_matches?( object.criteria ) && !self.delta_matches?( object.negative_criteria, if_empty: false ) self.log.debug "Delta event #match: %p" % [ rval ] return rval end
payload()
click to toggle source
Overridden so delta events only contain the diff of attributes that changed.
# File lib/arborist/event/node_delta.rb, line 22 def payload return @payload end