Class: Webgen::ItemTracker::TemplateChain

Inherits:
Object
  • Object
show all
Defined in:
lib/webgen/item_tracker/template_chain.rb

Overview

This class is used to track the template chain for a node.

Note that only nodes that support the #template_chain method can be used (so all page, template and custom webgen nodes are okay).

The item for this tracker is the node whose template chain should be tracked, i.e. add an item like this:

website.ext.item_tracker.add(some_node, :template_chain, other_node)

Instance Method Summary collapse

Constructor Details

#initialize(website) ⇒ TemplateChain

:nodoc:



20
21
22
# File 'lib/webgen/item_tracker/template_chain.rb', line 20

def initialize(website) #:nodoc:
  @website = website
end

Instance Method Details

#item_changed?(alcn, old_chain) ⇒ Boolean

:nodoc:

Returns:

  • (Boolean)


32
33
34
# File 'lib/webgen/item_tracker/template_chain.rb', line 32

def item_changed?(alcn, old_chain) #:nodoc:
  @website.tree[alcn].nil? || item_data(alcn) != old_chain
end

#item_data(alcn) ⇒ Object

:nodoc:



28
29
30
# File 'lib/webgen/item_tracker/template_chain.rb', line 28

def item_data(alcn) #:nodoc:
  nodes_to_alcn(@website.tree[alcn].template_chain)
end

#item_description(alcn, data) ⇒ Object

:nodoc:



40
41
42
# File 'lib/webgen/item_tracker/template_chain.rb', line 40

def item_description(alcn, data) #:nodoc:
  "Template chain for node '#{alcn}'"
end

#item_id(node) ⇒ Object

:nodoc:



24
25
26
# File 'lib/webgen/item_tracker/template_chain.rb', line 24

def item_id(node) #:nodoc:
  node.alcn
end

#referenced_nodes(alcn, data) ⇒ Object

:nodoc:



36
37
38
# File 'lib/webgen/item_tracker/template_chain.rb', line 36

def referenced_nodes(alcn, data) #:nodoc:
  [alcn]
end