Class: Groonga::Command::Parser
- Inherits:
-
Object
- Object
- Groonga::Command::Parser
- Defined in:
- lib/groonga/command/parser.rb
Class Method Summary collapse
-
.parse(data, &block) ⇒ Object
parses groonga command or HTTP (starts with “/d/”) command.
Instance Method Summary collapse
-
#<<(chunk) ⇒ Object
Streaming parsing command.
-
#finish ⇒ Object
Finishes parsing.
-
#initialize ⇒ Parser
constructor
A new instance of Parser.
- #on_command(*arguments, &block) ⇒ Object
- #on_comment(*arguments, &block) ⇒ Object
- #on_load_columns(*arguments, &block) ⇒ Object
- #on_load_complete(*arguments, &block) ⇒ Object
- #on_load_start(*arguments, &block) ⇒ Object
- #on_load_value(*arguments, &block) ⇒ Object
Constructor Details
#initialize ⇒ Parser
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.
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.
165 166 167 168 |
# File 'lib/groonga/command/parser.rb', line 165 def <<(chunk) @buffer << chunk consume_buffer end |
#finish ⇒ Object
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 |