<?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>Enlight Solutions &#187; Dan Pickett's Blog &#187; Rails</title>
	<atom:link href="http://www.enlightsolutions.com/articles/category/rails/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.enlightsolutions.com</link>
	<description>Freelancing on Rails</description>
	<lastBuildDate>Sat, 10 Apr 2010 21:10:15 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>It&#8217;s Not Just About Code &#8211; A Boston.rb Presentation</title>
		<link>http://www.enlightsolutions.com/articles/its-not-just-about-code-a-boston-rb-presentation/</link>
		<comments>http://www.enlightsolutions.com/articles/its-not-just-about-code-a-boston-rb-presentation/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 16:56:59 +0000</pubDate>
		<dc:creator>Dan Pickett</dc:creator>
				<category><![CDATA[Rails]]></category>
		<category><![CDATA[SCRUM]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[bostonrb]]></category>
		<category><![CDATA[brainstorming]]></category>
		<category><![CDATA[grid]]></category>
		<category><![CDATA[xp]]></category>

		<guid isPermaLink="false">http://www.enlightsolutions.com/?p=205</guid>
		<description><![CDATA[Last night I spoke @ Boston.rb about everything that happens around code.

Lately, I&#8217;ve been heavily interested in discussing the process behind software development. Our field is still very young, and I think there&#8217;s a lot we can do to improve the way in which we do our jobs.

Slides are below. I described the talk this [...]]]></description>
			<content:encoded><![CDATA[<p>Last night I spoke @ <a href="http://bostonrb.org">Boston.rb</a> about everything that happens around code.</p>

<p>Lately, I&#8217;ve been heavily interested in discussing the process behind software development. Our field is still very young, and I think there&#8217;s a lot we can do to improve the way in which we do our jobs.</p>

<p>Slides are below. I described the talk this way: We spend so much time focusing on conventional programming. Everyone focuses on standards, code clarity, testing, and what gems to use. Let&#8217;s chat about what&#8217;s done before your fingers hit the keys. Let&#8217;s talk about brainstorming, requirements, stakeholders, mock-ups, and writing solid user stories and acceptance tests with Cucumber. Every project has a story &#8211; how will your next one end?</p>

<p>If you attended the talk, I would love your <a href="http://speakerrate.com/talks/1781-it-s-not-just-about-code-boston-rb">feedback at SpeakerRate</a></p>

<div style="width:425px;text-align:left" id="__ss_2475602"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/enlightsolutions/its-not-just-about-code" title="It&#39;s Not Just About Code">It&#39;s Not Just About Code</a><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=theprocess-091111103445-phpapp01&#038;rel=0&#038;stripped_title=its-not-just-about-code" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=theprocess-091111103445-phpapp01&#038;rel=0&#038;stripped_title=its-not-just-about-code" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object><div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">presentations</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/enlightsolutions">enlightsolutions</a>.</div></div>
]]></content:encoded>
			<wfw:commentRss>http://www.enlightsolutions.com/articles/its-not-just-about-code-a-boston-rb-presentation/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Amazon Associate is deprecated in favor of ramazon_advertising</title>
		<link>http://www.enlightsolutions.com/articles/amazon-associate-is-deprecated-in-favor-of-ramazon_advertising/</link>
		<comments>http://www.enlightsolutions.com/articles/amazon-associate-is-deprecated-in-favor-of-ramazon_advertising/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 22:43:30 +0000</pubDate>
		<dc:creator>Dan Pickett</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[advertising]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://www.enlightsolutions.com/?p=195</guid>
		<description><![CDATA[Are you looking for a web wrapper for the Amazon Advertising API for your Ruby on Rails Application? ramazon_advertising is a library that provides this. It supports request signing.

The Amazon Advertising API allows you to retrieve Amazon catalog data and use it in your application. It can be really handy if you&#8217;re participating in the [...]]]></description>
			<content:encoded><![CDATA[<p>Are you looking for a web wrapper for the Amazon Advertising API for your Ruby on Rails Application? ramazon_advertising is a library that provides this. It supports request signing.</p>

<p>The Amazon Advertising API allows you to retrieve Amazon catalog data and use it in your application. It can be really handy if you&#8217;re participating in the <a href="https://affiliate-program.amazon.com/">Amazon Associate&#8217;s Program</a></p>

<p>There are a few users of <a href="http://github.com/dpickett/amazon_associate">Amazon Associate</a> that might want to know that I&#8217;m deprecating the library in favor of <a href="http://github.com/dpickett/ramazon_advertising">ramazon_advertising</a>. Amazon Associate was an older library that I was maintaining. It uses HPricot and really doesn&#8217;t jive well from a design standpoint, so <strong>amazon&#95;associate is deprecated in favor of ramazon&#95;advertising</strong></p>

<p>Ramazon Advertising uses <a href="http://railstips.org/">John Nunemaker&#8217;s</a> awesome library <a href="http://github.com/jnunemaker/happymapper">happymapper</a> along with nokogiri selectors. It&#8217;s much more object oriented and cleaner, so I hope you&#8217;ll enjoy using this library.</p>

<p>Right now, it supports product data acquisition via the ItemLookup request. Here&#8217;s a simple example where you can find the product data for a given asin:</p>

<p><code>
  @products = Ramazon::Product.find(:item_id => "B000NU2CY4", :response_group => "Medium")<br/>
  @products[0].title<br/>
  @products[0].asin<br/>
  @products[0].upc<br/>
  @products[0].large_image.url<br/>
  @products[0].url<br/>
  #you can also use a nokogiri search string to get elements that don't have built-in accessors<br />
  @products[0].get("ItemAttributes Actor").collect{|a| a.content}
</code></p>

<p>The ruby gem is available on <a href="http://gemcutter.org/gems/ramazon_advertising">Gemcutter</a> and the documentation is available at <a href="http://rdoc.info/projects/dpickett/ramazon_advertising">rdoc.info</a>. Patches and feature requests are welcomed!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.enlightsolutions.com/articles/amazon-associate-is-deprecated-in-favor-of-ramazon_advertising/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Friday&#8217;s Software Enlightenment #4 &#8211; Rumble Edition</title>
		<link>http://www.enlightsolutions.com/articles/fridays-software-enlightenment-4-rumble-edition/</link>
		<comments>http://www.enlightsolutions.com/articles/fridays-software-enlightenment-4-rumble-edition/#comments</comments>
		<pubDate>Sat, 29 Aug 2009 00:37:10 +0000</pubDate>
		<dc:creator>Dan Pickett</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[entrepreneurship]]></category>
		<category><![CDATA[railsrumble]]></category>
		<category><![CDATA[rubyonrails]]></category>

		<guid isPermaLink="false">http://www.enlightsolutions.com/?p=170</guid>
		<description><![CDATA[The 2009 Rails Rumble was a huge event! The results are simply stunning with great apps like Lowdown and hi.im. It really is amazing what can be built in 48 hours. If you get a chance, please head over, register and vote on the Rails Rumble Site

So without further ado, here&#8217;s some tools I found [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://twitter.com/gisikw">2009 Rails Rumble</a> was a huge event! The results are simply stunning with great apps like <a href="http://mcp.r09.railsrumble.com/">Lowdown</a> and <a href="http://hi.im">hi.im</a>. It really is amazing what can be built in 48 hours. If you get a chance, please head over, <a href="http://r09.railsrumble.com/session/new">register</a> and vote on the <a href="http://r09.railsrumble.com/entries">Rails Rumble Site</a></p>

<p>So without further ado, here&#8217;s some tools I found immensely useful in the creation of my rumble app. I&#8217;d really like to write a full post mortem, but in the spirit of Friday&#8217;s short list of links, here goes:</p>

<ul>
<li><a href="http://www.github.com/binarylogic/searchlogic">SearchLogic</a> &#8211; excellent derived named scopes and search form capabilities.</li>
<li><a href="http://www.github.com/binarylogic/authlogic">AuthLogic</a> &#8211; my favorite authentication system out their for Rails today.</li>
<li><a href="http://www.github.com/justinfrench/formtastic">Formtastic</a> &#8211; a great utility for generating forms quickly.</li>
<li><a href="http://www.github.com/josevalim/inherited_resources">Inherited_Resources</a> &#8211; Jose has done an awesome job with this helper that handles your typical (and not so typical) RESTful controller actions</li>
<li><a href="http://www.github.com/rsl/stringex">Stringex</a> &#8211; useful for permalinking</li>
<li><a href="http://www.github.com/dpickett/under_construction">under_construction</a> &#8211; a handy javascript utility I&#8217;ve written to quickly note what design elements need to be implemented from a development standpoint.</li>
<li><a href="http://github.com/hartcode/serverjuice/">serverjuice</a> &#8211; Great for getting an Ubuntu VM up and running quickly</li>
<li><a href="http://www.github.com/jeffrafter/spreadhead">SpreadHead</a> &#8211; although it required some adjustments in the way it handles routes, I really think this is a great way to get a quick CMS integrated with your site. It&#8217;s definitely useful to have some editable pieces of your application when there&#8217;s a code freeze in 48 hours. I currently use it for CMS partials (a way to have editable content inside a page), but I do not for individual pages themselves. There&#8217;s an issue in the gem version where the routes are added to the top of priority instead of the bottom. I&#8217;m hoping to help with a fix for this</li>
<li><a href="http://www.github.com/dpickett/tab_menu">tab_menu</a> &#8211; I always seem to need tabs or a nice menu system, so I use this code pretty frequently</li>
<li><a href="http://jqueryui.com/themeroller/">ThemeRoller</a> &#8211; easily roll JQuery UI styling.</li>
</ul>

<p>The combination of formtastic, searchlogic, and inherited_resources has really changed the way I code. I think a post on the power of these tools in combination with <a href="http://chronic.rubyforge.org/">chronic</a></p>

<p>Some of these tools and more are available in the <a href="http://github.com/dpickett/enlightened_template/tree/master">Enlightened Template</a> I maintain on Github. There were some updates after the rumble. I hope you find it useful!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.enlightsolutions.com/articles/fridays-software-enlightenment-4-rumble-edition/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Boston.rb talk on Thinking Sphinx</title>
		<link>http://www.enlightsolutions.com/articles/bostonrb-talk-on-thinking-sphinx/</link>
		<comments>http://www.enlightsolutions.com/articles/bostonrb-talk-on-thinking-sphinx/#comments</comments>
		<pubDate>Wed, 11 Mar 2009 21:25:17 +0000</pubDate>
		<dc:creator>Dan Pickett</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[bostonrb]]></category>
		<category><![CDATA[presentation]]></category>
		<category><![CDATA[sphinx]]></category>
		<category><![CDATA[thinking_sphinx]]></category>

		<guid isPermaLink="false">http://www.enlightsolutions.com/?p=128</guid>
		<description><![CDATA[Last night I did a talk on Thinking Sphinx at Boston.rb.

The slides are below.

Thinking Sphinx Talk at Boston.rbView more presentations from enlightsolutions.

Evan&#8217;s blog post with the benchmarks can be found here. There are links to other benchmarks and details.

The process library I alluded to is called God.

Other links


Thinking Sphinx
Sphinx
Delayed Job (for delta indexing)
Workling Delta Indexer
Workling
Starling
Pat [...]]]></description>
			<content:encoded><![CDATA[<p>Last night I did a talk on Thinking Sphinx at Boston.rb.</p>

<p>The slides are below.</p>

<div style="width:425px;text-align:left" id="__ss_1130563"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/enlightsolutions/thinking-sphinx-talk-at-bostonrb?type=powerpoint" title="Thinking Sphinx Talk at Boston.rb">Thinking Sphinx Talk at Boston.rb</a><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=thinkingsphinxtalk-090311162009-phpapp02&#038;stripped_title=thinking-sphinx-talk-at-bostonrb" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=thinkingsphinxtalk-090311162009-phpapp02&#038;stripped_title=thinking-sphinx-talk-at-bostonrb" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object><div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">presentations</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/enlightsolutions">enlightsolutions</a>.</div></div>

<p>Evan&#8217;s blog post with the benchmarks can be found <a href="http://blog.evanweaver.com/articles/2008/03/17/rails-search-benchmarks/">here</a>. There are links to other benchmarks and details.</p>

<p>The process library I alluded to is called <a href="http://god.rubyforge.org/">God</a>.</p>

<p>Other links</p>

<ul>
<li><a href="http://ts.freelancing-gods.com/">Thinking Sphinx</a></li>
<li><a href="http://www.sphinxsearch.com/">Sphinx</a></li>
<li><a href="http://github.com/tobi/delayed_job/tree/master">Delayed Job (for delta indexing)</a></li>
<li><a href="http://github.com/dpickett/workling_delta_indexer/tree/master">Workling Delta Indexer</a></li>
<li><a href="http://github.com/purzelrakete/workling/tree/master">Workling</a></li>
<li><a href="http://github.com/starling/starling/tree/master">Starling</a></li>
<li><a href="http://freelancing-gods.com/">Pat Allen</a></li>
</ul>

<p>Let me know what you thought of the talk and the slides. I hope you found it helpful!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.enlightsolutions.com/articles/bostonrb-talk-on-thinking-sphinx/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Rails Magazine Inaugural Issue</title>
		<link>http://www.enlightsolutions.com/articles/rails-magazine-inaugural-issue/</link>
		<comments>http://www.enlightsolutions.com/articles/rails-magazine-inaugural-issue/#comments</comments>
		<pubDate>Sun, 01 Mar 2009 17:34:14 +0000</pubDate>
		<dc:creator>Dan Pickett</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[magazine]]></category>
		<category><![CDATA[publication]]></category>

		<guid isPermaLink="false">http://www.enlightsolutions.com/?p=121</guid>
		<description><![CDATA[The first issue of Rails Magazine has been published. It looks like there is a lot of great content from some great authors.

I wrote an article about my switch from RSpec to Shoulda. A lot of issues I discussed have been addressed by both teams. Please participate in the discussion about the latest development in [...]]]></description>
			<content:encoded><![CDATA[<p>The first issue of <a href="http://railsmagazine.com/">Rails Magazine</a> has been published. It looks like there is a lot of great content from some great authors.<a href="http://www.railsmagazine.com"><img src="http://www.enlightsolutions.com/wp-content/uploads/2009/03/0991c5b2-d79e-4187-9adf-c099aa015d4e.jpg" alt="Rails Magazine" border="0" width="128" height="128" align="right" style="padding-left: 10px" /></a></p>

<p>I wrote an article about my switch from <a href="http://www.rspec.info">RSpec</a> to <a href="http://thoughtbot.com/projects/shoulda">Shoulda</a>. A lot of issues I discussed have been addressed by both teams. Please <a href="http://railsmagazine.com/forums/2/topics/22">participate</a> in the discussion about the latest development in test frameworks.</p>

<p>I think it&#8217;s really cool that Rails now has a publication. Props to <a href="http://www.workingwithrails.com/person/15666-olimpiu-metiu">Olimpiu</a> for putting it together.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.enlightsolutions.com/articles/rails-magazine-inaugural-issue/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Fix nil.rewrite errors in your Helper Tests</title>
		<link>http://www.enlightsolutions.com/articles/fix-nilrewrite-errors-in-your-helper-tests/</link>
		<comments>http://www.enlightsolutions.com/articles/fix-nilrewrite-errors-in-your-helper-tests/#comments</comments>
		<pubDate>Sun, 14 Dec 2008 21:33:46 +0000</pubDate>
		<dc:creator>Dan Pickett</dc:creator>
				<category><![CDATA[Rails]]></category>
		<category><![CDATA[helpers]]></category>
		<category><![CDATA[TATFT]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://www.enlightsolutions.com/?p=108</guid>
		<description><![CDATA[In testing my helpers, I discovered a nil.rewrite exception due to ActionController::Base.initialize_current_url not being called. This occurs when using url_for with a hash as arguments.

ActionView::TestCase does not initialize current url so you won&#8217;t be able to use *_url and *_path helpers generated from your routes. Put the following lines at the end of your test_helper.rb [...]]]></description>
			<content:encoded><![CDATA[<p>In testing my helpers, I discovered a nil.rewrite exception due to ActionController::Base.initialize_current_url not being called. This occurs when using url_for with a hash as arguments.</p>

<p>ActionView::TestCase does not initialize current url so you won&#8217;t be able to use *_url and *_path helpers generated from your routes. Put the following lines at the end of your test_helper.rb file to resolve the issue.</p>

<pre class="textmate-source">
class ActionView::TestCase < ActiveSupport::TestCase
  class TestController < ActionController::Base
    attr_accessor :request, :response, :params

    def initialize
      @request = ActionController::TestRequest.new
      @response = ActionController::TestResponse.new
      
      #TestCase doesn't have context of a current url so cheat a bit
      @params = {}
      send(:initialize_current_url)
    end
  end
end
</pre>

<p>I've submitted <a href="http://rails.lighthouseapp.com/projects/8994/tickets/1561-actionviewtestcase-does-not-have-current-url-context-so-url_for-will-fail-for-hashed-options">a patch to core</a> regarding this. Please +1 for the good of helper_tests!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.enlightsolutions.com/articles/fix-nilrewrite-errors-in-your-helper-tests/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Get Your Exceptions and Errors Organized with Hoptoad</title>
		<link>http://www.enlightsolutions.com/articles/get-your-exceptions-and-errors-organized-with-hoptoad/</link>
		<comments>http://www.enlightsolutions.com/articles/get-your-exceptions-and-errors-organized-with-hoptoad/#comments</comments>
		<pubDate>Thu, 14 Aug 2008 18:41:50 +0000</pubDate>
		<dc:creator>Dan Pickett</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[exceptions]]></category>
		<category><![CDATA[exception_handling]]></category>
		<category><![CDATA[hoptoad]]></category>
		<category><![CDATA[quality_assurance]]></category>
		<category><![CDATA[thoughtbot]]></category>

		<guid isPermaLink="false">http://www.enlightsolutions.com/?p=79</guid>
		<description><![CDATA[Goodbye exception_notifier and a cluttered inbox! Kudos to Thoughtbot for rolling out hoptoad: the app error app. It&#8217;s a web service that your app can talk to in order to report 500 (server) errors.

It was a snap to configure and has a simple plugin you can download once you register. You can add hooks to [...]]]></description>
			<content:encoded><![CDATA[<p>Goodbye <a href="http://github.com/rails/exception_notification/tree/master">exception_notifier</a> and a cluttered inbox! Kudos to <a href="http://www.thoughtbot.com">Thoughtbot</a> for rolling out <a href="http://www.hoptoadapp.com">hoptoad</a>: the app error app. It&#8217;s a web service that your app can talk to in order to report 500 (server) errors.</p>

<p>It was a snap to configure and has a simple plugin you can download once you register. You can add hooks to Lighthouse or other bug tracking software. Not sure how to do this yet, but it&#8217;s awesome to see a great execution on an app that solves a problem.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.enlightsolutions.com/articles/get-your-exceptions-and-errors-organized-with-hoptoad/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>RSpec Report in Text Format</title>
		<link>http://www.enlightsolutions.com/articles/rspec-report-in-text-format/</link>
		<comments>http://www.enlightsolutions.com/articles/rspec-report-in-text-format/#comments</comments>
		<pubDate>Sat, 02 Aug 2008 21:30:02 +0000</pubDate>
		<dc:creator>Dan Pickett</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[bdd]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[rspec]]></category>
		<category><![CDATA[rubyonrails]]></category>

		<guid isPermaLink="false">http://www.enlightsolutions.com/?p=78</guid>
		<description><![CDATA[I recently wanted to share RSpec examples with a business user. For some reason, it was kind of hard to find information on how to get a nice listing of all the examples present in your system. I believe Text and HTML formats are available, but I was unsure about how to pass spec command [...]]]></description>
			<content:encoded><![CDATA[<p>I recently wanted to share RSpec examples with a business user. For some reason, it was kind of hard to find information on how to get a nice listing of all the examples present in your system. I believe Text and HTML formats are available, but I was unsure about how to pass spec command line options to the rake task.</p>

<p>This is how to get it done. On the command line from your Rails project&#8217;s root:</p>

<pre class="textmate-source">
  rake spec SPEC_OPTS="--format s -c"
</pre>

<p>This is a great way to validate a data model in plain English.</p>

<p>Not using <a href="http://rspec.info">RSpec</a>? I highly recommend using it or a comparable framework to use business language as a definition for technical tests. Remember, if you follow Agile methodologies, you&#8217;ll want to test before you implement any features.</p>

<p>Are you interested in learning more about <a href="http://en.wikipedia.org/wiki/Behavior_driven_development">Behavior Driven Development (BDD)</a> and RSpec? Check out <a href="http://peepcode.com/products/rspec-basics">Peepcode&#8217;s screencast</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.enlightsolutions.com/articles/rspec-report-in-text-format/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Rails Validation fieldWithErrors annoyance</title>
		<link>http://www.enlightsolutions.com/articles/rails-validation-fieldwitherrors-annoyance/</link>
		<comments>http://www.enlightsolutions.com/articles/rails-validation-fieldwitherrors-annoyance/#comments</comments>
		<pubDate>Thu, 03 Jul 2008 16:16:38 +0000</pubDate>
		<dc:creator>Dan Pickett</dc:creator>
				<category><![CDATA[Rails]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[fieldwitherrors]]></category>
		<category><![CDATA[rubyonrails]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://www.enlightsolutions.com/?p=75</guid>
		<description><![CDATA[So I&#8217;m thoroughly annoyed that a fieldWithErrors div wraps around a field that fails validation. I added a file called field_with_error_fix.rb in config/initializers to solve this pesky problem. It has the following code:


ActionView::Base.field_error_proc = Proc.new { &#124;html_tag, instance&#124;
"&#60;span class=\"fieldWithErrors\"&#62;#{html_tag}&#60;/span&#62;" }


Goodbye inappropriate divs!
]]></description>
			<content:encoded><![CDATA[<p>So I&#8217;m thoroughly annoyed that a fieldWithErrors div wraps around a field that fails validation. I added a file called field_with_error_fix.rb in config/initializers to solve this pesky problem. It has the following code:</p>

<pre class="textmate-source">
ActionView::Base.field_error_proc = Proc.new { |html_tag, instance|
"&lt;span class=\"fieldWithErrors\"&gt;#{html_tag}&lt;/span&gt;" }
</pre>

<p>Goodbye inappropriate divs!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.enlightsolutions.com/articles/rails-validation-fieldwitherrors-annoyance/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>What&#8217;s New In Rails 2.1 &#8211; A Great Reference</title>
		<link>http://www.enlightsolutions.com/articles/whats-new-in-rails-21-an-great-reference/</link>
		<comments>http://www.enlightsolutions.com/articles/whats-new-in-rails-21-an-great-reference/#comments</comments>
		<pubDate>Tue, 24 Jun 2008 01:03:47 +0000</pubDate>
		<dc:creator>Dan Pickett</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[reference]]></category>
		<category><![CDATA[rubyonrails]]></category>

		<guid isPermaLink="false">http://www.enlightsolutions.com/?p=74</guid>
		<description><![CDATA[I found this today &#8211; kudos to Carlos Brando for putting together an awesome reference! It&#8217;s a summary of all the new features rolled into Ruby on Rails 2.1.

Ruby on Rails 2.1 &#8211; What&#8217;s New
]]></description>
			<content:encoded><![CDATA[<p>I found this today &#8211; kudos to <a href="http://www.nomedojogo.com/">Carlos Brando</a> for putting together an awesome reference! It&#8217;s a summary of all the new features rolled into Ruby on Rails 2.1.</p>

<p><a href="http://www.nomedojogo.com/2008/06/09/new-free-book-ruby-on-rails-21-whats-new/">Ruby on Rails 2.1 &#8211; What&#8217;s New</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.enlightsolutions.com/articles/whats-new-in-rails-21-an-great-reference/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
