class Ataru::Traverser

Constants

CODE_ELEMENTS

Attributes

document[RW]
file_name[RW]
language[RW]

Public Class Methods

new(document, file_name, language = "language-ruby") click to toggle source
# File lib/ataru/traverser.rb, line 10
def initialize(document, file_name, language = "language-ruby")
  self.document = document
  self.language = language
  self.file_name = file_name
end

Public Instance Methods

code_samples() click to toggle source
# File lib/ataru/traverser.rb, line 16
def code_samples
  tree = document.root
  self.walk_tree(tree)
end
walk_tree(element) click to toggle source
# File lib/ataru/traverser.rb, line 21
def walk_tree(element)
  code_samples = []
  element.children.each do |child|
    if CODE_ELEMENTS.include?(child.type)
      if child.attr["class"] == language
        line_number = child.options[:location] + 1
        code_samples << CodeSample.new(child.value.strip, file_name, line_number)
      end
    else
      code_samples += walk_tree(child)
    end
  end
  code_samples
end