From: Shugo Maeda Date: 2005-05-11T23:50:23+09:00 Subject: [ruby-dev:26143] Re: Dateと SOAPの型のマッピング 前田です。 NAKAMURA, Hiroshi wrote: > バグでした。前田さんのおっしゃる通り、mappingが間違っており > (DateはSOAP::DateTimeにしちゃだめ)、かつ、SOAP Data Model (SOAP::*)にお > けるnormalizeが間違ってました。内部では全部DateTimeで持つんですが、間違 > えてif obj.is_a?(Date)とか書いてました。if obj.is_a?(DateTime)でないとい > けなかった。(DateTime is_a? Date なので、これまでDate以外では問題なく動 > いてました)。 > > http://dev.ctor.org/soap4r/changeset/1543 パッチを適用したところうまくいきました。ありがとうございます。 [::Date, ::SOAP::SOAPDateTime, DateTimeFactory], の方ではなく、 [::Date, ::SOAP::SOAPDate, DateTimeFactory], の方が削除されているようですが、これはこういうものなんです? あと、SOAPBaseMapの方にも同じような部分がありますが、問題ない でしょうか。 それから、内部的にはDateTimeで持つとのことですが、 $ ruby -r date -r soap/mapping -e 'xd = SOAP::Mapping.obj2soap(Date.today); p xd.class; d = SOAP::Mapping.soap2obj(xd); p d.class' SOAP::SOAPDate DateTime のように、SOAP::SOAPDate -> DateTimeになるのは意図的ということ でしょうか。 このためか、Railsでxsd:dateな値を受け取るとDateTimeに変換されて しまうのですが、これはRails側で対処するべきなんですかね。 -- 前田 修吾 ちゃんとコードを読んでないので全般的によくわかってないです。すみません。