As suggested in Ruby soap4r wsdl2ruby.rb errors, I loaded the soap4r gem from git://github.com/felipec/soap4r.git and made the change at line 66 in xmlparser.rb
c.downcase == name
to
c.to_s.downcase == name
But when I run:
wsdl2ruby.rb --wsdl http://docs.arrayent.com/zamapi.xml --type client --force
after a bunch of warnings, it eventually blows up with:
F, [2012-06-01T07:54:26.319928 #285] FATAL -- app: Detected an exception. Stopping ... undefined method `collect' for #<String:0x00000100c4a418> (NoMethodError)
/Users/r/Developer/Topaz/usr/lib/ruby/gems/1.9.1/gems/soap4r-1.5.8/lib/xsd/codegen/gensupport.rb:239:in `trim_eol'
Since 'String#collect' was valid in previous versions of Ruby, my hunch is that this wsdl2ruby hasn't been updated for Ruby 1.9.2.
Is there a newer one? Or a patch?
you may try to install this gem https://rubygems.org/gems/mumboe-soap4r . It solved my problems.