class PseudoHiki::HtmlFormat
Constants
- COLSPAN
- Formatter
- ImgFormat
for
InlineParser
- LI
- LinkSep
- PLUGIN
- SPACE
Attributes
auto_link_in_verbatim[RW]
element_name[R]
format_class[W]
formatter[W]
generator[W]
Public Class Methods
create(options=nil)
click to toggle source
# File lib/pseudohiki/htmlformat.rb, line 45 def self.create(options=nil) self end
default_options()
click to toggle source
# File lib/pseudohiki/htmlformat.rb, line 49 def self.default_options { :auto_link_in_verbatim => @auto_link_in_verbatim } end
format(tree, options=nil, memo=nil)
click to toggle source
# File lib/pseudohiki/htmlformat.rb, line 53 def self.format(tree, options=nil, memo=nil) cur_auto_link_setting = @auto_link_in_verbatim options = default_options unless options @auto_link_in_verbatim = options[:auto_link_in_verbatim] formatter = get_plain tree.accept(formatter, memo) ensure @auto_link_in_verbatim = cur_auto_link_setting end
get_plain()
click to toggle source
# File lib/pseudohiki/htmlformat.rb, line 41 def self.get_plain self::Formatter[PlainNode] end
new(element_name, generator=HtmlElement)
click to toggle source
# File lib/pseudohiki/htmlformat.rb, line 63 def initialize(element_name, generator=HtmlElement) @element_name = element_name @generator = generator @formatter = Formatter @format_class = self.class end
setup_new_formatter(new_formatter, generator)
click to toggle source
# File lib/pseudohiki/htmlformat.rb, line 32 def self.setup_new_formatter(new_formatter, generator) new_formatter.each do |node_class, formatter| new_formatter[node_class] = formatter.clone new_formatter[node_class].generator = generator new_formatter[node_class].formatter = new_formatter new_formatter[node_class].format_class = self end end
Public Instance Methods
create_element(tree=nil)
click to toggle source
# File lib/pseudohiki/htmlformat.rb, line 85 def create_element(tree=nil) @generator.create(@element_name) end
push_visited_results(element, tree, memo)
click to toggle source
# File lib/pseudohiki/htmlformat.rb, line 75 def push_visited_results(element, tree, memo) tree.each {|token| element.push visited_result(token, memo) } end
split_into_parts(tree, separator)
click to toggle source
# File lib/pseudohiki/htmlformat.rb, line 89 def split_into_parts(tree, separator) chunks = [] tree = tree.dup while sep_index = tree.index(separator) chunks.push tree.shift(sep_index) tree.shift end chunks.push tree end
visit(tree, memo)
click to toggle source
# File lib/pseudohiki/htmlformat.rb, line 79 def visit(tree, memo) htmlelement = create_element(tree) push_visited_results(htmlelement, tree, memo) htmlelement end
visited_result(element, memo)
click to toggle source
# File lib/pseudohiki/htmlformat.rb, line 70 def visited_result(element, memo) visitor = @formatter[element.class] || @formatter[PlainNode] element.accept(visitor, memo) end