[Groonga-commit] droonga/droonga-client-ruby at 0434f43 [master] Fixup missing fields and validate them for droogna-send command

Back to archive index

YUKI Hiroshi yuki****@clear*****
Thu Jan 15 14:54:18 JST 2015


Perfectorはあくまで省略されたidやdateを補うだけの物で、
Validatorはメッセージに設定されたdate等の情報が正しい形式かを検証する、
という分け方にしています。
メッセージに元々不正なdateが設定されていたという場合に、
Perfectorはそれをスルーして、その後のValidatorが例外を上げる、
という感じの動きを想定していました。

ただ、Droonga::Clientのレイヤで補完と検証をするように改めたので、ここま
で厳密にモジュールを分けなくても良かったかもという気はしています。


Kouhei Sutou wrote:
>> +  request_message = perfector.perfect(request_message)
>> +  validator.validate(request_message)
> 
> perfectにした後にvalidateするのっておかしくないですか?
> perfectにしたら必ずvalidationが通りそうなので、する意味がな
> さそうに思います。
> 
> あと、このコミットじゃないですけど、
> perfector.perfect(request_message)はrequest_messsageを破壊的
> に変更しないほうがいいと思いました。
> 
> In <0434f43f27809dd625dcecfded3f59048339faea �� jenkins.clear-code.com>
>    "[Groonga-commit] droonga/droonga-client-ruby �� 0434f43 [master] Fixup missing fields and validate them for droogna-send command" on Thu, 15 Jan 2015 14:35:42 +0900,
>    YUKI Hiroshi <null+groonga �� clear-code.com> wrote:
> 
>> YUKI Hiroshi	2015-01-15 14:35:42 +0900 (Thu, 15 Jan 2015)
>>
>>    New Revision: 0434f43f27809dd625dcecfded3f59048339faea
>>    https://github.com/droonga/droonga-client-ruby/commit/0434f43f27809dd625dcecfded3f59048339faea
>>
>>    Message:
>>      Fixup missing fields and validate them for droogna-send command
>>
>>    Modified files:
>>      bin/droonga-send
>>
>>    Modified: bin/droonga-send (+7 -0)
>> ===================================================================
>> --- bin/droonga-send    2015-01-15 14:34:21 +0900 (0442383)
>> +++ bin/droonga-send    2015-01-15 14:35:42 +0900 (0dc032f)
>> @@ -21,6 +21,8 @@ require "yajl"
>>   require "json"
>>   
>>   require "droonga/client"
>> +require "droonga/client/message_perfector"
>> +require "droonga/client/message_validator"
>>   
>>   options = OpenStruct.new
>>   options.report_request = false
>> @@ -33,6 +35,9 @@ 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
>> @@ -167,6 +172,8 @@ 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
> 
> _______________________________________________
> Groonga-commit mailing list
> Groonga-commit �� lists.sourceforge.jp
> http://lists.sourceforge.jp/mailman/listinfo/groonga-commit
> 

-- 
結城 洋志 <YUKI Hiroshi>
E-mail: yuki �� clear-code.com

株式会社クリアコード
〒170-0005 東京都豊島区南大塚3-29-9
           中野ビル3階
TEL : 03-5927-9440
FAX : 03-5927-9441
WWW : http://www.clear-code.com/




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