Class: Groonga::Command::Parser

Inherits:
Object
  • Object
show all
Defined in:
lib/groonga/command/parser.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeParser

Returns a new instance of Parser.



158
159
160
161
# File 'lib/groonga/command/parser.rb', line 158

def initialize
  reset
  initialize_hooks
end

Class Method Details

.parse(data) ⇒ Groonga::Command .parse(data, &block) ⇒ Groonga::Command

parses groonga command or HTTP (starts with “/d/”) command.

Overloads:



85
86
87
88
89
90
91
# File 'lib/groonga/command/parser.rb', line 85

def parse(data, &block)
  if block_given?
    event_parse(data, &block)
  else
    stand_alone_parse(data)
  end
end

Instance Method Details

#<<(chunk) ⇒ Object

Streaming parsing command.

Parameters:

  • chunk (String)

    parsed chunk of command.



165
166
167
168
# File 'lib/groonga/command/parser.rb', line 165

def <<(chunk)
  @buffer << chunk
  consume_buffer
end

#finishObject

Finishes parsing. If Parser is loading values specified “load” command, this method raises Groonga::Command::ParseError.



172
173
174
175
176
177
178
179
180
181
182
# File 'lib/groonga/command/parser.rb', line 172

def finish
  if @loading
    raise ParseError.new("not completed",
                         @command.original_source.lines.to_a.last,
                         "")
  else
    catch do |tag|
      parse_line(@buffer)
    end
  end
end

#on_command(command) ⇒ Object #on_command({|command| }) ⇒ Object



186
187
188
189
190
191
192
# File 'lib/groonga/command/parser.rb', line 186

def on_command(*arguments, &block)
  if block_given?
    @on_command_hook = block
  else
    @on_command_hook.call(*arguments) if @on_command_hook
  end
end

#on_comment(comment) ⇒ Object #on_comment({|comment| }) ⇒ Object



236
237
238
239
240
241
242
# File 'lib/groonga/command/parser.rb', line 236

def on_comment(*arguments, &block)
  if block_given?
    @on_comment_hook = block
  else
    @on_comment_hook.call(*arguments) if @on_comment_hook
  end
end

#on_load_columns(command) ⇒ Object #on_load_columns({|command| }) ⇒ Object



206
207
208
209
210
211
212
# File 'lib/groonga/command/parser.rb', line 206

def on_load_columns(*arguments, &block)
  if block_given?
    @on_load_columns_hook = block
  else
    @on_load_columns_hook.call(*arguments) if @on_load_columns_hook
  end
end

#on_load_complete(command) ⇒ Object #on_load_complete(command) ⇒ Object



226
227
228
229
230
231
232
# File 'lib/groonga/command/parser.rb', line 226

def on_load_complete(*arguments, &block)
  if block_given?
    @on_load_complete_hook = block
  else
    @on_load_complete_hook.call(*arguments) if @on_load_complete_hook
  end
end

#on_load_start(command) ⇒ Object #on_load_start({|command| }) ⇒ Object



196
197
198
199
200
201
202
# File 'lib/groonga/command/parser.rb', line 196

def on_load_start(*arguments, &block)
  if block_given?
    @on_load_start_hook = block
  else
    @on_load_start_hook.call(*arguments) if @on_load_start_hook
  end
end

#on_load_value(command) ⇒ Object #on_load_value({|command| }) ⇒ Object



216
217
218
219
220
221
222
# File 'lib/groonga/command/parser.rb', line 216

def on_load_value(*arguments, &block)
  if block_given?
    @on_load_value_hook = block
  else
    @on_load_value_hook.call(*arguments) if @on_load_value_hook
  end
end