<!DOCTYPE html>
<html>
<head>
</head>
<body>
<dl style="line-height: 1.5; margin-left: 2em">
<dt style="clear: both; float: left; font-weight: bold; width: 8em">Author</dt>
<dd style="margin-left: 8.5em">Kouhei Sutou <kou****@clear*****></dd>
<dt style="clear: both; float: left; font-weight: bold; width: 8em">Date</dt>
<dd style="margin-left: 8.5em">2017-10-31 12:46:17 +0900 (Tue, 31 Oct 2017)</dd>
<dt style="clear: both; float: left; font-weight: bold; width: 8em">New Revision</dt>
<dd style="margin-left: 8.5em"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7">7b6506a219d43ddc72919a23e119bb800d04a6e7</a></dd>
<dt style="clear: both; float: left; font-weight: bold; width: 8em">Message</dt>
<dd style="margin-left: 8.5em"><pre style="border: 1px solid #aaa; font-family: Consolas, Menlo, "Liberation Mono", Courier, monospace; line-height: 1.2; padding: 0.5em; width: auto">Add a error check for garbage after load</pre></dd>
<dt style="clear: both; float: left; font-weight: bold; width: 8em">Modified files</dt>
<dd style="margin-left: 8.5em">
<ul>
<li><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-a5bb7bf58be077ff3b8586b13677c2b8">lib/groonga/command/parser.rb</a></li>
<li><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-19eec890719378997b2e303cbfb7edd1">test/test-parser.rb</a></li>
</ul>
</dd>
</dl>
<div class="diff-section" style="clear: both">
<table style="border-collapse: collapse; border: 1px solid #aaa">
<thead>
<tr class="diff-header" style="border: 1px solid #aaa">
<td colspan="3">
<pre style="border: 0; font-family: Consolas, Menlo, "Liberation Mono", Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-header" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre"> Modified: lib/groonga/command/parser.rb (+5 -0)</span>
<span class="diff-header-mark" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">===================================================================</span>
</pre>
</td>
</tr>
</thead>
<tbody>
<tr>
<th class="diff-line-number" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, "Liberation Mono", Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-a5bb7bf58be077ff3b8586b13677c2b8L315">...</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-a5bb7bf58be077ff3b8586b13677c2b8L316">316</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-a5bb7bf58be077ff3b8586b13677c2b8L317">317</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-a5bb7bf58be077ff3b8586b13677c2b8L318">318</a></span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-a5bb7bf58be077ff3b8586b13677c2b8L319">319</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-a5bb7bf58be077ff3b8586b13677c2b8L320">320</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-a5bb7bf58be077ff3b8586b13677c2b8L321">321</a></span>
</pre>
</th>
<th class="diff-line-number" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, "Liberation Mono", Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-a5bb7bf58be077ff3b8586b13677c2b8R315">...</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-a5bb7bf58be077ff3b8586b13677c2b8R316">316</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-a5bb7bf58be077ff3b8586b13677c2b8R317">317</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-a5bb7bf58be077ff3b8586b13677c2b8R318">318</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-a5bb7bf58be077ff3b8586b13677c2b8R319">319</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-a5bb7bf58be077ff3b8586b13677c2b8R320">320</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-a5bb7bf58be077ff3b8586b13677c2b8R321">321</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-a5bb7bf58be077ff3b8586b13677c2b8R322">322</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-a5bb7bf58be077ff3b8586b13677c2b8R323">323</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-a5bb7bf58be077ff3b8586b13677c2b8R324">324</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-a5bb7bf58be077ff3b8586b13677c2b8R325">325</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-a5bb7bf58be077ff3b8586b13677c2b8R326">326</a></span>
</pre>
</th>
<td class="diff-content" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, "Liberation Mono", Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-hunk-header" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">@@ -316,6 +316,11 @@ <span class="diff-context" style="background-color: #ffffaa; color: #000000">module Groonga</span></span>
<span class="diff-not-changed" style="display: block; white-space: pre"> def parse_command_line(command_line)</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> splitter = CommandLineSplitter.new(command_line)</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> name, *arguments = splitter.split</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ if name.nil?</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ raise Error.new("invalid command name",</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ command_line,</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ "")</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ end</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> pair_arguments = {}</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> ordered_arguments = []</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> until arguments.empty?</span>
</pre>
</td>
</tr>
</tbody>
</table>
<table style="border-collapse: collapse; border: 1px solid #aaa">
<thead>
<tr class="diff-header" style="border: 1px solid #aaa">
<td colspan="3">
<pre style="border: 0; font-family: Consolas, Menlo, "Liberation Mono", Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-header" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre"> Modified: test/test-parser.rb (+15 -0)</span>
<span class="diff-header-mark" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">===================================================================</span>
</pre>
</td>
</tr>
</thead>
<tbody>
<tr>
<th class="diff-line-number" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, "Liberation Mono", Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-19eec890719378997b2e303cbfb7edd1L491">...</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-19eec890719378997b2e303cbfb7edd1L492">492</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-19eec890719378997b2e303cbfb7edd1L493">493</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-19eec890719378997b2e303cbfb7edd1L494">494</a></span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-nothing" style="display: block; white-space: pre"> </span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-19eec890719378997b2e303cbfb7edd1L495">495</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-19eec890719378997b2e303cbfb7edd1L496">496</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-19eec890719378997b2e303cbfb7edd1L497">497</a></span>
</pre>
</th>
<th class="diff-line-number" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, "Liberation Mono", Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-line-number-hunk-header" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-19eec890719378997b2e303cbfb7edd1R491">...</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-19eec890719378997b2e303cbfb7edd1R492">492</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-19eec890719378997b2e303cbfb7edd1R493">493</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-19eec890719378997b2e303cbfb7edd1R494">494</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-19eec890719378997b2e303cbfb7edd1R495">495</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-19eec890719378997b2e303cbfb7edd1R496">496</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-19eec890719378997b2e303cbfb7edd1R497">497</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-19eec890719378997b2e303cbfb7edd1R498">498</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-19eec890719378997b2e303cbfb7edd1R499">499</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-19eec890719378997b2e303cbfb7edd1R500">500</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-19eec890719378997b2e303cbfb7edd1R501">501</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-19eec890719378997b2e303cbfb7edd1R502">502</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-19eec890719378997b2e303cbfb7edd1R503">503</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-19eec890719378997b2e303cbfb7edd1R504">504</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-19eec890719378997b2e303cbfb7edd1R505">505</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-19eec890719378997b2e303cbfb7edd1R506">506</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-19eec890719378997b2e303cbfb7edd1R507">507</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-19eec890719378997b2e303cbfb7edd1R508">508</a></span>
<span class="diff-line-number-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-19eec890719378997b2e303cbfb7edd1R509">509</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-19eec890719378997b2e303cbfb7edd1R510">510</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-19eec890719378997b2e303cbfb7edd1R511">511</a></span>
<span class="diff-line-number-not-changed" style="display: block; white-space: pre"><a href="https://github.com/groonga/groonga-command-parser/commit/7b6506a219d43ddc72919a23e119bb800d04a6e7#diff-19eec890719378997b2e303cbfb7edd1R512">512</a></span>
</pre>
</th>
<td class="diff-content" style="border: 1px solid #aaa">
<pre style="border: 0; font-family: Consolas, Menlo, "Liberation Mono", Courier, monospace; line-height: 1.2; margin: 0; padding: 0.5em; white-space: normal; width: auto"><span class="diff-hunk-header" style="background-color: #eaf2f5; color: #999999; display: block; white-space: pre">@@ -492,6 +492,21 @@ <span class="diff-context" style="background-color: #ffffaa; color: #000000">XXX</span></span>
<span class="diff-not-changed" style="display: block; white-space: pre"> JSON</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> end</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> end</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ def test_garbage_after_json</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ message = "invalid command name"</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ before = "\""</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ after = ""</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ error = Groonga::Command::Parser::Error.new(message, before, after)</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ assert_raise(error) do</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ @parser << <<-JSON</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+load --table Users</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+[</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+{"_key": "alice", "name": "Alice"}</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+]"</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ JSON</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ end</span>
<span class="diff-added" style="background-color: #eaffea; color: #000000; display: block; white-space: pre">+ end</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> end</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> end</span>
<span class="diff-not-changed" style="display: block; white-space: pre"> </span>
</pre>
</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>