class Treetop::Runtime::SyntaxNode

Monkeypatch Treetop::Runtime::SyntaxNode's inspect method to skip any Whitespace or SyntaxNodes with no children.

Public Instance Methods

_inspect(indent="") click to toggle source
# File lib/logstash/config/config_ast.rb, line 355
def _inspect(indent="")
  em = extension_modules
  interesting_methods = methods-[em.last ? em.last.methods : nil]-self.class.instance_methods
  im = interesting_methods.size > 0 ? " (#{interesting_methods.join(",")})" : ""
  tv = text_value
  tv = "...#{tv[-20..-1]}" if tv.size > 20

  indent +
  self.class.to_s.sub(/.*:/,'') +
    em.map{|m| "+"+m.to_s.sub(/.*:/,'')}*"" +
    " offset=#{interval.first}" +
    ", #{tv.inspect}" +
    im +
    (elements && elements.size > 0 ?
      ":" +
        (elements.select { |e| !e.is_a?(LogStash::Config::AST::Whitespace) && e.elements && e.elements.size > 0 }||[]).map{|e|
    begin
      "\n"+e.inspect(indent+"  ")
    rescue  # Defend against inspect not taking a parameter
      "\n"+indent+" "+e.inspect
    end
        }.join("") :
      ""
    )
end
compile() click to toggle source
# File lib/logstash/config/config_ast.rb, line 4
def compile
  return "" if elements.nil?
  return elements.collect(&:compile).reject(&:empty?).join("")
end
recursive_inject(results=[], &block) click to toggle source
# File lib/logstash/config/config_ast.rb, line 9
def recursive_inject(results=[], &block)
  if !elements.nil?
    elements.each do |element|
      if block.call(element)
        results << element
      else
        element.recursive_inject(results, &block)
      end
    end
  end
  return results
end
recursive_inject_parent(results=[], &block) click to toggle source
# File lib/logstash/config/config_ast.rb, line 26
def recursive_inject_parent(results=[], &block)
  if !parent.nil?
    if block.call(parent)
      results << parent
    else
      parent.recursive_inject_parent(results, &block)
    end
  end
  return results
end
recursive_select(klass) click to toggle source
# File lib/logstash/config/config_ast.rb, line 22
def recursive_select(klass)
  return recursive_inject { |e| e.is_a?(klass) }
end
recursive_select_parent(results=[], klass) click to toggle source
# File lib/logstash/config/config_ast.rb, line 37
def recursive_select_parent(results=[], klass)
  return recursive_inject_parent(results) { |e| e.is_a?(klass) }
end