class Opener::ConstituentParser

Constituent parser for various languages such as English and German.

@!attribute [r] options

@return [Hash]

Constants

DEFAULT_OPTIONS

Hash containing the default options to use.

@return [Hash]

VERSION

Attributes

options[R]

Public Class Methods

new(options = {}) click to toggle source

@param [Hash] options @see Opener::ConstituentParsers::Base#initialize

# File lib/opener/constituent_parser.rb, line 34
def initialize(options = {})
  @options = DEFAULT_OPTIONS.merge(options)
end

Public Instance Methods

run(input) click to toggle source

Processes the input KAF document and returns a new KAF document as a String.

@param [String] input @return [String]

# File lib/opener/constituent_parser.rb, line 45
def run(input)
  args     = options[:args].dup
  language = language(input)

  if language_constant_defined?(language)
    kernel = language_constant(language).new(:args => args)
  else
    kernel = ConstituentParsers::Base.new(
      :args     => args,
      :language => language
    )
  end

  return kernel.run(input)
end

Protected Instance Methods

language(input) click to toggle source

@return the language from the KAF

# File lib/opener/constituent_parser.rb, line 82
def language(input)
  document = Nokogiri::XML(input)
  language = document.at('KAF').attr('xml:lang')

  return language
end
language_constant(language) click to toggle source

@return [Class]

# File lib/opener/constituent_parser.rb, line 75
def language_constant(language)
  return ConstituentParsers.const_get(language.upcase)
end
language_constant_defined?(language) click to toggle source

Returns ‘true` if the current language has a dedicated kernel class.

@return [TrueClass|FalseClass]

# File lib/opener/constituent_parser.rb, line 68
def language_constant_defined?(language)
  return ConstituentParsers.const_defined?(language.upcase)
end