<?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/"
		xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
	xmlns:media="http://search.yahoo.com/mrss/"
>

<channel>
	<title>Igo Coelho &#187; Rails</title>
	<atom:link href="http://www.igocoelho.com.br/category/rails/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.igocoelho.com.br</link>
	<description>Meus pensamentos sobre muitas coisas...</description>
	<lastBuildDate>Thu, 05 Jan 2012 17:41:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
	<atom:link rel='hub' href='http://www.igocoelho.com.br/?pushpress=hub'/>
	<copyright>2006-2007 </copyright>
	<managingEditor>igocoelho@gmail.com (Igo Coelho)</managingEditor>
	<webMaster>igocoelho@gmail.com (Igo Coelho)</webMaster>
	<image>
		<url>http://www.igocoelho.com.br/wp-content/plugins/podpress/images/powered_by_podpress.jpg</url>
		<title>Igo Coelho</title>
		<link>http://www.igocoelho.com.br</link>
		<width>144</width>
		<height>144</height>
	</image>
	<itunes:subtitle></itunes:subtitle>
	<itunes:summary>Meus pensamentos sobre muitas coisas...</itunes:summary>
	<itunes:keywords></itunes:keywords>
	<itunes:category text="Society &#38; Culture" />
	<itunes:author>Igo Coelho</itunes:author>
	<itunes:owner>
		<itunes:name>Igo Coelho</itunes:name>
		<itunes:email>igocoelho@gmail.com</itunes:email>
	</itunes:owner>
	<itunes:block>no</itunes:block>
	<itunes:explicit>no</itunes:explicit>
	<itunes:image href="http://www.igocoelho.com.br/wp-content/plugins/podpress/images/powered_by_podpress_large.jpg" />
		<item>
		<title>Gerenciando as dependências com Ruby Tracker</title>
		<link>http://www.igocoelho.com.br/2010/07/12/gerenciando-dependencias-ruby-tracker/</link>
		<comments>http://www.igocoelho.com.br/2010/07/12/gerenciando-dependencias-ruby-tracker/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 14:19:29 +0000</pubDate>
		<dc:creator>igocoelho</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ágil]]></category>

		<guid isPermaLink="false">http://www.igocoelho.com.br/?p=215</guid>
		<description><![CDATA[Ruby Tracker é um projeto de apoio à comunidade liderado por Jacob Swanner que tem como objetivo monitorar e informar as dependências entre gems em projetos Ruby. O Ruby Tracker funciona examinando o projeto e verificando quais gems são utilizadas e principalmente quais versões. Quando for preciso autalizar qualquer gem você será informado quais outras [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://rubytracker.com/" target="_blank">Ruby Tracker</a> é um projeto de apoio à comunidade liderado por Jacob Swanner que tem como objetivo monitorar e informar as dependências entre gems em projetos Ruby.</p>
<p style="text-align: justify;">O <a href="http://rubytracker.com/" target="_blank">Ruby Tracker</a> funciona examinando o projeto e verificando quais gems são utilizadas e principalmente quais versões. Quando for preciso autalizar qualquer gem você será informado quais outras também devem ser atualizadas e para qual versão.</p>
<p>Segue abaixo um vídeo demonstrando melhor o uso da ferramenta:</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://www.youtube.com/v/YMC-TV2FCXg&amp;color1=0xb1b1b1&amp;color2=0xd0d0d0&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/YMC-TV2FCXg&amp;color1=0xb1b1b1&amp;color2=0xd0d0d0&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.igocoelho.com.br/2010/07/12/gerenciando-dependencias-ruby-tracker/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Para não esquecer: Ruby on Rails Unit Testing Assertions</title>
		<link>http://www.igocoelho.com.br/2010/02/27/para-nao-esquecer-ruby-on-rails-assertions/</link>
		<comments>http://www.igocoelho.com.br/2010/02/27/para-nao-esquecer-ruby-on-rails-assertions/#comments</comments>
		<pubDate>Sat, 27 Feb 2010 17:44:42 +0000</pubDate>
		<dc:creator>igocoelho</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ágil]]></category>

		<guid isPermaLink="false">http://www.igocoelho.com.br/?p=184</guid>
		<description><![CDATA[Basic Assertions assert(boolean, message) assert(person.name == “John”, “Name was expected to be John.”) assert(item.errors.invalid?(:price)) assert_equal(expected, actual, message) assert_equal(person.name, “John”, “Name was expected to be John.”) assert_equal(“can’t be empty”, product.errors.on(:price)) assert_not_equal(expected, actual, message) assert_not_equal(person.name, “Mary”, “Name was Mary and it should not be.”) assert_not_equal(“is not a number”, product.errors.on(:price)) assert_raise(Exception, message) { block&#8230; } assert_raise(ZeroDivisionError, “Cannot divide [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><strong>Basic Assertions</strong></p>
<p style="text-align: left;"><strong>assert(boolean, message)</strong><br />
assert(person.name == “John”, “Name was expected to be John.”)<br />
assert(item.errors.invalid?(:price))</p>
<p><strong>assert_equal(expected, actual, message)</strong><br />
assert_equal(person.name, “John”, “Name was expected to be John.”)<br />
assert_equal(“can’t be empty”, product.errors.on(:price))<br />
<strong><br />
assert_not_equal(expected, actual, message)</strong><br />
assert_not_equal(person.name, “Mary”, “Name was Mary and it should not be.”)<br />
assert_not_equal(“is not a number”, product.errors.on(:price))<br />
<strong><br />
assert_raise(Exception, message) { block&#8230; }</strong><br />
assert_raise(ZeroDivisionError, “Cannot divide by zero!”) { 100 / 0 }<br />
assert_raise(ActiveRecord::RecordNotFound) { Product.find(bad_id) }<br />
<strong><br />
assert_nothing_raised(Exception, message) { block&#8230; }</strong><br />
assert_nothing_raised(ZeroDivisionError) { 100 / [0,1].max }<br />
assert_nothing_raised(ActiveRecord::RecordNotFound) { Product.find(good_id) }<br />
<strong><br />
assert_nil(object, message)</strong><br />
assert_nil( product, “Expected product to be nil.” )<br />
assert_nil( Wine.find(:first, :conditions =&gt; ‘id = 1000’) )<br />
<strong><br />
assert_not_nil(object, message)</strong><br />
assert_not_nil( product, “Product should not be nil.” )<br />
assert_not_nil( Wine.find(:first, :conditions =&gt; ‘id = 1’) )<br />
<strong><br />
assert_valid(activerecord_object)</strong><br />
same as: assert(object.valid?)<br />
assert_valid(@person)<br />
assert_valid( Wine.find(1) )<br />
<strong><br />
flunk(message)</strong><br />
always fails immediately; same as: assert(false, message)<br />
flunk(“Quantity should not be greater than 100”) if quantity &gt; 100<br />
flunk(“Either user or account should be valid”) unless user.valid? || account.valid?</p>
<p style="text-align: center;"><strong>Advanced Assertions</strong></p>
<p><strong>assert_match(pattern, string, message)</strong><br />
assert_match(/^\d,\d{3},\d{3}$/, “1,000,000”, “Should match this format.”)<br />
<strong><br />
assert_no_match(pattern, string, message)</strong><br />
assert_no_match(/\d{3},\d{2}$/, “1,000,000”, “Should not match this format.”)<br />
<strong><br />
assert_in_delta(expected_float, actual_float, delta, message)</strong><br />
assert_in_delta(100.0, price, 20.0, “Price should be between 80.00 and 120.00”)<br />
assert_in_delta(2, length, 1, “Length should be 1-3 feet.”)<br />
<strong><br />
assert_instance_of( klass, object, message )</strong><br />
assert_instance_of( User, person, “person should be an instance of User” )<br />
<strong><br />
assert_kind_of( klass, object, message )</strong><br />
assert_kind_of( User, person, “person should be a kind of User” )<br />
assert_kind_of( Class, User, “User should be a kind of Class” )<br />
<strong><br />
assert_respond_to( object, symbol, message )</strong><br />
Instances only respond to instance methods, classes only respond to class methods<br />
assert_respond_to( person, :full_name, “No response to full_name” )<br />
assert_respond_to( User, :custom_find, “No response to custom_find” )<br />
<strong><br />
assert_throws(expected_symbol, message) { block&#8230; }</strong><br />
assert_throws(:done, “Array should be empty”) { throw :done if [].empty? }<br />
<strong><br />
assert_nothing_thrown(message) { block&#8230; }</strong><br />
assert_nothing_thrown(“Array should not be empty”) { throw :done if [1].empty? }</p>
<p style="text-align: center;"><strong>Rare Assertions &amp; DEFAULT EROR MESSA GES</strong></p>
<p><strong>assert_same( expected, actual, message)</strong><br />
same as: assert_equal(expected, actual)<br />
assert_same( person.name, “John”)<br />
<strong><br />
assert_not_same( expected, actual, message)</strong><br />
same as: assert_not_equal(expected, actual)<br />
assert_not_same( person.name, “Mary”)<br />
<strong><br />
assert_operator( object1, operator, object2, message )</strong><br />
same as: assert( object1.operator(object2) )<br />
assert_operator( 1000, :&lt;, 2000, “Expected 1000 to be less than 2000” )<br />
assert_operator( user, <img src='http://www.igocoelho.com.br/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' /> ld_enough?, Time.now(), “User should be old enough”)<br />
<strong><br />
assert_send([receiver, symbol, arg1, arg2], message)</strong><br />
same as: assert( receiver.message(arg1, arg2) )<br />
assert_send([product, :decrement_inventory, qty], “Decrement should succeed”)</p>
<p>From: /activerecord/lib/active_record/validations.rb</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
</pre></td><td class="code"><pre class="ruby" style="font-family:monospace;">@@default_error_messages = <span style="color:#006600; font-weight:bold;">&#123;</span>
<span style="color:#ff3333; font-weight:bold;">:inclusion</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> “is <span style="color:#9966CC; font-weight:bold;">not</span> included <span style="color:#9966CC; font-weight:bold;">in</span> the list”,
<span style="color:#ff3333; font-weight:bold;">:exclusion</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> “is reserved”,
<span style="color:#ff3333; font-weight:bold;">:invalid</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> “is invalid”,
<span style="color:#ff3333; font-weight:bold;">:confirmation</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> “doesn’t match confirmation”,
<span style="color:#ff3333; font-weight:bold;">:accepted</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> “must be accepted”,
<span style="color:#ff3333; font-weight:bold;">:empty</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> “can’t be empty”,
<span style="color:#ff3333; font-weight:bold;">:blank</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> “can’t be blank”,
<span style="color:#ff3333; font-weight:bold;">:too_long</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> “is too long <span style="color:#006600; font-weight:bold;">&#40;</span>maximum is <span style="color:#006600; font-weight:bold;">%</span>d characters<span style="color:#006600; font-weight:bold;">&#41;</span>”,
<span style="color:#ff3333; font-weight:bold;">:too_short</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> “is too short <span style="color:#006600; font-weight:bold;">&#40;</span>minimum is <span style="color:#006600; font-weight:bold;">%</span>d characters<span style="color:#006600; font-weight:bold;">&#41;</span>”,
<span style="color:#ff3333; font-weight:bold;">:wrong_length</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> “is the wrong length <span style="color:#006600; font-weight:bold;">&#40;</span>should be <span style="color:#006600; font-weight:bold;">%</span>d characters<span style="color:#006600; font-weight:bold;">&#41;</span>”,
<span style="color:#ff3333; font-weight:bold;">:taken</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> “has already been taken”,
<span style="color:#ff3333; font-weight:bold;">:not_a_number</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> “is <span style="color:#9966CC; font-weight:bold;">not</span> a number”,
<span style="color:#ff3333; font-weight:bold;">:greater_than</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> “must be greater than <span style="color:#006600; font-weight:bold;">%</span>d”,
<span style="color:#ff3333; font-weight:bold;">:greater_than_or_equal_to</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> “must be greater than <span style="color:#9966CC; font-weight:bold;">or</span> equal to <span style="color:#006600; font-weight:bold;">%</span>d”,
<span style="color:#ff3333; font-weight:bold;">:equal_to</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> “must be equal to <span style="color:#006600; font-weight:bold;">%</span>d”,
<span style="color:#ff3333; font-weight:bold;">:less_than</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> “must be less than <span style="color:#006600; font-weight:bold;">%</span>d”,
<span style="color:#ff3333; font-weight:bold;">:less_than_or_equal_to</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> “must be less than <span style="color:#9966CC; font-weight:bold;">or</span> equal to <span style="color:#006600; font-weight:bold;">%</span>d”,
<span style="color:#ff3333; font-weight:bold;">:odd</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> “must be odd”,
<span style="color:#ff3333; font-weight:bold;">:even</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> “must be even”
<span style="color:#006600; font-weight:bold;">&#125;</span></pre></td></tr></table></div>

<p><strong>Referência:</strong><br />
<a href="http://www.nullislove.com/2008/02/20/testing-in-rails-part-10-assertions/" target="_blank"> http://www.nullislove.com/2008/02/20/testing-in-rails-part-10-assertions/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.igocoelho.com.br/2010/02/27/para-nao-esquecer-ruby-on-rails-assertions/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

