Class: RRTF::ListLevelNode
- Inherits:
-
CommandNode
- Object
- Node
- ContainerNode
- CommandNode
- RRTF::ListLevelNode
- Defined in:
- lib/rrtf/node.rb
Overview
This class represents a list level, and carries out indenting information and the bullet or number that is prepended to each ListTextNode.
The class overrides the list method to implement nesting, and provides the item method to add a new list item, the ListTextNode.
Instance Attribute Summary collapse
-
#kind ⇒ Object
readonly
Returns the kind of this level, either :bullets or :decimal.
Attributes inherited from CommandNode
#prefix, #split, #suffix, #wrap
Attributes inherited from ContainerNode
Attributes inherited from Node
Instance Method Summary collapse
-
#initialize(parent, template, kind, level = 1) ⇒ ListLevelNode
constructor
A new instance of ListLevelNode.
-
#item {|node| ... } ⇒ Object
Creates a new
ListTextNodeand yields it to the calling block. -
#level ⇒ Object
Returns the indenting level of this list, from 1 to 9.
-
#list(kind = @kind) {|node| ... } ⇒ Object
Creates a new
ListLevelNodeto implement nested lists.
Methods inherited from CommandNode
#<<, #apply, #background, #bold, #colour, #font, #footnote, #foreground, #image, #italic, #line_break, #link, #paragraph, #strike, #subscript, #superscript, #table, #to_rtf, #underline
Methods inherited from ContainerNode
#[], #each, #first, #last, #size, #store, #to_rtf
Methods inherited from Node
#is_root?, #next_node, #previous_node, #root
Constructor Details
#initialize(parent, template, kind, level = 1) ⇒ ListLevelNode
Returns a new instance of ListLevelNode.
631 632 633 634 635 636 637 638 639 640 641 642 643 |
# File 'lib/rrtf/node.rb', line 631 def initialize(parent, template, kind, level=1) @template = template @kind = kind @level = template.level_for(level, kind) prefix = '\pard' prefix << @level.tabs.map {|tw| "\\tx#{tw}"}.join prefix << "\\li#{@level.indent}\\fi-#{@level.indent}" prefix << "\\ql\\qlnatural\\pardirnatural\n" prefix << "\\ls#{@template.id}\\ilvl#{@level.level-1}\\cf0" super(parent, prefix, nil, true, false) end |
Instance Attribute Details
#kind ⇒ Object (readonly)
Returns the kind of this level, either :bullets or :decimal
646 647 648 |
# File 'lib/rrtf/node.rb', line 646 def kind @kind end |
Instance Method Details
#item {|node| ... } ⇒ Object
Creates a new ListTextNode and yields it to the calling block
654 655 656 657 658 |
# File 'lib/rrtf/node.rb', line 654 def item node = ListTextNode.new(self, @level) yield node self.store(node) end |
#level ⇒ Object
Returns the indenting level of this list, from 1 to 9
649 650 651 |
# File 'lib/rrtf/node.rb', line 649 def level @level.level end |
#list(kind = @kind) {|node| ... } ⇒ Object
Creates a new ListLevelNode to implement nested lists
661 662 663 664 665 |
# File 'lib/rrtf/node.rb', line 661 def list(kind=@kind) node = ListLevelNode.new(self, @template, kind, @level.level+1) yield node self.store(node) end |