Skip to content

Gem allows you to use our RubyOnRails project like XMLRPC server

Notifications You must be signed in to change notification settings

azati/rails-xmlrpc

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rails-xmlrpc

Rails has native support for xmlrpc. Most people are familiar with the ‘xmlrpc/client’ library. The ‘xmlrpc/server’ library examples mostly make an assumption that you will run a standalone server.

rails-xmlrpc allows you to instead expose normal Rails controller methods via XMLRPC, tied to an xmlrpc endpoint route in your app.

Install

Run in terminal:

gem install rails-xmlrpc

For Rails 2

Add row to environment.rb inside Rails::Initializer block:

config.gem "rails-xmlrpc"

Add row to routes.rb

map.connect 'api/xmlrpc', :controller => 'my_controller', :action => 'xe_index'

For Rails 3

Add row to Gemfile:

gem "rails-xmlrpc"

Set up a route in your routes.rb file

match 'api/xmlrpc' => 'my#xe_index'

Examples

Add this code to your controller:

class MyController < ApplicationController
  exposes_xmlrpc_methods

  add_method 'Container.method_name' do
    'Hello World'
  end

end

Then, pointing an XMLRPC client at the defined route, your normal controller actions will handle the requests.

require 'xmlrpc/client'
server = XMLRPC::Client.new2("http://localhost:3000/api/xmlrpc")
server.call("Container.method_name")

To use a custom namespace prefix on all exposed methods (for example, if using someone else’s specified protocol like MetaWeblog), declare a method_prefix:

class MyApiController < ApplicationController
  exposes_xmlrpc_methods :method_prefix => "metaWeblog."

  # This method will be exposed externally as "metaWeblog.newPost()"
  def newPost(blogid, username, password, struct, publish)
  ...
  end
end

Note on Patches/Pull Requests

  • Fork the project.

  • Make your feature addition or bug fix.

  • Add tests for it. This is important so I don’t break it in a future version unintentionally.

  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)

  • Send me a pull request. Bonus points for topic branches.

Copyright © 2011 Aleksei Kvitinskii, released under the MIT license.

About

Gem allows you to use our RubyOnRails project like XMLRPC server

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Ruby 100.0%