Class: Dommy::NodeIterator
- Inherits:
-
Object
- Object
- Dommy::NodeIterator
- Includes:
- TreeTraversalCore
- Defined in:
- lib/dommy/tree_walker.rb
Overview
NodeIterator — flat-list traversal. Same filter semantics as TreeWalker but no sibling/parent navigation, just ‘next_node` / `previous_node` over a depth-first sequence anchored to `root`.
Instance Attribute Summary collapse
-
#filter ⇒ Object
readonly
Returns the value of attribute filter.
-
#root ⇒ Object
readonly
Returns the value of attribute root.
-
#what_to_show ⇒ Object
readonly
Returns the value of attribute what_to_show.
Instance Method Summary collapse
- #__js_call__(method, _args) ⇒ Object
- #__js_get__(key) ⇒ Object
- #detach ⇒ Object
-
#initialize(root, what_to_show = NodeFilter::SHOW_ALL, filter = nil) ⇒ NodeIterator
constructor
A new instance of NodeIterator.
- #next_node ⇒ Object
- #previous_node ⇒ Object
Methods included from TreeTraversalCore
Constructor Details
#initialize(root, what_to_show = NodeFilter::SHOW_ALL, filter = nil) ⇒ NodeIterator
Returns a new instance of NodeIterator.
289 290 291 292 293 294 295 |
# File 'lib/dommy/tree_walker.rb', line 289 def initialize(root, what_to_show = NodeFilter::SHOW_ALL, filter = nil) @root = root @what_to_show = what_to_show.to_i @filter = filter @reference_node = root @pointer_before_reference = true end |
Instance Attribute Details
#filter ⇒ Object (readonly)
Returns the value of attribute filter.
287 288 289 |
# File 'lib/dommy/tree_walker.rb', line 287 def filter @filter end |
#root ⇒ Object (readonly)
Returns the value of attribute root.
287 288 289 |
# File 'lib/dommy/tree_walker.rb', line 287 def root @root end |
#what_to_show ⇒ Object (readonly)
Returns the value of attribute what_to_show.
287 288 289 |
# File 'lib/dommy/tree_walker.rb', line 287 def what_to_show @what_to_show end |
Instance Method Details
#__js_call__(method, _args) ⇒ Object
348 349 350 351 352 353 354 355 356 357 |
# File 'lib/dommy/tree_walker.rb', line 348 def __js_call__(method, _args) case method when "nextNode" next_node when "previousNode" previous_node when "detach" detach end end |
#__js_get__(key) ⇒ Object
333 334 335 336 337 338 339 340 341 342 343 344 345 346 |
# File 'lib/dommy/tree_walker.rb', line 333 def __js_get__(key) case key when "root" @root when "whatToShow" @what_to_show when "filter" @filter when "referenceNode" @reference_node when "pointerBeforeReferenceNode" @pointer_before_reference end end |
#detach ⇒ Object
329 330 331 |
# File 'lib/dommy/tree_walker.rb', line 329 def detach nil end |
#next_node ⇒ Object
297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 |
# File 'lib/dommy/tree_walker.rb', line 297 def next_node loop do node = if @pointer_before_reference @reference_node else next_in_document_order(@reference_node) end return nil unless node @reference_node = node @pointer_before_reference = false return node if __accept__(node) == NodeFilter::FILTER_ACCEPT end end |
#previous_node ⇒ Object
313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 |
# File 'lib/dommy/tree_walker.rb', line 313 def previous_node loop do node = if @pointer_before_reference previous_in_document_order(@reference_node) else @reference_node end return nil unless node @reference_node = node @pointer_before_reference = true return node if __accept__(node) == NodeFilter::FILTER_ACCEPT end end |