Class: Lingo::Attendee::AnalysisFilter

Inherits:
Lingo::Attendee show all
Defined in:
lib/lingo/attendee/analysis_filter.rb

Constant Summary collapse

FIELDS =
{
  string:   :form,
  token:    :attr,
  position: :position,
  offset:   :offset,
  word:     :attr,
  pattern:  :pattern
}

Constants inherited from Lingo::Attendee

DEFAULT_SKIP, TERMINALS

Constants included from Language

Language::CHAR_PUNCT, Language::LA_SORTORDER, Language::TA_ABBREVIATION, Language::TA_HELP, Language::TA_HTML, Language::TA_NUMBER, Language::TA_OTHER, Language::TA_PUNCTUATION, Language::TA_SKIP, Language::TA_SPACE, Language::TA_URL, Language::TA_WIKI, Language::TA_WORD, Language::WA_COMPOUND, Language::WA_IDENTIFIED, Language::WA_MULTIWORD, Language::WA_SEQUENCE, Language::WA_UNKMULPART, Language::WA_UNKNOWN, Language::WA_UNSET

Instance Attribute Summary

Attributes inherited from Lingo::Attendee

#lingo, #subscribers

Instance Method Summary collapse

Methods inherited from Lingo::Attendee

#command, #forward, #initialize

Constructor Details

This class inherits a constructor from Lingo::Attendee

Instance Method Details

#control(cmd) ⇒ Object



48
49
50
# File 'lib/lingo/attendee/analysis_filter.rb', line 48

def control(cmd, *)
  :skip_command if cmd == :EOL
end

#initObject



44
45
46
# File 'lib/lingo/attendee/analysis_filter.rb', line 44

def init
  @csv, @header = CSV.new('', row_sep: ''), FIELDS.keys
end

#process(obj) ⇒ Object



52
53
54
55
56
57
58
59
60
61
62
# File 'lib/lingo/attendee/analysis_filter.rb', line 52

def process(obj, *)
  forward_row(@header.tap { @header = nil }) if @header

  obj.is_a?(Token) ?
    forward_obj(obj, obj, obj, obj) : begin
  tok = obj.token
    forward_obj(obj, nil, tok, tok, obj, obj)
  obj.lexicals.each { |lex|
    forward_obj(lex, nil, tok, tok, lex, obj) }
  end
end