<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mindtonic &#187; gem</title>
	<atom:link href="http://blog.mindtonic.net/tag/gem/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.mindtonic.net</link>
	<description>Thoughts on Music and Application Development</description>
	<lastBuildDate>Fri, 30 Jul 2010 18:08:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Available Fields from FeedNormalizer Gem</title>
		<link>http://blog.mindtonic.net/available-fields-from-feednormalizer/</link>
		<comments>http://blog.mindtonic.net/available-fields-from-feednormalizer/#comments</comments>
		<pubDate>Wed, 08 Jul 2009 18:18:52 +0000</pubDate>
		<dc:creator>mindtonic</dc:creator>
				<category><![CDATA[Gems]]></category>
		<category><![CDATA[feednormalizer]]></category>
		<category><![CDATA[gem]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://blog.mindtonic.net/?p=29</guid>
		<description><![CDATA[The FeedNormalizer Gem does an excellent job of returning a single unified object from many of several different syndicated feed types. This saves you from having to worry about whether you are dealing with an rss, atom or some other kind of feed. The following is a list of the available fields for both the [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://rubyforge.org/projects/feed-normalizer">FeedNormalizer</a> Gem does an excellent job of returning a single unified object from many of several different syndicated feed types.  This saves you from having to worry about whether you are dealing with an rss, atom or some other kind of feed.</p>
<p>The following is a list of the available fields for both the Feed object itself and the Entries objects associated as articles in the channel.</p>
<p><strong>FeedNormalizer::Feed</strong></p>
<ul>
<li>title</li>
<li>description</li>
<li>id</li>
<li>last_updated</li>
<li>copyright</li>
<li>authors / author</li>
<li>urls / url</li>
<li>image</li>
<li>generator</li>
<li>items / channel</li>
</ul>
<p><strong>FeedNormalizer::Entry</strong></p>
<ul>
<li>content</li>
<li>description</li>
<li>title</li>
<li>date_published</li>
<li>urls / url</li>
<li>id</li>
<li>authors / author</li>
<li>copyright</li>
<li>categories</li>
</ul>
<p><strong>Etags</strong></p>
<p>Etags and last_modified are crucial elements to sending proper request headers if you hope to receive conditional get responses and save yourself some overhead in feed processing.  FeedNormalizer does not provide access to these elements as they are actually part of the http response headers, and not the feed itself.</p>
<p>While heavily studying the art of feed processing, I encountered <a href="http://github.com/pauldix/feedzirra/tree/master">Feezirra</a> and <a href="http://github.com/jsl/feedtosis/tree">Feedtosis</a>, both excellent libraries for feed processing.  My own application required a modified version of their concept, but there was a lot to learn in their code.</p>
<p><a href="http://github.com/jsl/feedtosis/tree">Feedtosis</a> uses the HttpHeaders process to collect this information from a <a href="http://curb.rubyforge.org/classes/Curl/Easy.html">Curl::Easy</a> object.  I adapted the <a href="http://github.com/jsl/feedtosis/tree">Feedtosis</a> code to meet my needs like this:</p>
<pre>
require 'http_headers'

class Feed < ActiveRecord::Base
  def store_header_information
    headers = HttpHeaders.new(curl.header_str)
    self.response_code = curl.response_code
    self.etag = headers.etag unless headers.etag.nil?
    self.last_modified = headers.last_modified unless headers.last_modified.nil?
  end
end
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.mindtonic.net/available-fields-from-feednormalizer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How To Start the Gem Server for Local Gem Rdocs</title>
		<link>http://blog.mindtonic.net/how-to-start-the-gem-server-for-local-gem-rdocs/</link>
		<comments>http://blog.mindtonic.net/how-to-start-the-gem-server-for-local-gem-rdocs/#comments</comments>
		<pubDate>Wed, 08 Jul 2009 17:06:15 +0000</pubDate>
		<dc:creator>mindtonic</dc:creator>
				<category><![CDATA[Gems]]></category>
		<category><![CDATA[gem]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://blog.mindtonic.net/?p=26</guid>
		<description><![CDATA[To view the rdoc documentation for all of your locally installed gems, at the command line run: $ gem server This will start the gem server at port 8808, so to access the html from your browser, use the following url: http://localhost:8808/ Note that this only access the documentation for Gems that are installed locally [...]]]></description>
			<content:encoded><![CDATA[<p>To view the rdoc documentation for all of your locally installed gems, at the command line run:</p>
<p><code>$ gem server</code> </p>
<p> This will start the gem server at port 8808, so to access the html from your browser, use the following url: </p>
<p><code>http://localhost:8808/</code></p>
<p>Note that this only access the documentation for Gems that are installed locally on your server.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mindtonic.net/how-to-start-the-gem-server-for-local-gem-rdocs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
