Hi All, Is there anything special I need to know about providing xml data feeds with rails as far as user agents, or browser specific information is concerned? Will one data feed differ from another in any way? Are there any gotchas or watchout issues with XML that I might encounter along the way? I''m hoping to be processing some XML data feeds directly to college football stadiums soon and I''m building a plugin for CrossFire Hardware/Software compatibility. Thanks in advance. -- Posted via http://www.ruby-forum.com/.
Alpha Blue wrote:> I''m hoping to be processing some XML data feeds directly to college > football stadiums soon and I''m building a plugin for CrossFire > Hardware/Software compatibility.I assume you''re referring to RSS or ATOM when you say "XML data feeds?" Making this assumption, most feed readers I know of can handle both RSS and ATOM. You just need to make sure you''re providing the feed in the proper format for the readers that will be used to consume your feeds.> Is there anything special I need to know about providing xml data feeds > with rails as far as user agents, or browser specific information is > concerned? Will one data feed differ from another in any way?Also there is a way in some browsers (at least Safari) where you can place a meta tag in the head section that will display the RSS button in the address bar. At least that''s how I think that feature works. Here is an example form the Apple start page: <link rel="alternate" href="http://images.apple.com/main/rss/hotnews/hotnews.rss" type="application/rss+xml" title="RSS"> -- Posted via http://www.ruby-forum.com/.
Hi Robert, One of the companies I''m trying to work with just requires xml data that they use for plugins to their video system. So, when I say xml feeds I''m simply implying feeding xml data to their system. I know I could simply just perform a standard xml render and have them pull and parse off of that. However, I may want to organize that so it reads better. Let me provide you a brief example of an xml fed document that I might have: http://pastie.org/593376 As it stands now the generic xml data is placed into a teams container with two sub containers for team. I may want to change this so that it looks like such: <teams> <team> <offense> ... </offense> <defense> ... </defense> <special_teams> ... </special_teams> ... etc. </team> <team> <offense> ... </offense> <defense> ... </defense> <special_teams> ... </special_teams> ... etc. </team> </teams> I''m just trying to come up with a proper way of rendering the xml in such a fashion that whatever plugin they use can find and sort the data properly. So, I''m weighing my options on how to render the xml. From my limited understanding with xml in rails, an xml builder is something that is used for say tables/grids? I don''t think I need formatting like that. I just need an xml file that they can use to pull data from. Any tips would be appreciated. Many thanks. Attachments: http://www.ruby-forum.com/attachment/3968/virtuals.xml -- Posted via http://www.ruby-forum.com/.
Hi all, Okay I figured it out myself. In the controller, I changed the following: respond_to do |format| format.html format.js format.xml { render :xml => @virtuals } end TO respond_to do |format| format.html format.js format.xml end .. and then created an index.xml.builder file In the builder file, I did something similar: xml.instruct! xml.virtuals do @virtuals.each do |virtual| xml.virtual do xml.tsrs virtual.tsrs etc... end end end This allows you to remove the pre-rendered xml and replace it with your own tags. -- Posted via http://www.ruby-forum.com/.
Alpha Blue wrote:> This allows you to remove the pre-rendered xml and replace it with your > own tags.Yes, I thought that might be the case. I know that many people actually do use ATOM for this purpose rather than a custom XML format. Using a known representation like ATOM can sometime make the parsing of the data on the client-side easier by taking advantage of existing parsers. For example: using an RSS or ATOM feed a client could use any RSS feed reader to monitor the data feed. That may or may not be useful in your case. But, in either case what you showed is how one would use the XML builder templates. It just depends on wether you want to feed that data as PO-XML, RSS, or ATOM. -- Posted via http://www.ruby-forum.com/.
Hi Robert, I''m not sure what the client will want created to be honest. So, at this point, I''m simply trying to get the data to appear how it should if someone were to view an xml file. I also just figured out how to add custom tag groupings: xml.instruct! xml.virtuals do @virtuals.each do |virtual| xml.virtual do xml.team virtual.formal_name xml.tsrs virtual.tsrs xml.offense{ xml.total_offense virtual.to_ydspgm } end end end In the case above, I want to wrap an offense element around offensive stats so I''m doing it this way. It''s looking good so far. Once I get this done, I''ll have to find out what the client wants. What do you suggest based on what you see me doing currently? -- Posted via http://www.ruby-forum.com/.
Hi Robert, So, I''ve finished version 1 of the xml piece for my virtual match-ups page. It looks like so: http://gist.github.com/174270 I''ll look into the other areas you recommended. -- Posted via http://www.ruby-forum.com/.
Alpha Blue wrote:> Hi Robert, > > So, I''ve finished version 1 of the xml piece for my virtual match-ups > page. It looks like so: > > http://gist.github.com/174270 > > I''ll look into the other areas you recommended.I like it! Very clean and easy to understand and parse. The only suggestion I might have would be to included a little meta-information indicating the data type for some of the fields: Example: ... <name>Alabama</name> <tsrs type="float">81.6628</tsrs> ... This is not at all vital, but can sometimes be a useful convenience to the consumers of your document. -- Posted via http://www.ruby-forum.com/.
Thanks for the feedback Robert. I''m implementing that now for the numbers. In case someone else follows this thread, the way to implement type with xml.builder is by doing the following: You convert the old syntax: xml.total_offense team.to_ydspgm TO the new syntax xml.total_offense(team.to_ydspgm, :type => "float") I hope that helps. -- Posted via http://www.ruby-forum.com/.
I updated what the xml data looks like now: http://gist.github.com/174270 -- Posted via http://www.ruby-forum.com/.
Alpha Blue wrote:> I updated what the xml data looks like now: > > http://gist.github.com/174270Cool. Now it''s clear to the consumer what to expect, rather than having to treat everything as a string. -- Posted via http://www.ruby-forum.com/.