class Opener::Coreference

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

@option options [Array] :args Collection of arbitrary arguments to pass

to the underlying kernels.
# File lib/opener/coreference.rb, line 27
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 containing the results.

@param [String] input @return [String]

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

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

  stdout, stderr, process = kernel.run(input)

  raise stderr unless process.success?

  return stdout
end

Protected Instance Methods

language_constant() click to toggle source

@return [Class]

# File lib/opener/coreference.rb, line 69
def language_constant
  return Coreferences.const_get(language_constant_name)
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/coreference.rb, line 62
def language_constant_defined?(language)
  return Coreferences.const_defined?(language.upcase)
end
language_from_kaf(input) click to toggle source

@param [String] input @return [String]

# File lib/opener/coreference.rb, line 77
def language_from_kaf(input)
  document = Nokogiri::XML(input)
  language = document.xpath('KAF/@xml:lang')[0]

  return language ? language.to_s : nil
end