null+****@clear*****
null+****@clear*****
2012年 3月 6日 (火) 15:13:41 JST
Kouhei Sutou 2012-03-06 15:13:41 +0900 (Tue, 06 Mar 2012) New Revision: fac0f0a51cf41a32daf0a1d6bfa5e999b62aa896 Log: Extract command name and output format Modified files: bin/groonga-test Modified: bin/groonga-test (+19 -3) =================================================================== --- bin/groonga-test 2012-03-06 09:48:32 +0900 (345654a) +++ bin/groonga-test 2012-03-06 15:13:41 +0900 (d4817cc) @@ -21,6 +21,7 @@ require "pathname" require "fileutils" require "tempfile" require "json" +require "shellwords" class GroongaTester attr_accessor :groonga, :base_directory, :diff, :diff_options @@ -256,6 +257,8 @@ class GroongaTester @groonga = groonga @loading = false @pending_command = "" + @current_command_name = nil + @output_format = nil @context = context || Context.new end @@ -348,7 +351,8 @@ class GroongaTester end def execute_command(line) - @loading = true if load_command?(line) + extract_command_info(line) + @loading = true if @current_command == "load" log_input(line) @groonga.print(line) @groonga.flush @@ -357,8 +361,20 @@ class GroongaTester end end - def load_command?(line) - /\A\s*load\s*/ =~ line + def extract_command_info(line) + words = Shellwords.split(line) + @current_command = words.shift + if @current_command == "dump" + @output_format = "groonga-command" + else + @output_format = "json" + words.each_with_index do |word, i| + if /\A--output_format(?:=(.+))?\z/ =~ word + @output_format = $1 || words[i + 1] + break + end + end + end end def read_output