ruby-on-railsxmlrubyhpricotopen-uri

XML => HTML with Hpricot and Rails


I have never worked with web services and rails, and obviously this is something I need to learn. I have chosen to use hpricot because it looks great. Anyway, _why's been nice enough to provide the following example on the hpricot website:

 #!ruby
 require 'hpricot'
 require 'open-uri'
 # load the RedHanded home page
 doc = Hpricot(open("http://redhanded.hobix.com/index.html"))
 # change the CSS class on links
 (doc/"span.entryPermalink").set("class", "newLinks")
 # remove the sidebar
 (doc/"#sidebar").remove
 # print the altered HTML
 puts doc

Which looks simple, elegant, and easy peasey. Works great in Ruby, but my question is: How do I break this up in rails?

I experimented with adding this all to a single controller, but couldn't think of the best way to call it in a view.

So if you were parsing an XML file from a web API and printing it in nice clean HTML with Hpricot, how would you break up the activity over the models, views, and controllers, and what would you put where?


Solution

  • Model, model, model, model, model. Skinny controllers, simple views.

    The RedHandedHomePage model does the parsing on initialization, then call 'def render' in the controller, set output to an instance variable, and print that in a view.