savonrb / wasabi

A simple WSDL parser
MIT License
90 stars 84 forks source link

Add support for rpc encoded wsdl #63

Closed fernandes closed 8 years ago

fernandes commented 8 years ago

Wasabi::Parser always returns a array with [0] being the namespace and [1] being the parameter name.

The problem is that rpc has part elements that represent "arguments" for the parameter, so now on parser checks if it's a multi part then returns the parameter and all it part elements (including its type).

disclaimer: I'm totally new to SOAP, sorry if I misunderstood any concept. I tried to implement touch as few places as possible on current code base.

fernandes commented 8 years ago

build is having the same behavior that master ruby 2: passes, jruby-19mode: passes, rbx-2: passes, (ruby 1.93, 2.1 and 2.2 fails)

tjarratt commented 8 years ago

Thanks for the contribution @fernandes. I'm not at all familiar with RPC encoded WSDLs, but if the tests are all still passing as they were before and this fixes something you need, then by all means.

The only downside I see to this is that the complexity of the function you changed is very, very, very high. This isn't only your fault, lots of people (myself included) have tried to have a light touch in this code, and it resulted in some of these functions growing massively over time. There's a lot of different concerns in this one method, and I don't even know how to start unraveling it at this point in time.

fernandes commented 8 years ago

@tjarratt :bow:

If I need to change something else, I try to refactor before, I didn't because as this is my first contrib I'm not used to code style, sometimes ppl prefer to keep on a single method because you have the "whole process" on a bird view... but that's ok, thank you for your comments