New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature req: adapters for ruby's xmlrpc class #84
Comments
I'm not exactly sure what you are looking for but with the Ox callback parser (SAX) you should be able to drive your XMLRPC calls. You will have to either rename some of them or wrap them but I don't see a problem with doing so. If I am missing the point please explain in more details what you are looking for. |
I thought it would be nice to have the matching adapter code in the ox gem that integrates within the stdlib xmlrpc client. Basically that code that "wraps them" so people don't have to write it themselves. Examples that are included in stdlib: REXML Stream parser: https://github.com/ruby/ruby/blob/trunk/lib/xmlrpc/parser.rb#L723-L746 You can use .set_parser() on the XMLRPC client and pass in a class require 'rubygems'
require 'xmlrpc/client'
require 'ox/xmlrpc_adapters'
bla = XMLRPC::Client.new3(...)
bla.set_parser(Ox::XMLRPC_ADAPTERS::Streamparser) Seeing as XMLRPC is part of the stdlib, integrating in that doesn't seem tooooo far fetched :) |
got it. Good idea. I'll start exploring a little. No promises though. |
I looked into it this morning, but had to switch over to another task after a bit. |
Certainly possible. Easy enough to call sax_parse from the subclass too. If you are interested in working together on it we can take it offline to email and start a branch. |
Any further interest or should I close the issue for now? |
I just moved to the US, so the last week was a bit busy :) |
Understand. Same when I moved back from Tokyo at the beginning of the year. |
Nice and simple. I like it. Can you move it to the contrib directory though. It doesn't belong in the Ox directly as it can not be pulled in with the oj require since it has external dependencies and it is kind of odd requiring something from inside the module when it has already been loaded. |
The problem moving this file to the contrib directory is that it is not added to the gem so this file will need to be imported manually to the project that uses it. Another problem I've seen is that Ox does not unescape html/xml, that is, convert < to <, etc. This can be easily fixed changing the "character" alias to a method that calls, for example, CGI.unescape_html. Still most of the libraries to unescape html are awfully slow and most the time won with Ox parsing is lost unescaping the strings. I'll move the file to contrib if you still think it's the way to go. |
It would be a pity to have to make another gem just for the adapter. |
It will be in the next release. Thanks. Ox should be doing the unescaping. Can you provide me a short XML where it fails and open an issue for it? |
Finally made the release. Ox 2.1.0 |
Feature is in. Closing. |
It would be neat to be able to use ox to provide XMLRPC parsing in https://github.com/ruby/ruby/blob/trunk/lib/xmlrpc/parser.rb
I think the things to look at would be the AbstractStreamParser and AbstractTreeParser classes
The text was updated successfully, but these errors were encountered: