Class: Webgen::ItemTracker::MissingNode
- Inherits:
-
Object
- Object
- Webgen::ItemTracker::MissingNode
- Defined in:
- lib/webgen/item_tracker/missing_node.rb
Overview
This class is used to track unresolved absolute node paths.
The item for this tracker is the unresolved absolute node path and, optionally, a language.
For example:
website.ext.item_tracker.add(some_node, :missing_node, '/dir/missing.html')
website.ext.item_tracker.add(some_node, :missing_node, '/dir/missing.html', 'de')
Instance Method Summary collapse
-
#initialize(website) ⇒ MissingNode
constructor
:nodoc:.
-
#item_changed?(iid, old_data) ⇒ Boolean
:nodoc:.
-
#item_data(path, lang) ⇒ Object
:nodoc:.
-
#item_description(iid, data) ⇒ Object
:nodoc:.
-
#item_id(path, lang = nil) ⇒ Object
:nodoc:.
-
#referenced_nodes(iid, missing) ⇒ Object
:nodoc:.
Constructor Details
#initialize(website) ⇒ MissingNode
:nodoc:
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/webgen/item_tracker/missing_node.rb', line 20 def initialize(website) #:nodoc: @website = website @at_least_one_node_created = true @stop_reporting = false @nodes_to_ignore = Set.new @website.blackboard.add_listener(:reused_existing_node, 'item_tracker.missing_node') do |node, path| @nodes_to_ignore << node end @website.blackboard.add_listener(:after_node_created, 'item_tracker.missing_node') do |node| @at_least_one_node_created = true unless @nodes_to_ignore.include?(node) end @website.blackboard.add_listener(:after_all_nodes_written, 'item_tracker.missing_node') do if @at_least_one_node_created @at_least_one_node_created = false else @stop_reporting = true end @nodes_to_ignore = Set.new end @website.blackboard.add_listener(:website_generated, 'item_tracker.missing_node') do @at_least_one_node_created = true @stop_reporting = false @nodes_to_ignore = Set.new end end |
Instance Method Details
#item_changed?(iid, old_data) ⇒ Boolean
:nodoc:
55 56 57 58 59 |
# File 'lib/webgen/item_tracker/missing_node.rb', line 55 def item_changed?(iid, old_data) #:nodoc: return false if @stop_reporting missing = item_data(*iid) missing || missing != old_data end |
#item_data(path, lang) ⇒ Object
:nodoc:
51 52 53 |
# File 'lib/webgen/item_tracker/missing_node.rb', line 51 def item_data(path, lang) #:nodoc: @website.tree.resolve_node(path, lang).nil? end |
#item_description(iid, data) ⇒ Object
:nodoc:
65 66 67 68 |
# File 'lib/webgen/item_tracker/missing_node.rb', line 65 def item_description(iid, data) #:nodoc: path, lang = iid "Missing acn, alcn or dest path <#{path}>" << (lang.nil? ? '' : " in language '#{lang}'") end |
#item_id(path, lang = nil) ⇒ Object
:nodoc:
47 48 49 |
# File 'lib/webgen/item_tracker/missing_node.rb', line 47 def item_id(path, lang = nil) #:nodoc: [path, lang] end |
#referenced_nodes(iid, missing) ⇒ Object
:nodoc:
61 62 63 |
# File 'lib/webgen/item_tracker/missing_node.rb', line 61 def referenced_nodes(iid, missing) #:nodoc: [iid.first] end |