/usr/lib/ruby/1.8/rd/block-element.rb is in librd-ruby1.8 0.6.22-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 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 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 | require 'rd/element'
require 'rd/labeled-element'
module RD
# Block-level Element of document tree. abstruct class.
class BlockElement < Element
end
class Headline < BlockElement
include NonterminalElement
include LabeledElement
MARK2LEVEL = {
"=" => 1,
"==" => 2,
"===" => 3,
"====" => 4,
"+" => 5,
"++" => 6
}
attr_accessor :level
attr_reader :title
def initialize(level_num)
super()
@level = level_num
@title = []
end
def accept(visitor)
visitor.visit_Headline(self)
end
def calculate_label
ret = ""
@title.each do |i|
ret << i.to_label
end
ret
end
private :calculate_label
def Headline.mark_to_level(mark_str)
MARK2LEVEL[mark_str] or
raise ArgumentError, "#{mark_str} is irregular for Headline mark."
end
def children
@title
end
end
class Include < BlockElement
include TerminalElement
attr_accessor :filename
def initialize(filename)
super()
@filename = filename
end
def accept(visitor)
visitor.visit_Include(self)
end
end # Include
class TextBlock < BlockElement
include NonterminalElement
attr_accessor :content
def initialize()
super()
@content = []
end
def accept(visitor)
visitor.visit_TextBlock(self)
end
def children
@content
end
end
class Verbatim < BlockElement
include TerminalElement
attr_reader :content
def initialize(content_strings = [])
super()
@content = content_strings # Array of String
end
def accept(visitor)
visitor.visit_Verbatim(self)
end
def each_line
if @content.respond_to?(:each_line)
@content.each_line {|i|
yield i
}
else
@content.each {|i|
yield i
}
end
end
end
end
|