class Rabbit::Parser::RD::Visitor

Public Class Methods

new() click to toggle source
Calls superclass method
# File lib/rabbit/parser/rd/visitor.rb, line 18
def initialize
  init_extensions
  super
end
version() click to toggle source
# File lib/rabbit/parser/rd/visitor.rb, line 13
def version
  self.class::VERSION
end

Private Instance Methods

apply_to_extension(ext_type, label, source, content) click to toggle source
# File lib/rabbit/parser/rd/visitor.rb, line 31
def apply_to_extension(ext_type, label, source, content)
  result = nil
  unless @installed_extensions.has_key?(ext_type)
    fatal_on_extension_not_available(label, ext_type)
  end
  args = [label, source, content, self]
  extension = @installed_extensions[ext_type]
  result = extension.apply(*args)
  default_method_name = "default_ext_#{ext_type}"
  if result.nil? and
      extension.respond_to?(default_method_name, true)
    result = extension.__send__(default_method_name, *args)
  end
  fatal_on_extension_not_available(label, ext_type) if result.nil?
  result
end
fatal_on_extension_not_available(label, type) click to toggle source
# File lib/rabbit/parser/rd/visitor.rb, line 48
def fatal_on_extension_not_available(label, type)
  message = _("[BUG] [%s] %s extension isn't available.")
  logger.fatal(message % [label, ext_type])
end
init_extensions() click to toggle source
# File lib/rabbit/parser/rd/visitor.rb, line 24
def init_extensions
  @installed_extensions = {}
  self.class::EXTENSIONS.each do |name, klass|
    @installed_extensions[name] =  klass.new
  end
end