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.



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

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:



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

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.



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

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

#finishObject

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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