[Groonga-commit] droonga/droonga-client-ruby at d89e249 [master] Validate and perfect messages by Droonga::Client

Back to archive index

YUKI Hiroshi null+****@clear*****
Thu Jan 15 14:47:14 JST 2015


YUKI Hiroshi	2015-01-15 14:47:14 +0900 (Thu, 15 Jan 2015)

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

  Message:
    Validate and perfect messages by Droonga::Client

  Modified files:
    bin/droonga-request
    bin/droonga-send
    lib/droonga/client.rb
    lib/droonga/client/message_perfector.rb

  Modified: bin/droonga-request (+1 -8)
===================================================================
--- bin/droonga-request    2015-01-15 14:35:42 +0900 (c0fe169)
+++ bin/droonga-request    2015-01-15 14:47:14 +0900 (0c30185)
@@ -1,6 +1,6 @@
 #!/usr/bin/env ruby
 #
-# Copyright (C) 2014-2015 Droonga Project
+# Copyright (C) 2014 Droonga Project
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -20,8 +20,6 @@ require "yajl"
 require "json"
 
 require "droonga/client"
-require "droonga/client/message_perfector"
-require "droonga/client/message_validator"
 
 options = {
   :host                => "localhost",
@@ -101,9 +99,6 @@ parser.on("--[no-]report-elapsed-time",
 end
 request_json_files = parser.parse!(ARGV)
 
-perfector = Droonga::Client::MessagePerfector.new
-validator = Droonga::Client::MessageValidator.new
-
 client = Droonga::Client.new(options)
 json_parser = Yajl::Parser.new
 json_parser.on_parse_complete = lambda do |request_message|
@@ -117,8 +112,6 @@ json_parser.on_parse_complete = lambda do |request_message|
     message << "\n"
     print(message)
   end
-  request_message = perfector.perfect(request_message)
-  validator.validate(request_message)
   start = Time.now
   request = client.request(request_message) do |response|
     message = ""

  Modified: bin/droonga-send (+0 -7)
===================================================================
--- bin/droonga-send    2015-01-15 14:35:42 +0900 (0dc032f)
+++ bin/droonga-send    2015-01-15 14:47:14 +0900 (0442383)
@@ -21,8 +21,6 @@ require "yajl"
 require "json"
 
 require "droonga/client"
-require "droonga/client/message_perfector"
-require "droonga/client/message_validator"
 
 options = OpenStruct.new
 options.report_request = false
@@ -35,9 +33,6 @@ servers = []
 default_server = "droonga:localhost:10031/droonga"
 messages_per_second = Droonga::Client::RateLimiter::DEFAULT_LIMIT
 
-perfector = Droonga::Client::MessagePerfector.new
-validator = Droonga::Client::MessageValidator.new
-
 def parse_server(server, options)
   server_matcher = /\A(?:(droonga|http):)?([^:]+)(?::([0-9]+))?(?:\/(.+))?\z/
   server =~ server_matcher
@@ -172,8 +167,6 @@ json_parser.on_parse_complete = lambda do |request_message|
     message << "\n"
     print(message)
   end
-  request_message = perfector.perfect(request_message)
-  validator.validate(request_message)
   client = clients[client_index]
   client.send(request_message)
   client_index = (client_index + 1) % clients.size

  Modified: lib/droonga/client.rb (+10 -15)
===================================================================
--- lib/droonga/client.rb    2015-01-15 14:35:42 +0900 (0d7c894)
+++ lib/droonga/client.rb    2015-01-15 14:47:14 +0900 (70811df)
@@ -20,6 +20,8 @@ require "droonga/client/error"
 require "droonga/client/connection/http"
 require "droonga/client/connection/droonga-protocol"
 require "droonga/client/rate-limiter"
+require "droonga/client/message_perfector"
+require "droonga/client/message_validator"
 
 module Droonga
   class Client
@@ -62,28 +64,25 @@ module Droonga
     #   from Droonga Engine.
     def initialize(options={})
       @connection = create_connection(options)
+      @perfector = MessagePerfector.new
+      @validator = MessageValidator.new
     end
 
     def send(message, options={}, &block)
-      if message["id"].nil? or message["date"].nil?
-        id = message["id"] || generate_id
-        date = message["date"] || Time.now
-        message = message.merge("id" => id, "date" => date)
-      end
+      message =****@perfe*****(message)
+      @validator.validate(message)
       @connection.send(message, options, &block)
     end
 
     def request(message, options={}, &block)
-      if message["id"].nil?
-        message = message.merge("id" => generate_id)
-      end
+      message =****@perfe*****(message)
+      @validator.validate(message)
       @connection.request(message, options, &block)
     end
 
     def subscribe(message, options={}, &block)
-      if message["id"].nil?
-        message = message.merge("id" => generate_id)
-      end
+      message =****@perfe*****(message)
+      @validator.validate(message)
       @connection.subscribe(message, options, &block)
     end
 
@@ -104,9 +103,5 @@ module Droonga
         Connection::DroongaProtocol.new(options)
       end
     end
-
-    def generate_id
-      Time.now.to_f.to_s
-    end
   end
 end

  Modified: lib/droonga/client/message_perfector.rb (+6 -6)
===================================================================
--- lib/droonga/client/message_perfector.rb    2015-01-15 14:35:42 +0900 (feed6d1)
+++ lib/droonga/client/message_perfector.rb    2015-01-15 14:47:14 +0900 (3204964)
@@ -26,18 +26,18 @@ module Droonga
       end
 
       def perfect(message)
-        message["id"]   ||= generate_id
-        message["date"] ||= date
-        message
+        id   = message["id"] || generate_id
+        date = message["date"] || @date || new_date
+        message.merge("id" => id, "date" => date)
       end
 
       private
       def generate_id
-        "#{Time.now} / #{Random.rand}"
+        Time.now.to_f.to_s
       end
 
-      def date
-        @date ||= Time.now.iso8601
+      def new_date
+        Time.now.iso8601
       end
     end
   end
-------------- next part --------------
HTML����������������������������...
Download 



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