なひです。

05/05/11 に Shugo Maeda<shugo / ruby-lang.org> さんは書きました:
> DateオブジェクトをSOAPで扱おうとすると、
> 
> $ ruby-cvs -v -I lib -r date -r soap/mapping -e 'p
> SOAP::Mapping.obj2soap(Date.today).to_s'
> ruby 1.9.0 (2005-05-11) [i686-linux]
> /home/shugo/src/ruby/lib/xsd/datatypes.rb:611:in `_to_s': private method
> `hour' called for #<Date: 4907003/2,0,2299161> (NoMethodError)
>         from /home/shugo/src/ruby/lib/xsd/datatypes.rb:149:in `to_s'
>         from -e:1
> 
> のようなエラーになるのですが、これはバグでしょうか。

バグでした。前田さんのおっしゃる通り、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のテストを追加します。

ちなみにそろそろsoap4r/1.5.4が出る予定になっており、これを1.8.3に間に合
わせるべくruby_1_8にcommit予定です。