<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Plataforma Tecnologia Blog » Português</title>
	
	<link>http://blog.plataformatec.com.br</link>
	<description>O espaço da Plataforma Tecnologia para falar sobre Ruby, Ruby on Rails e engenharia de software.</description>
	<lastBuildDate>Wed, 28 Jul 2010 19:50:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/PlataformaBlog_portugues" /><feedburner:info uri="plataformablog_portugues" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Estamos contratando! de novo =D</title>
		<link>http://feedproxy.google.com/~r/PlataformaBlog_portugues/~3/3V8R4YU9Urg/</link>
		<comments>http://blog.plataformatec.com.br/2010/07/estamos-contratando-de-novo/#comments</comments>
		<pubDate>Wed, 28 Jul 2010 09:47:50 +0000</pubDate>
		<dc:creator>Marcelo Park</dc:creator>
				<category><![CDATA[Português]]></category>
		<category><![CDATA[contratando]]></category>
		<category><![CDATA[geeks]]></category>
		<category><![CDATA[hackers]]></category>
		<category><![CDATA[plataformers]]></category>
		<category><![CDATA[vagas]]></category>

		<guid isPermaLink="false">http://blog.plataformatec.com.br/?p=1225</guid>
		<description><![CDATA[Há estudos indicando que 42% das empresas paulistas fecham com até dois anos de existência. E nós estamos sobrevivendo bem às estatísticas. Por isso, estamos em busca de mais desenvolvedores Rails para trabalhar conosco! \o/ Procuramos por geeks, com disponibilidade full-time, que realmente gostem de &#8216;codar&#8217; e fazer um trabalho bem feito, limpo e sem remendos. [...]]]></description>
			<content:encoded><![CDATA[<p>Há estudos indicando que 42% das empresas paulistas fecham com até dois anos de existência.<br />
E nós estamos sobrevivendo bem às estatísticas. Por isso, estamos em busca de mais desenvolvedores Rails para trabalhar conosco! \o/</p>
<p>Procuramos por geeks, com disponibilidade full-time, que realmente gostem de &#8216;codar&#8217; e fazer um trabalho bem feito, limpo e sem remendos. Para esta vaga em aberto, não é necessário ter experiência com Rails. Porém, é um requisito que você já tenha trabalhado com outras linguagens orientadas a objeto e desenvolvimento para web por pelo menos um ano. Ao final do post há uma lista de habilidades que buscamos. Não esqueça de checar.</p>
<div id="attachment_1279" class="wp-caption aligncenter" style="width: 460px"><img class="size-full wp-image-1279" title="We love geeks! v2.0 (sorry girls!)" src="http://blog.plataformatec.com.br/wp-content/uploads/2010/07/92ACAD61-C990-638A-AD90DD36016599EE2.jpg" alt="homer simpson dough!" width="450" height="342" /><p class="wp-caption-text">We love geeks! v2.0 (sorry girls!)***</p></div>
<p>Sobre a vaga&#8230; apesar de não atuar diretamente, o novo desenvolvedor estará envolvido com todas as áreas relacionadas aos projetos (deployment, decisões de arquitetura e infra-estrutura, questões de escalabilidade, gestão de projetos ágeis e o próprio desenvolvimento em si).</p>
<p>É assim que trabalhamos na Plataforma Tecnologia. Não há feudos de Gerentes Projetos vs. Arquitetos vs. Desenvolvedores vs. Designers. Cada um possui seu papel, mas a entrega de resultados depende de um time multi-disciplinar que entende a visão geral do projeto.</p>
<p>Bem pessoal, segue o <strong>resumo dos requisitos</strong>:<br />
- Inglês intermediário<br />
- Cultura &#8216;hacker&#8217;<br />
- Programação orientada a objetos<br />
- Experiência prévia com desenvolvimento de aplicativos web<br />
- Não é necessário experiência em Ruby on Rails (mas será diferencial para os que tiverem)<br />
- Desejável ser usuário de OS Linux ou Mac (Windows is so over&#8230;)<br />
- Disponibilidade full-time<br />
- Local: São Paulo (negociável)</p>
<p>Geeks com sede por aprendizado, uni-vos!<br />
Enviem seus CVs para trabalhe@plataformatec.com.br.</p>
<p><em>*** Por total insensibilidade da minha parte, e totalmente sem querer, a imagem previamente publicada neste post poderia ser interpretada como ofensiva e machista. Não era essa a idéia. Estamos procurando por developers, independente do sexo.<br />
<span style="font-style: normal;"><em><br />
Aproveito para </em><em>agradecer as gentis meninas do &#8216;devchix&#8217; que nos alertaram e nos deram feedback sobre a imagem originalmente postada. Thanks and really sorry girls! =)</em></span></em></p>
<img src="http://feeds.feedburner.com/~r/PlataformaBlog_portugues/~4/3V8R4YU9Urg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.plataformatec.com.br/2010/07/estamos-contratando-de-novo/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.plataformatec.com.br/2010/07/estamos-contratando-de-novo/</feedburner:origLink></item>
		<item>
		<title>O que há de novo no Rails 3 – Ruby e Rails no Mundo Real</title>
		<link>http://feedproxy.google.com/~r/PlataformaBlog_portugues/~3/JyP8tQI9SrA/</link>
		<comments>http://blog.plataformatec.com.br/2010/06/o-que-ha-de-novo-no-rails-3-ruby-e-rails-no-mundo-real/#comments</comments>
		<pubDate>Wed, 02 Jun 2010 20:39:49 +0000</pubDate>
		<dc:creator>Hugo Baraúna</dc:creator>
				<category><![CDATA[Português]]></category>

		<guid isPermaLink="false">http://blog.plataformatec.com.br/?p=1123</guid>
		<description><![CDATA[Nesse sábado (29/05/2010) eu fiz uma palestra sobre Rails 3 no evento Ruby e Rails no Mundo Real 2010. O evento foi muito bom, tendo cerca de 200 pessoas participando. Queria agradecer a todos que estavam lá para ver minha palestra e agradecer também aos elogios, muito obrigado. Seguem meus slides: O que há de [...]]]></description>
			<content:encoded><![CDATA[<p>Nesse sábado (29/05/2010) eu fiz uma palestra sobre Rails 3 no <a href="http://guru-sp.com/evento/">evento Ruby e Rails no Mundo Real 2010</a>. O evento foi muito bom, tendo cerca de 200 pessoas participando. Queria agradecer a todos que estavam lá para ver minha palestra e agradecer também aos elogios, muito obrigado.</p>
<p>Seguem meus slides:</p>
<div style="width:425px" id="__ss_4393552"><strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/hugobarauna/o-que-h-de-novo-no-rails-3" title="O que há de novo no Rails 3">O que há de novo no Rails 3</a></strong><object id="__sse4393552" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=2010-05-29rubyreal2010-100602152112-phpapp01&#038;stripped_title=o-que-h-de-novo-no-rails-3" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed name="__sse4393552" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=2010-05-29rubyreal2010-100602152112-phpapp01&#038;stripped_title=o-que-h-de-novo-no-rails-3" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="padding:5px 0 12px">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/hugobarauna">Hugo Baraúna</a>.</div>
</div>
<p>E o vídeo da minha palestra, que foi feito pelo @agaelebe.</p>
<p><embed src="http://blip.tv/play/hOdBgeOSWAI" type="application/x-shockwave-flash" width="480" height="390" allowscriptaccess="always" allowfullscreen="true"></embed></p>
<img src="http://feeds.feedburner.com/~r/PlataformaBlog_portugues/~4/JyP8tQI9SrA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.plataformatec.com.br/2010/06/o-que-ha-de-novo-no-rails-3-ruby-e-rails-no-mundo-real/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://blog.plataformatec.com.br/2010/06/o-que-ha-de-novo-no-rails-3-ruby-e-rails-no-mundo-real/</feedburner:origLink></item>
		<item>
		<title>Resultado do sorteio Ruby + Rails no Mundo Real</title>
		<link>http://feedproxy.google.com/~r/PlataformaBlog_portugues/~3/SEFJBJuwt0Q/</link>
		<comments>http://blog.plataformatec.com.br/2010/05/resultado-do-sorteio-ruby-rails-no-mundo-real-2010/#comments</comments>
		<pubDate>Sun, 23 May 2010 16:40:46 +0000</pubDate>
		<dc:creator>Marcelo Park</dc:creator>
				<category><![CDATA[Português]]></category>
		<category><![CDATA[eventos]]></category>
		<category><![CDATA[são paulo]]></category>

		<guid isPermaLink="false">http://blog.plataformatec.com.br/?p=1080</guid>
		<description><![CDATA[Antes de divulgar o resultado, nós gostaríamos de agradecer à todos que participaram e ajudaram a divulgar o evento. Muito obrigado a todos! Pessoal, temos uma surpresa para anunciar&#8230;  Ao invés de premiarmos a comunidade Rails com somente um ingresso, nós decidimos sortear 2 entradas para o Ruby + Rails no Mundo Real 2010. FTW!!! [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.plataformatec.com.br/wp-content/uploads/2010/05/ronr2010.jpg"><img class="aligncenter size-full wp-image-1025" title="Ruby on Rails no mundo real 2010" src="http://blog.plataformatec.com.br/wp-content/uploads/2010/05/ronr2010.jpg" alt="Ruby on Rails no mundo real 2010" width="170" height="169" /></a></p>
<p>Antes de divulgar o resultado, nós gostaríamos de agradecer à todos que participaram e ajudaram a divulgar o evento. Muito obrigado a todos!</p>
<p>Pessoal, temos uma surpresa para anunciar&#8230;  Ao invés de premiarmos a comunidade Rails com somente um ingresso, nós decidimos sortear 2 entradas para o Ruby + Rails no Mundo Real 2010. FTW!!! \o/</p>
<p>Sem mais mistérios, vamos aos dois ganhadores:</p>
<p><strong>@jonas_alves:</strong></p>
<p><a href="http://twitter.com/jonas_alves/status/14246157660"><img class="alignnone size-full wp-image-1081" title="@jonas_alves" src="http://blog.plataformatec.com.br/wp-content/uploads/2010/05/jonas_alves.png" alt="@jonas_alves" width="602" height="257" /></a></p>
<p><strong>@lucasmazza:</strong></p>
<p><strong><a href="http://twitter.com/lucasmazza/status/14239655650"><img class="alignnone size-full wp-image-1083" title="@lucasmazza" src="http://blog.plataformatec.com.br/wp-content/uploads/2010/05/lucasmazza1.png" alt="@lucasmazza" width="602" height="257" /></a></strong></p>
<p>PARABÉNS!</p>
<p>Para receber os códigos para inscrição, enviem uma DM para @plataformatec com seus contatos (e-mail e telefone).</p>
<p>Atenção, pois as incrições só poderão ser realizadas até o dia 25/mai.</p>
<p>Nos vemos lá no Ruby + Rails no Mundo Real 2010,<br />
Abraços!</p>
<img src="http://feeds.feedburner.com/~r/PlataformaBlog_portugues/~4/SEFJBJuwt0Q" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.plataformatec.com.br/2010/05/resultado-do-sorteio-ruby-rails-no-mundo-real-2010/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.plataformatec.com.br/2010/05/resultado-do-sorteio-ruby-rails-no-mundo-real-2010/</feedburner:origLink></item>
		<item>
		<title>Sorteio de um ingresso para o evento “Ruby + Rails no Mundo Real 2010″</title>
		<link>http://feedproxy.google.com/~r/PlataformaBlog_portugues/~3/WlI9UDdI108/</link>
		<comments>http://blog.plataformatec.com.br/2010/05/sorteio-de-um-ingresso-para-o-evento-ruby-rails-no-mundo-real-2010/#comments</comments>
		<pubDate>Tue, 18 May 2010 17:08:15 +0000</pubDate>
		<dc:creator>Marcelo Park</dc:creator>
				<category><![CDATA[Português]]></category>
		<category><![CDATA[eventos]]></category>
		<category><![CDATA[são paulo]]></category>

		<guid isPermaLink="false">http://blog.plataformatec.com.br/?p=1027</guid>
		<description><![CDATA[O que é o Ruby on Rails no Mundo Real? É  um evento organizado pelo Guru-SP e pela Tempo Real Eventos e contará com grandes palestrantes. Esta será a segunda edição e ocorrerá em São Paulo, no dia 29/maio. Para mais infos, visite o site do Guru-SP e veja as fotos de 2009 (via @agaelebe). Como participar do sorteio? É [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://guru-sp.com/evento/"><img class="size-full wp-image-1025 aligncenter" title="Ruby on Rails no Mundo Real 2010" src="http://blog.plataformatec.com.br/wp-content/uploads/2010/05/ronr2010.jpg" alt="Ruby on Rails no mundo real 2010" width="170" height="169" /></a></p>
<p><strong>O que é o Ruby on Rails no Mundo Real?<br />
</strong>É  um evento organizado pelo Guru-SP e pela Tempo Real Eventos e contará com grandes palestrantes. Esta será a segunda edição e ocorrerá em São Paulo, no dia 29/maio. Para mais infos, visite o site do <a href="http://guru-sp.com/evento/">Guru-SP</a> e veja as <a href="http://picasaweb.google.com/hugo.borges/RubyRailsNoMundoReal#">fotos de 2009</a> (via @agaelebe).</p>
<p><strong>Como participar do sorteio?<br />
</strong>É muito simples.<br />
1) Basta ser um follower da <a href="http://twitter.com/plataformatec">@plataformatec</a> e<br />
2) twittar &#8220;<em><span style="color: #ff0000;"><strong><span style="color: #993300;">Eu quero ir ao #rubyreal2010 com a @plataformatec &#8211; http://bit.ly/clvpFk</span></strong></span></em>&#8221;<br />
(basta <a href="http://twitter.com/home?status=Eu+quero+ir+ao+%23rubyreal2010+com+a+%40plataformatec+-+http%3A%2F%2Fbit.ly%2FclvpFk" target="_blank">clicar aqui para twittar</a>).</p>
<p>O prazo para participar será encerrado no dia 21/maio e o resultado será divulgado no dia 22/maio pelo nosso blog e twitter.</p>
<p><strong>Por que a Plataforma Tecnologia está sorteando um ingresso?<br />
</strong>Porque faz parte da nossa filosofia e DNA contribuir com a comunidade Rails. Patrocinar e divulgar eventos é uma maneira de contribuir.<br />
Por isso estamos pedindo sua ajuda para divulgar o evento. Como forma de retribuição, sortearemos um ingresso.</p>
<p>Participe! Contribua! =D</p>
<p><strong><span style="font-weight: normal;"><br />
</span></strong></p>
<img src="http://feeds.feedburner.com/~r/PlataformaBlog_portugues/~4/WlI9UDdI108" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.plataformatec.com.br/2010/05/sorteio-de-um-ingresso-para-o-evento-ruby-rails-no-mundo-real-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.plataformatec.com.br/2010/05/sorteio-de-um-ingresso-para-o-evento-ruby-rails-no-mundo-real-2010/</feedburner:origLink></item>
		<item>
		<title>Mostre seus models baby!</title>
		<link>http://feedproxy.google.com/~r/PlataformaBlog_portugues/~3/1BTVe-2nCjU/</link>
		<comments>http://blog.plataformatec.com.br/2010/03/mostre-seus-models-baby/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 12:16:16 +0000</pubDate>
		<dc:creator>Carlos Antônio</dc:creator>
				<category><![CDATA[Português]]></category>

		<guid isPermaLink="false">http://blog.plataformatec.com.br/?p=833</guid>
		<description><![CDATA[Ultimamente temos trabalhado em alguns projetos que necessitaram de vários CRUDs na administração como páginas mostrando listas de atributos. E com passar do tempo, estávamos ficando entediados de tanto copiar e colar código como este para cada atributo em nossas páginas: &#60;p&#62; &#60;strong class=&#34;label&#34;&#62;Name&#60;/strong&#62;&#60;br /&#62; &#60;%= @person.name %&#62; &#60;/p&#62; Nós já tinhamos criado um helper [...]]]></description>
			<content:encoded><![CDATA[<p>Ultimamente temos trabalhado em alguns projetos que necessitaram de vários CRUDs na administração como páginas mostrando listas de atributos. E com passar do tempo, estávamos ficando entediados de tanto copiar e colar código como este para cada atributo em nossas páginas:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">&lt;p&gt;
  &lt;strong class=&quot;label&quot;&gt;Name&lt;/strong&gt;&lt;br /&gt;
  <span style="color:#006600; font-weight:bold;">&lt;%</span>= <span style="color:#0066ff; font-weight:bold;">@person</span>.<span style="color:#9900CC;">name</span> <span style="color:#006600; font-weight:bold;">%&gt;</span>
&lt;/p&gt;</pre></div></div>

<p>Nós já tinhamos criado um helper para fazer o trabalho para nós, mas copiar este helper de um projeto para outro não é DRY. Então decidimos criar uma nova gem, chamada <a href="http://github.com/plataformatec/show_for" title="ShowFor - Wrap your objects with a helper to easily show them">ShowFor</a>.</p>
<p><a href="http://github.com/plataformatec/show_for" title="ShowFor - Wrap your objects with a helper to easily show them">ShowFor</a> é uma DSL para auxiliá-lo a mostrar uma lista de atributos, usando I18n, perfeito para páginas de visualização em interfaces CRUDs. Ele permite que você substitua duplicação de código/html em suas views usando uma sintaxe mais atraente. Vejamos o que podemos fazer!</p>
<h3>Atributos</h3>
<p>Vamos imaginar que temos um model Person, que possui os atributos first_name, last_name, age, photo, e confirmed. As linhas abaixo criam uma lista de valores para um registro específico:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#006600; font-weight:bold;">&lt;%</span> show_for <span style="color:#0066ff; font-weight:bold;">@person</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>p<span style="color:#006600; font-weight:bold;">|</span> <span style="color:#006600; font-weight:bold;">%&gt;</span>
  <span style="color:#006600; font-weight:bold;">&lt;%</span>= <span style="color:#CC0066; font-weight:bold;">p</span>.<span style="color:#9900CC;">attribute</span> <span style="color:#ff3333; font-weight:bold;">:first_name</span> <span style="color:#006600; font-weight:bold;">%&gt;</span>
  <span style="color:#006600; font-weight:bold;">&lt;%</span>= <span style="color:#CC0066; font-weight:bold;">p</span>.<span style="color:#9900CC;">attribute</span> <span style="color:#ff3333; font-weight:bold;">:last_name</span> <span style="color:#006600; font-weight:bold;">%&gt;</span>
  <span style="color:#006600; font-weight:bold;">&lt;%</span>= <span style="color:#CC0066; font-weight:bold;">p</span>.<span style="color:#9900CC;">attribute</span> <span style="color:#ff3333; font-weight:bold;">:confirmed</span>? <span style="color:#006600; font-weight:bold;">%&gt;</span>
  <span style="color:#006600; font-weight:bold;">&lt;%</span>= <span style="color:#CC0066; font-weight:bold;">p</span>.<span style="color:#9900CC;">attribute</span> <span style="color:#ff3333; font-weight:bold;">:created_at</span>, <span style="color:#ff3333; font-weight:bold;">:format</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#ff3333; font-weight:bold;">:short</span> <span style="color:#006600; font-weight:bold;">%&gt;</span>
  <span style="color:#006600; font-weight:bold;">&lt;%</span>= <span style="color:#CC0066; font-weight:bold;">p</span>.<span style="color:#9900CC;">attribute</span> <span style="color:#ff3333; font-weight:bold;">:age</span>, <span style="color:#ff3333; font-weight:bold;">:if_blank</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">&quot;No age&quot;</span> <span style="color:#006600; font-weight:bold;">%&gt;</span>
&nbsp;
  <span style="color:#006600; font-weight:bold;">&lt;%</span> <span style="color:#CC0066; font-weight:bold;">p</span>.<span style="color:#9900CC;">attribute</span> <span style="color:#ff3333; font-weight:bold;">:photo</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">%&gt;</span>
    <span style="color:#006600; font-weight:bold;">&lt;%</span>= image_tag<span style="color:#006600; font-weight:bold;">&#40;</span>@person.<span style="color:#9900CC;">photo_url</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">%&gt;</span>
  <span style="color:#006600; font-weight:bold;">&lt;%</span> <span style="color:#9966CC; font-weight:bold;">end</span> <span style="color:#006600; font-weight:bold;">%&gt;</span>
<span style="color:#006600; font-weight:bold;">&lt;%</span> <span style="color:#9966CC; font-weight:bold;">end</span> <span style="color:#006600; font-weight:bold;">%&gt;</span></pre></div></div>

<p>E este é o código HTML que você tem como resultado:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;div class=&quot;show_for person&quot; id=&quot;person_1&quot;&gt;
  &lt;p class=&quot;wrapper person_first_name&quot;&gt;&lt;strong class=&quot;label&quot;&gt;First name&lt;/strong&gt;&lt;br /&gt;Carlos&lt;/p&gt;
  &lt;p class=&quot;wrapper person_last_name&quot;&gt;&lt;strong class=&quot;label&quot;&gt;Last name&lt;/strong&gt;&lt;br /&gt;Antonio&lt;/p&gt;
  &lt;p class=&quot;wrapper person_confirmed&quot;&gt;&lt;strong class=&quot;label&quot;&gt;Confirmed?&lt;/strong&gt;&lt;br /&gt;Yes&lt;/p&gt;
  &lt;p class=&quot;wrapper person_created_at&quot;&gt;&lt;strong class=&quot;label&quot;&gt;Created at&lt;/strong&gt;&lt;br /&gt;08 Mar 11:30&lt;/p&gt;
  &lt;p class=&quot;wrapper person_age&quot;&gt;&lt;strong class=&quot;label&quot;&gt;Age&lt;/strong&gt;&lt;br /&gt;24&lt;/p&gt;
  &lt;p class=&quot;wrapper person_photo&quot;&gt;&lt;strong class=&quot;label&quot;&gt;Photo&lt;/strong&gt;&lt;br /&gt;
    &lt;img alt=&quot;Rails&quot; src=&quot;/images/rails.png?1268047643&quot; /&gt;
  &lt;/p&gt;
&lt;/div&gt;</pre></div></div>

<p>Como se pode ver, você terá uma marcação HTML padrão, com classes e ids para ajudá-lo no design com CSS. E caso tenha notado, estamos usando opções extras em alguns atributos, vamos dar uma olhada em algumas delas:</p>
<ul>
<li><code>:format</code> permite que você defina um formato a ser usando com I18n, somente para atributos date/time, como você usaria com o helper <code>l</code>.</li>
<li><code>:if_blank</code> define o que será mostrado caso o atributo esteja em branco. Pode ter um valor padrão via I18n.</li>
<li><code>do...end</code>: usando blocos você mesmo pode manusear o conteúdo para o atributo específico, como fizemos no exemplo para o atributo <code>photo</code>.</li>
</ul>
<p>Atributos booleanos, como nosso <code>:confirmed</code>, também possuem um valor padrão para <code>true</code> e <code>false</code>, e podem ser configurados através de I18n. Se você deseja mostrar &#8220;Sim&#8221; e &#8220;Não&#8221; no lugar de &#8220;Yes&#8221; e &#8220;No&#8221; respectivamente, só precisa mudar seu arquivo I18n. Você também pode passar a opção <code>:escape</code> para não escapar o conteúdo (<code>true</code> por padrão).</p>
<h3>Associações</h3>
<p><a href="http://github.com/plataformatec/show_for" title="ShowFor - Wrap your objects with a helper to easily show them">ShowFor</a> também funciona com associações. Por exemplo, podemos adicionar que nosso Person agora pertence a um model City com um atributo nome, e que também possui e pertence a muitas Tags. Para gerenciar o primeiro, podemos fazer:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#006600; font-weight:bold;">&lt;%</span>= <span style="color:#CC0066; font-weight:bold;">p</span>.<span style="color:#9900CC;">association</span> <span style="color:#ff3333; font-weight:bold;">:city</span> <span style="color:#006600; font-weight:bold;">%&gt;</span></pre></div></div>

<p><a href="http://github.com/plataformatec/show_for" title="ShowFor - Wrap your objects with a helper to easily show them">ShowFor</a> irá adivinhar o atributo correto para mostrar procurando todas as possibilidades configuradas em <code>ShowFor.association_methods</code> e neste caso escolhendo :name. Mas é claro, você pode modificar isso se precisar:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#006600; font-weight:bold;">&lt;%</span>= <span style="color:#CC0066; font-weight:bold;">p</span>.<span style="color:#9900CC;">association</span> <span style="color:#ff3333; font-weight:bold;">:city</span>, <span style="color:#ff3333; font-weight:bold;">:using</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#ff3333; font-weight:bold;">:full_name</span> <span style="color:#006600; font-weight:bold;">%&gt;</span>
<span style="color:#006600; font-weight:bold;">&lt;%</span>= <span style="color:#CC0066; font-weight:bold;">p</span>.<span style="color:#9900CC;">attribute</span> <span style="color:#ff3333; font-weight:bold;">:full_name</span>, <span style="color:#ff3333; font-weight:bold;">:in</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#ff3333; font-weight:bold;">:city</span> <span style="color:#006600; font-weight:bold;">%&gt;</span></pre></div></div>

<p>Ambas as possibilidades acima terão a mesma saída, apenas escolha a que você mais gostar.</p>
<p>Manusear coleções é tão fácil quanto associações belongs_to. Você simplesmente passa a associação para <a href="http://github.com/plataformatec/show_for" title="ShowFor - Wrap your objects with a helper to easily show them">ShowFor</a> e ele irá saber se é uma coleção ou não, gerando uma lista de elementos usando tags <code>ul</code> e <code>li</code>.</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#006600; font-weight:bold;">&lt;%</span>= <span style="color:#CC0066; font-weight:bold;">p</span>.<span style="color:#9900CC;">association</span> <span style="color:#ff3333; font-weight:bold;">:tags</span> <span style="color:#006600; font-weight:bold;">%&gt;</span></pre></div></div>

<p>Entretando, se você quiser renderizar a coleção inline, pode usar as opções :to_sentence e :join:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#006600; font-weight:bold;">&lt;%</span>= <span style="color:#CC0066; font-weight:bold;">p</span>.<span style="color:#9900CC;">association</span> <span style="color:#ff3333; font-weight:bold;">:tags</span>, <span style="color:#ff3333; font-weight:bold;">:to_sentence</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#0000FF; font-weight:bold;">true</span> <span style="color:#006600; font-weight:bold;">%&gt;</span>
<span style="color:#006600; font-weight:bold;">&lt;%</span>= <span style="color:#CC0066; font-weight:bold;">p</span>.<span style="color:#9900CC;">association</span> <span style="color:#ff3333; font-weight:bold;">:tags</span>, <span style="color:#ff3333; font-weight:bold;">:join</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">','</span> <span style="color:#006600; font-weight:bold;">%&gt;</span></pre></div></div>

<p>Também é possível passar um bloco para a coleção. O <a href="http://github.com/plataformatec/show_for" title="ShowFor - Wrap your objects with a helper to easily show them">ShowFor</a> criará a tag wrapper (<code>ul</code> por padrão nesse caso) e retornará cada elemento da coleção para você gerenciá-lo:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#006600; font-weight:bold;">&lt;%</span> a.<span style="color:#9900CC;">association</span> <span style="color:#ff3333; font-weight:bold;">:tags</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>tag<span style="color:#006600; font-weight:bold;">|</span> <span style="color:#006600; font-weight:bold;">%&gt;</span>
  &lt;li&gt;<span style="color:#006600; font-weight:bold;">&lt;%</span>= link_to tag.<span style="color:#9900CC;">name</span>, tag <span style="color:#006600; font-weight:bold;">%&gt;</span>&lt;/li&gt;
<span style="color:#006600; font-weight:bold;">&lt;%</span> <span style="color:#9966CC; font-weight:bold;">end</span> <span style="color:#006600; font-weight:bold;">%&gt;</span></pre></div></div>

<h3>Labels</h3>
<p>Você deve ter percebido que o <a href="http://github.com/plataformatec/show_for" title="ShowFor - Wrap your objects with a helper to easily show them">ShowFor</a> possui um label padrão usando a tag <code>strong</code>. Ele também expõe a você o método <code>label</code> como um helper, para que possa usá-lo quando desejar:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">  <span style="color:#006600; font-weight:bold;">&lt;%</span>= <span style="color:#CC0066; font-weight:bold;">p</span>.<span style="color:#9900CC;">label</span> <span style="color:#ff3333; font-weight:bold;">:first_name</span> <span style="color:#006600; font-weight:bold;">%&gt;</span>
  <span style="color:#006600; font-weight:bold;">&lt;%</span>= <span style="color:#CC0066; font-weight:bold;">p</span>.<span style="color:#9900CC;">label</span> <span style="color:#ff3333; font-weight:bold;">:age</span>, <span style="color:#ff3333; font-weight:bold;">:id</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">'person_age'</span> <span style="color:#006600; font-weight:bold;">%&gt;</span>
&nbsp;
  &lt;strong class=&quot;label&quot;&gt;First name&lt;/strong&gt;
  &lt;strong class=&quot;label&quot; id=&quot;person_age&quot;&gt;Age&lt;/strong&gt;</pre></div></div>

<h3>Instalação</h3>
<p>O <a href="http://github.com/plataformatec/show_for" title="ShowFor - Wrap your objects with a helper to easily show them">ShowFor</a>, em sua versão 0.2.0, já é compatível com o Rails 3. Você pode seguir as instruções no <a href="http://github.com/plataformatec/show_for/blob/master/README.rdoc">README</a> para instalá-lo.</p>
<p>Se você está usando o Rails 2.3.x, pode dar uma olhada no <a href="http://github.com/plataformatec/show_for/tree/v0.1">branch 0.1</a>, e seguir as instruções no <a href="http://github.com/plataformatec/show_for/blob/v0.1/README.rdoc">README</a> deste branch para utilizá-lo.</p>
<p>E após a instalação, não se esqueça de executar o generator e dar uma olhada no initializer gerado, que permite que você configure várias partes do <a href="http://github.com/plataformatec/show_for" title="ShowFor - Wrap your objects with a helper to easily show them">ShowFor</a>.</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">script<span style="color:#006600; font-weight:bold;">/</span>generate show_for_install</pre></div></div>

<h3>Fechando</h3>
<p><a href="http://github.com/plataformatec/show_for" title="ShowFor - Wrap your objects with a helper to easily show them">ShowFor</a> ajuda você a mostrar os atributos de seus objetos facilmente com uma marcação html padrão, e pode ser totalmente configurado para atender sua necessidade. Ele tem nos ajudado em todos os projetos, e esperamos que ele possa ajudá-lo também. Se você tiver alguma dúvida, por favor dê uma olhada no <a href="http://github.com/plataformatec/show_for/blob/master/README.rdoc">README</a>, existem muitos exemplos e documentação lá.</p>
<p>E você? Possui algum helper que usa todos os dias e que poderia ser transformado em um plugin/gem? Não hesite em fazer isto, ficaremos contentes em ver seu trabalho!</p>
<p>Divirta-se!</p>
<img src="http://feeds.feedburner.com/~r/PlataformaBlog_portugues/~4/1BTVe-2nCjU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.plataformatec.com.br/2010/03/mostre-seus-models-baby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.plataformatec.com.br/2010/03/mostre-seus-models-baby/</feedburner:origLink></item>
		<item>
		<title>Feliz Aniversário Devise</title>
		<link>http://feedproxy.google.com/~r/PlataformaBlog_portugues/~3/oO4v0t8GWoI/</link>
		<comments>http://blog.plataformatec.com.br/2010/02/feliz-aniversario-devise/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 19:05:19 +0000</pubDate>
		<dc:creator>Carlos Antônio</dc:creator>
				<category><![CDATA[Português]]></category>

		<guid isPermaLink="false">http://blog.plataformatec.com.br/?p=784</guid>
		<description><![CDATA[Hoje estamos comemorando o aniversário do Devise. Mas espere um pouco, se você está seguindo o Devise desde o início pode estar se perguntando: &#8220;O Devise já completou um ano de vida?&#8221;. Não. Hoje estamos completando exatamente 4 meses desde que o Devise foi lançado no Rails Summit Latin America 2009. E estamos muito orgulhosos [...]]]></description>
			<content:encoded><![CDATA[<p>Hoje estamos comemorando o aniversário do <a href="http://github.com/plataformatec/devise">Devise</a>. Mas espere um pouco, se você está seguindo o <a href="http://github.com/plataformatec/devise">Devise</a> desde o início pode estar se perguntando: &#8220;O <a href="http://github.com/plataformatec/devise">Devise</a> já completou um ano de vida?&#8221;. Não. Hoje estamos completando exatamente 4 meses desde que o <a href="http://github.com/plataformatec/devise">Devise</a> foi <a href="http://blog.plataformatec.com.br/2009/10/thor-e-devise-no-rails-summit-latin-america-2009/">lançado no Rails Summit Latin America 2009</a>. E estamos muito orgulhosos e felizes em dizer que alcançamos a <a href="http://github.com/plataformatec/devise/commit/4bfbeea7e6e6f78503abf5b59571a316a7a72158">versão 1.0</a>! Yeah! Vamos comemorar e falar um pouquinho sobre a história do projeto.</p>
<h3>O início</h3>
<p>Decidimos criar o <a href="http://github.com/plataformatec/devise">Devise</a> com base em alguns requisitos de um projeto que tivemos no ano passado. A grande maioria de nossos projetos normalmente precisam de uma interface de administração para configurar a aplicação e alguma informação com CRUD. E neste projeto em específico, precisávamos de dois papéis diferentes na mesma aplicação: o administrador com todos os poderes para gerenciar a aplicação, e os usuários finais que deveriam estar devidamente logados para executarem algumas coisas na aplicação. Normalmente essa situação requer um modelo, com alguma coluna de &#8220;tipo&#8221; ou flag para determinar se o usuário é admin ou não, certo? Ok, mas não gostávamos muito deste método. Então começamos a analisar as possibilidades:</p>
<ul>
<li><strong><a href="http://github.com/binarylogic/authlogic">Authlogic</a></strong>: um código ótimo e cheio de funcionalidade, mas um pouco estranho gerenciando a sessão através de um modelo. Além disso, ele gerenciava apenas a parte do modelo.</li>
<li><strong><a href="http://github.com/thoughtbot/clearance">Clearance</a></strong>: completo, funciona como Engine do Rails, módulos adicionais, tudo que precisávamos. Entretanto, ele nos obriga a usar o modelo User, sem possibilidade de customizar isto.</li>
</ul>
<p>Certo, poderíamos escolher um deles e com um pouco de trabalho extra alcançaríamos nossos requisitos. Mas nós precisaríamos fazer isto toda vez que uma situação dessas acontecesse? Nós respondemos não. Não era DRY o suficiente. E nós gostamos de ser DRY. Então nasceu o <a href="http://github.com/plataformatec/devise">Devise</a>.</p>
<p>O principal objetivo da primeira versão do <a href="http://github.com/plataformatec/devise">Devise</a> era proporcionar o processo de login completo, incluindo recuperação de senha e confirmação de conta. E tudo deveria funcionar com papéis diferentes, o que significa que você poderia facilmente adicionar em sua aplicação um papel de Admin, User, Account, ou qualquer outro que precisasse, sem muito trabalho. Também tínhamos um prazo: o <a href="http://www.railssummit.com.br">Rails Summit</a>. Levou quase 1 mês de trabalho antes do <a href="http://www.railssummit.com.br">Rails Summit</a>. Ainda me lembro os dias que antecederam o evento, nós trabalhando quase como loucos para deixar o <a href="http://github.com/plataformatec/devise">Devise</a> redondo, e também o <a href="http://github.com/plataformatec/devise/blob/master/README.rdoc">README</a> que foi escrito durante o evento. Então, estávamos prontos e apresentando o <a href="http://github.com/plataformatec/devise">Devise</a> para o mundo.</p>
<h3>Como ele funciona</h3>
<p>O <a href="http://github.com/plataformatec/devise">Devise</a> nasceu com o intuito de gerenciar papéis diferentes sem esforço, automaticamente, e isso é conseguido através das Engines do Rails. Além disso, o <a href="http://github.com/plataformatec/devise">Devise</a> é construído sobre o <a href="http://github.com/hassox/warden">Warden</a>, um ótimo framework de autenticação para o Rack. Isso nos permitiu ser bastante flexíveis e adicionar estratégias diferentes, hooks, a módulos facilmente. Em resumo, o <a href="http://github.com/plataformatec/devise">Devise</a>:</p>
<ul>
<li>É baseado no Rack;</li>
<li>É uma solução MVC completa com base em Rails Engines;</li>
<li>Permite que você tenha múltiplos papéis (modelos/escopos) logados ao mesmo tempo;</li>
<li>É totalmente baseado no conceito de modularidade: use somente o que você realmente precisa.</li>
</ul>
<h3>A estrada até agora</h3>
<p><a href="http://github.com/plataformatec/devise">Devise</a> foi lançado com os módulos básicos necessários para aquela aplicação específica: </p>
<ul>
<li><strong>Authenticatable</strong>: responsável por logar usuários atráves de formulários, gerenciando validação de senha e autenticação.</li>
<li><strong>Confirmable</strong>: controla a confirmação de conta de usuários.</li>
<li><strong>Recoverable</strong>: gerencia a recuperação de senhas.</li>
<li><strong>Validatable</strong>: validação básica de email e senha.</li>
</ul>
<p>Certo, tínhamos tudo que precisávamos até então. O restante estava em uma wishlist, a qual chamamos de TODO. E decidimos desde o princípio não adicionar funcionalidades ao <a href="http://github.com/plataformatec/devise">Devise</a> até que nós ou outra pessoa realmente precisasse. Mas as pessoas pediram, as pessoas precisavam de novas funcionalidades. E elas sempre estiveram lá para ajudar, para criar um fork e corrigir um bug, para comentar. Então logo começamos a adicionar novas funcionalidades, a primeira era:</p>
<ul>
<li><strong>Rememberable</strong>: gerencia o login automático de usuários a partir de cookies.</li>
</ul>
<p>Depois as pessoas pediram por maneiras mais fáceis de criar as migratios, então introduzimos um novo módulo com o <a href="http://github.com/plataformatec/devise">Devise</a> 0.2:</p>
<ul>
<li><strong>Migratable</strong>: cria hooks nas <a href="http://ar.rubyonrails.org/classes/ActiveRecord/Migration.html">migrations</a> do <a href="http://ar.rubyonrails.org/">ActiveRecord</a> adicionando alguns métodos para criar os campos para o <a href="http://github.com/plataformatec/devise">Devise</a>. Assim você pode fazer coisas como <code>t.authenticatable</code>, <code>t.confirmable</code> e assim por diante.</li>
</ul>
<p>Para ajudar as pessoas a iniciarem mais rapidamente, criamos então alguns geradores. Atualmente são eles:</p>
<ul>
<li><code>script/generate <strong>devise_install</code></strong>: cria um arquivo de inicialização para habilitar algumas configurações e também copia o arquivo padrão de locale.</li>
<li><code>script/generate <strong>devise</strong> MyModel</code>: cria um modelo já configurado para o <a href="http://github.com/plataformatec/devise">Devise</a>, adiciona rotas e uma migration.</li>
<li><code>script/generate <strong>devise_views</strong></code>: copia todas as views do <a href="http://github.com/plataformatec/devise">Devise</a> para seu diretório app/views, permitindo que você altere como achar necessário.</li>
</ul>
<p>As versões 0.3 e 0.4 do <a href="http://github.com/plataformatec/devise">Devise</a> vieram logo em seguida, com vários bugs corrigidos nos geradores, I18n, inicialização, alguns métodos deprecados e uma porção de código refatorado.</p>
<p>As contribuições da comunidade estavam aparecendo cada vez mais. A primeira grande contribuição veio com a adição dos encryptors. Atualmente o <a href="http://github.com/plataformatec/devise">Devise</a> suporta a criptografia de senhas com SHA1, SHA512 e Bcrypt. Ele também possui suporte às mesmas rotinas de criptografia do <a href="http://github.com/binarylogic/authlogic">Authlogic</a>, <a href="http://github.com/thoughtbot/clearance">Clearance</a> e <a href="http://github.com/technoweenie/restful-authentication">Restful Authentication</a>, para auxiliá-lo a migrar dessas soluções.</p>
<p>Neste ponto pensamos: certo, já deve ser o bastante. Não era. As pessoas precisavam de ORMs diferentes do <a href="http://ar.rubyonrails.org/">ActiveRecord</a>. Então adicionamos suporte ao <a href="http://mongomapper.com/">MongoMapper</a> e estávamos alcançando o <a href="http://github.com/plataformatec/devise">Devise</a> 0.5.</p>
<p>Estávamos recebendo muito feedback sobre problemas com testes funcionais, então construímos o Devise::TestHelper, que contém métodos para auxiliar as pessoas com o processo de sign in/out nestes testes.</p>
<p>Conforme as aplicações crescem, mais papéis podem ser necessários. Então adicionamos a possibilidade de criar views específicas para cada papel/escopo de sua aplicação. Assim seu usuário poderia ter uma view para logar diferente do administrador, por exemplo. Chegando na versão 0.6, várias melhorias foram feitas na geração de rotas e o suporte ao <a href="http://datamapper.org/">DataMapper</a> foi adicionado.</p>
<p>Estávamos cheio de idéias legais para adicionar novas funcionalidades, e nosso TODO estava maior do que gostamos. Então surgimos com:</p>
<ul>
<li><strong>Timeoutable</strong>: faz uma checagem em cada request para destruir a sessão do usuário após um certo período de inatividade, pedindo por credenciais novamente.</li>
<li><strong>Trackable</strong>: registra o número de logins do usuário, última data/hora e ip usados para acessar.</li>
</ul>
<p>Também o processo de carregamento e o suporte a diferentes ORMs receberam uma boa atenção com o lançamento do <a href="http://github.com/plataformatec/devise">Devise</a> 0.7.</p>
<p>Para a versão 0.8 do <a href="http://github.com/plataformatec/devise">Devise</a> melhoramos os testes para o <a href="http://mongomapper.com/">MongoMapper</a> e fizemos uma grande revisão no código. Algum esforço também foi feito para ter o <a href="http://github.com/plataformatec/devise">Devise</a> rodando com a última versão do <a href="http://github.com/hassox/warden">Warden</a> e as novas features, tais como os serializers.  Outro módulo base foi extraído do Confirmable:</p>
<ul>
<li><strong>Activatable</strong>: permite configurar métodos adicionais para ativação de um modelo.</li>
</ul>
<p>Com muito feedback vindo da comunidade, fizemos merge de uma nova funcionalidade bacana:</p>
<ul>
<li><strong>Lockable</strong>: bloqueia contas com base no número de tentativas de login inválidas.</li>
</ul>
<p>Seguindo o mesmo padrão do Rails <a href="http://github.com/rails/rails/commit/fa575973">neste commit</a> alteramos as mensagens flash para <code>:notice</code> e <code>:alert</code>, e lançamos o <a href="http://github.com/plataformatec/devise">Devise</a> 0.9. Passo a passo a versão 1.0 estava chegando.</p>
<h3>O que há de novo</h3>
<p>O <a href="http://github.com/plataformatec/devise">Devise</a> 1.0 traz uma grande variedade de funcionalidades legais. A comunidade parece estar realmente apreciando o <a href="http://github.com/plataformatec/devise">Devise</a>, e recebemos outra grande contribuição:</p>
<ul>
<li><strong>Token Authenticatable</strong>: valida a autenticidade de um usuário atráves do login com um token de autenticação (também conhecido como &#8220;token de acesso único&#8221;).</li>
</ul>
<p>Além disso, criamos as duas funcionalidades mais pedidas para o <a href="http://github.com/plataformatec/devise">Devise</a>:</p>
<ul>
<li><strong>Registerable</strong>: controla o registro de usuários (sign up), e também edição/atualização das informações do usuário e cancelamento de conta.</li>
<li><strong>HTTP Authenticatable</strong>: autenticação http basic.</li>
</ul>
<p>Também adicionamos a possibilidade de usar o Migratable ao editar uma tabela, usando <code>change_table</code>, dentre outras correções.</p>
<h3>O que vem agora</h3>
<p>Estamos preparando um novo release do <a href="http://github.com/plataformatec/devise">Devise</a> totalmente compatível com o Rails 3. Isso significa que a partir de agora o <a href="http://github.com/plataformatec/devise">Devise</a> está fechado para desenvolvimento de novas funcionalidades no Rails 2.x. Vamos manter um branch da versão 1.0 no github para correção de bugs mantendo tudo funcionando.</p>
<h3>Para terminar</h3>
<p>Gostaríamos de dizer muito obrigado a todos que nos ajudaram a chegar a versão 1.0 e a quem está utilizando o <a href="http://github.com/plataformatec/devise">Devise</a>, testando, criando issues e nos dando todo este feedback.</p>
<p>Também, para aqueles que estavam no <a href="http://www.railssummit.com.br">Rails Summit</a> do ano passado, nós propusemos algo: alcançar o maior número de seguidores no github tão rápido quanto possível! Quando apresentamos o <a href="http://github.com/plataformatec/devise">Devise</a>, haviam 7 seguidores, e se estou correto nós eramos 4 deles. No momento da redação deste post nós temos 762 seguidores. Yeah! Acho que posso assumir o risco e dizer que nós conseguimos. Obrigado!</p>
<p>Vamos comemorar o <a href="http://github.com/plataformatec/devise">Devise</a> 1.0, e aguardar ansiosos para ver o <a href="http://github.com/plataformatec/devise">Devise</a> com o Rails 3. Aproveite!</p>
<p>Feliz aniversário <a href="http://github.com/plataformatec/devise">Devise</a>! </p>
<img src="http://feeds.feedburner.com/~r/PlataformaBlog_portugues/~4/oO4v0t8GWoI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.plataformatec.com.br/2010/02/feliz-aniversario-devise/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.plataformatec.com.br/2010/02/feliz-aniversario-devise/</feedburner:origLink></item>
	</channel>
</rss>
