Sha256: b95719e9444f0fc9bb93f145da7c9a55c317cd130eab998c5ec561ec8503299a

Contents?: true

Size: 579 Bytes

Versions: 1

Compression:

Stored size: 579 Bytes

Contents

require "nokogiri"

module Pricecut
  class MarkdownVisitor
    attr_reader :output

    def initialize
      @output = ""
    end

    def visit(node)
      begin
        element = Pricecut::Elements.const_get(node.name.capitalize)
        element.new(self, node).output!
      rescue NameError
        # Unsupported element, continue visiting children.
        visit_children(node)
      end

      self
    end

    def append_output(string)
      @output << string
    end

    def visit_children(node)
      node.children.each {|child| child.accept(self) }
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
pricecut-0.0.2 lib/pricecut/markdown_visitor.rb