Class: Groonga::Command::Parser

Inherits:
Object
  • Object
show all
Defined in:
lib/groonga/command/parser.rb,
lib/groonga/command/parser/error.rb,
lib/groonga/command/parser/version.rb,
lib/groonga/command/parser/load-values-parser.rb,
lib/groonga/command/parser/command-line-splitter.rb,
lib/groonga/command/parser/command/groonga-command-logicalify.rb,
lib/groonga/command/parser/command/groonga-command-convert-format.rb

Defined Under Namespace

Modules: Command Classes: CommandLineSplitter, Error, LoadValuesParser

Constant Summary collapse

VERSION =
"1.1.2"

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeParser

Returns a new instance of Parser.



120
121
122
123
# File 'lib/groonga/command/parser.rb', line 120

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:



42
43
44
45
46
47
48
# File 'lib/groonga/command/parser.rb', line 42

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.



127
128
129
130
131
# File 'lib/groonga/command/parser.rb', line 127

def <<(chunk)
  @buffer << chunk
  @buffer.force_encoding("ASCII-8BIT")
  consume_buffer
end

#finishObject

Finishes parsing. If Parser is loading values specified "load" command, this method raises Error.



135
136
137
138
139
140
141
142
143
144
145
# File 'lib/groonga/command/parser.rb', line 135

def finish
  if @loading
    raise Error.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



149
150
151
152
153
154
155
# File 'lib/groonga/command/parser.rb', line 149

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



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

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



169
170
171
172
173
174
175
# File 'lib/groonga/command/parser.rb', line 169

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



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

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



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

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



179
180
181
182
183
184
185
# File 'lib/groonga/command/parser.rb', line 179

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