[Groonga-commit] droonga/droonga-client-ruby at 1b1ca77 [master] droonga-rquest: support multiple JSONs

Back to archive index

Kouhei Sutou null+****@clear*****
Wed Feb 12 11:28:57 JST 2014


Kouhei Sutou	2014-02-12 11:28:57 +0900 (Wed, 12 Feb 2014)

  New Revision: 1b1ca779246f62a800ff6f64cf4dc9621654c5d7
  https://github.com/droonga/droonga-client-ruby/commit/1b1ca779246f62a800ff6f64cf4dc9621654c5d7

  Message:
    droonga-rquest: support multiple JSONs

  Modified files:
    bin/droonga-request

  Modified: bin/droonga-request (+21 -16)
===================================================================
--- bin/droonga-request    2014-02-09 12:53:28 +0900 (5a3aa11)
+++ bin/droonga-request    2014-02-12 11:28:57 +0900 (287027c)
@@ -16,7 +16,7 @@
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
 require "optparse"
-require "json"
+require "yajl"
 
 require "droonga/client"
 
@@ -91,23 +91,28 @@ parser.on("--[no-]report-elapsed-time",
 end
 *rest = parser.parse!(ARGV)
 
-if rest.size < 1
-  puts("request JSON file is missing.")
-  exit(false)
-end
-
 request_json_file = rest.first
 
 client = Droonga::Client.new(options)
-request_message = JSON.parse(File.read(request_json_file))
-start = Time.now
-request = client.request(request_message) do |response|
-  puts("Elapsed time: #{Time.now - start}") if options[:report_elapsed_time]
-  begin
-    puts(JSON.pretty_generate(response))
-  rescue
-    p(response)
+json_parser = Yajl::Parser.new
+json_parser.on_parse_complete = lambda do |request_message|
+  start = Time.now
+  request = client.request(request_message) do |response|
+    puts("Elapsed time: #{Time.now - start}") if options[:report_elapsed_time]
+    begin
+      puts(JSON.pretty_generate(response))
+    rescue
+      p(response)
+    end
+    break if options[:exit_on_response]
+  end
+  request.wait
+end
+
+if request_json_file
+  File.open(request_json_file) do |input|
+    json_parser.parse(input)
   end
-  break if options[:exit_on_response]
+else
+  json_parser.parse($stdin)
 end
-request.wait
-------------- next part --------------
HTML����������������������������...
Descargar 



More information about the Groonga-commit mailing list
Back to archive index