Class: Okura::Words::Builder

Inherits:
Object
  • Object
show all
Defined in:
lib/okura.rb

Instance Method Summary collapse

Constructor Details

#initializeBuilder

Returns a new instance of Builder.



141
142
143
144
145
146
147
148
149
150
151
152
153
154
# File 'lib/okura.rb', line 141

def initialize
  # group id -> [Word]
  @groups=[]
  @next_group_id=0
  # surface -> id
  @group_ids={}
  @surfaces=Okura::Words::CompactStringArray::Builder.new
  @left_features=Features.new
  @right_features=Features.new
  @surface_ids=[]
  @left_ids=[]
  @right_ids=[]
  @costs=[]
end

Instance Method Details

#add(word) ⇒ Object



155
156
157
158
159
160
161
162
163
164
165
166
167
168
# File 'lib/okura.rb', line 155

def add word
  unless @group_ids.has_key? word.surface
    gid=add_group! word.surface
    wid=add_word! gid,word
    @group_ids[word.surface]=gid
    @groups[gid]=[wid]
    gid
  else
    gid=@group_ids[word.surface]
    wid=add_word! gid,word
    @groups[gid].push wid
    gid
  end
end

#buildObject



169
170
171
172
173
# File 'lib/okura.rb', line 169

def build
  Okura::Words.new(
    @groups,@surfaces.build,@left_features,@right_features,@surface_ids,@left_ids,@right_ids,@costs
  )
end