rubyjedi/soap4r

Incompatibility between Ruby 3.2.2 and gem soap4r-ng

Closed this issue · 0 comments

I encountered a problem when trying to use Ruby 3.2.2 in conjunction with the soap4r-ng gem. It seems that there is an incompatibility that prevents the gem from working correctly with this version of Ruby.

Failure/Error: SOAP::Mapping.soap2obj(body.response)
     
     NoMethodError:
       undefined method `untaint' for "age":String
     # /usr/local/rvm/gems/default/gems/soap4r-ng-2.0.4/lib/soap/mapping/registry.rb:110:in `__define_attr_accessor'
     # /usr/local/rvm/gems/default/gems/soap4r-ng-2.0.4/lib/soap/mapping/registry.rb:93:in `__add_xmlele_value'
     # /usr/local/rvm/gems/default/gems/soap4r-ng-2.0.4/lib/soap/mapping/rubytypeFactory.rb:359:in `block in anytype2obj'
     # /usr/local/rvm/gems/default/gems/soap4r-ng-2.0.4/lib/soap/baseData.rb:621:in `each'
     # /usr/local/rvm/gems/default/gems/soap4r-ng-2.0.4/lib/soap/mapping/rubytypeFactory.rb:358:in `anytype2obj'
     # /usr/local/rvm/gems/default/gems/soap4r-ng-2.0.4/lib/soap/mapping/rubytypeFactory.rb:383:in `unknowntype2obj'
     # /usr/local/rvm/gems/default/gems/soap4r-ng-2.0.4/lib/soap/mapping/rubytypeFactory.rb:234:in `soap2obj'
     # /usr/local/rvm/gems/default/gems/soap4r-ng-2.0.4/lib/soap/mapping/encodedregistry.rb:387:in `_soap2obj'
     # /usr/local/rvm/gems/default/gems/soap4r-ng-2.0.4/lib/soap/mapping/encodedregistry.rb:315:in `soap2obj'
     # /usr/local/rvm/gems/default/gems/soap4r-ng-2.0.4/lib/soap/mapping/mapping.rb:155:in `_soap2obj'
     # /usr/local/rvm/gems/default/gems/soap4r-ng-2.0.4/lib/soap/mapping/mapping.rb:152:in `_soap2obj'
     # /usr/local/rvm/gems/default/gems/soap4r-ng-2.0.4/lib/soap/mapping/factory.rb:268:in `block in soap2obj'
     # /usr/local/rvm/gems/default/gems/soap4r-ng-2.0.4/lib/soap/baseData.rb:990:in `block in soap2array'
     # /usr/local/rvm/gems/default/gems/soap4r-ng-2.0.4/lib/soap/baseData.rb:1029:in `traverse_data'

According to the documentation this untaint method was removed in Ruby 3.2