Class: Webgen::ItemTracker::NodeMetaInfo
- Inherits:
-
Object
- Object
- Webgen::ItemTracker::NodeMetaInfo
- Defined in:
- lib/webgen/item_tracker/node_meta_info.rb
Overview
This class is used to track changes to a node’s meta information.
Depending on what should be tracked, one needs to provide the following item:
- node, nil
-
Tracks changes to the whole meta information of the node, i.e. if any meta information value changes, a change is detected.
- node, key
-
Tracks changes to a specific meta information key of the node.
Here are some examples:
website.ext.item_tracker.add(some_node, :node_meta_info, my_node) # first case
website.ext.item_tracker.add(some_node, :node_meta_info, my_node, 'title') # second case
Constant Summary collapse
- CONTENT_MODIFICATION_KEY =
'modified_at'
Instance Method Summary collapse
-
#initialize(website) ⇒ NodeMetaInfo
constructor
:nodoc:.
-
#item_changed?(iid, old_data) ⇒ Boolean
:nodoc:.
-
#item_data(alcn, key = nil) ⇒ Object
:nodoc:.
-
#item_description(iid, data) ⇒ Object
:nodoc:.
-
#item_id(node, key = nil) ⇒ Object
:nodoc:.
-
#referenced_nodes(iid, mi) ⇒ Object
:nodoc:.
Constructor Details
#initialize(website) ⇒ NodeMetaInfo
:nodoc:
28 29 30 |
# File 'lib/webgen/item_tracker/node_meta_info.rb', line 28 def initialize(website) #:nodoc: @website = website end |
Instance Method Details
#item_changed?(iid, old_data) ⇒ Boolean
:nodoc:
47 48 49 50 |
# File 'lib/webgen/item_tracker/node_meta_info.rb', line 47 def item_changed?(iid, old_data) #:nodoc: alcn, key = *iid @website.tree[alcn].nil? || item_data(alcn, key) != old_data end |
#item_data(alcn, key = nil) ⇒ Object
:nodoc:
36 37 38 39 40 41 42 43 44 45 |
# File 'lib/webgen/item_tracker/node_meta_info.rb', line 36 def item_data(alcn, key = nil) #:nodoc: mi = @website.tree[alcn]. if key.nil? && mi['modified_at_in_dest_path'] mi elsif key.nil? (mi = mi.dup; mi.delete(CONTENT_MODIFICATION_KEY); mi) else mi[key].dup end end |
#item_description(iid, data) ⇒ Object
:nodoc:
56 57 58 59 |
# File 'lib/webgen/item_tracker/node_meta_info.rb', line 56 def item_description(iid, data) #:nodoc: alcn, key = *iid (key.nil? ? "Any meta info from <#{alcn}>" : "Meta info key '#{key}' from <#{alcn}>") end |
#item_id(node, key = nil) ⇒ Object
:nodoc:
32 33 34 |
# File 'lib/webgen/item_tracker/node_meta_info.rb', line 32 def item_id(node, key = nil) #:nodoc: [node.alcn, key] end |
#referenced_nodes(iid, mi) ⇒ Object
:nodoc:
52 53 54 |
# File 'lib/webgen/item_tracker/node_meta_info.rb', line 52 def referenced_nodes(iid, mi) #:nodoc: [iid.first] end |