<?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>ArthurGeek.net &#187; edge</title>
	<atom:link href="http://www.arthurgeek.net/tag/edge/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.arthurgeek.net</link>
	<description>Rails, Mac... e Rock'n Roll!</description>
	<lastBuildDate>Sat, 20 Dec 2008 23:25:15 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Edge migrations mais sexy</title>
		<link>http://www.arthurgeek.net/edge-migrations-mais-sexy/</link>
		<comments>http://www.arthurgeek.net/edge-migrations-mais-sexy/#comments</comments>
		<pubDate>Thu, 04 Oct 2007 13:51:00 +0000</pubDate>
		<dc:creator>ArthurGeek</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[edge]]></category>
		<category><![CDATA[migrations]]></category>
		<category><![CDATA[patch]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://www.arthurgeek.net/2007/10/19/edge-migrations-mais-sexy</guid>
		<description><![CDATA[Um plugin que eu costumava usar muito era o Sexy Migrations. Era, pois uma sintaxe inspirada nele foi adicionado ao Rails Edge.
Agora que estou usando o Edge em alguns projetos meus, sinto falta do foreign_key (ou simplesmente fkey) que usava no Sexy Migrations e não está presente no Edge. Por isso, criei um patch que [...]]]></description>
			<content:encoded><![CDATA[<p>Um plugin que eu costumava usar muito era o <a href="http://errtheblog.com/post/2381">Sexy Migrations</a>. Era, pois uma sintaxe inspirada nele foi <a href="http://dev.rubyonrails.org/changeset/6667">adicionado ao Rails Edge</a>.</p>
<p>Agora que estou usando o Edge em alguns projetos meus, sinto falta do foreign_key (ou simplesmente fkey) que usava no Sexy Migrations e não está presente no Edge. Por isso, <a href="http://dev.rubyonrails.org/ticket/9775">criei um patch</a> que adiciona o suporte à foreign_key na sintaxe das migrations.</p>
<p>Então, onde você escrevia (com o Edge):</p>
<pre class="rails"><code>create_table <span class="re3">:user</span> <span class="kw1">do</span> |t|
    t.<span class="me1">integer</span> <span class="re3">:country_id</span>
    <span class="br0">[</span>....<span class="br0">]</span>
<span class="kw1">end</span></code></pre>
<p>Poderá escrever assim:</p>
<pre class="rails"><code>create_table <span class="re3">:user</span> <span class="kw1">do</span> |t|
    t.<span class="me1">foreign_key</span> <span class="re3">:country</span>
    <span class="br0">[</span>....<span class="br0">]</span>
<span class="kw1">end</span></code></pre>
<p>É uma mudança sutil, porém, útil.</p>
<p>Para ele fazer parte do Rails 2.0 é preciso que pelo menos 3 pessoas testem-no e comentem com um simples +1, de acordo com <a href="http://weblog.rubyonrails.org/2007/9/15/how-to-get-a-patch-into-rails">as novas regras</a> para que um patch seja aceito no Rails.</p>
<p>Se você gostou da idéia, dê uma passadinha lá no <a href="http://dev.rubyonrails.org/ticket/9775">ticket</a>, aplique o patch e vote. :)</p>
<p><strong>Update</strong>: O Patch <a href="http://dev.rubyonrails.org/changeset/7973">agora faz parte do Rails 2.0</a>. Com algumas modificações e novas funcionalidades.</p>
<p>Para começar, “t.foreign_key” virou “t.references” com alias para “t.belongs_to&#8221;. E foi adicionado também uma opção &#8220;: polymorphic =&gt; true” que cria a coluna com _type no final.</p>
<p>Finalizando, se antes você escrevia assim (com o Rails Edge):</p>
<pre class="rails"><code>create_table <span class="re3">:taggings</span> <span class="kw1">do</span> |t|
  t.<span class="me1">integer</span> <span class="re3">:tag_id</span>, <span class="re3">:tagger_id</span>, <span class="re3">:taggable_id</span>
  t.<span class="me1">string</span>  <span class="re3">:tagger_type</span>
  t.<span class="me1">string</span>  <span class="re3">:taggable_type</span>, <span class="re3">:default</span> =&gt; <span class="st0">'Photo'</span>
<span class="kw1">end</span></code></pre>
<p>Agora passa a escrever assim:</p>
<pre class="rails"><code>create_table <span class="re3">:taggings</span> <span class="kw1">do</span> |t|
  t.<span class="me1">references</span> <span class="re3">:tag</span>
  t.<span class="me1">references</span> <span class="re3">:tagger</span>, <span class="re3">:polymorphic</span> =&gt; <span class="kw2">true</span>
  t.<span class="me1">references</span> <span class="re3">:taggable</span>, <span class="re3">:polymorphic</span> =&gt; <span class="br0">{</span> <span class="re3">:default</span> =&gt; <span class="st0">'Photo'</span> <span class="br0">}</span>
<span class="kw1">end</span></code></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.arthurgeek.net/edge-migrations-mais-sexy/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Edge Rails</title>
		<link>http://www.arthurgeek.net/edge-rails/</link>
		<comments>http://www.arthurgeek.net/edge-rails/#comments</comments>
		<pubDate>Wed, 26 Sep 2007 14:26:00 +0000</pubDate>
		<dc:creator>ArthurGeek</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[edge]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://www.arthurgeek.net/2007/09/26/edge-rails</guid>
		<description><![CDATA[Você tem acompanhado as mudanças do Edge Rails, e quer testá-las naquele projeto que está começando?
Fácil, é só digitar no terminal:
rails myapp
cd myapp
rake rails:freeze:edge
# e se você for sortudo e tiver o textmate :)
mate myapp
Certo? Não, errado! Infelizmente, estes comandos não atualizam sua app para o Edge (é engraçado, mas estes comandos funcionam em algumas [...]]]></description>
			<content:encoded><![CDATA[<p>Você tem <a href="http://dev.rubyonrails.org/timeline">acompanhado</a> as mudanças do Edge Rails, e quer testá-las naquele projeto que está começando?</p>
<p>Fácil, é só digitar no terminal:</p>
<pre><code>rails myapp
cd myapp
rake rails:freeze:edge
# e se você for sortudo e tiver o textmate :)
mate myapp</code></pre>
<p>Certo? Não, errado! Infelizmente, estes comandos não atualizam sua app para o Edge (é engraçado, mas estes comandos funcionam em algumas máquinas e na grande maioria não). Como saber se você está rodando o Edge? Verifique a pasta <strong>config</strong>, tem uma pasta <strong>initializers</strong> dentro dela? Se estiver rodando o edge tem que ter. Então, o que fazer para rodar o edge rails de verdade?</p>
<h3>No Edge de verdade</h3>
<p>Você precisa usar o comando <strong>rails</strong> de dentro do edge para gerar seu novo projeto.</p>
<pre><code>cd ..
ruby myapp/vendor/rails/railties/bin/rails myapp_edgier
# e se você for sortudo e tiver o textmate :)
mate myapp_edgier</code></pre>
<p>Agora verifique a pasta <strong>config</strong>. Hmm, legal! Aproveite e dê uma olhada na nova estrutura do <strong>environment.rb</strong>. Observe também que a pasta <strong>components</strong> não é mais criada.</p>
<p>Ok, agora você já está rodando um projeto no Edge, e resolveu criar mais um projeto. Vamos melhorar um pouco o processo. De volta ao terminal:</p>
<pre><code>cd ~
svn co http://svn.rubyonrails.org/rails/trunk rails_edge
ruby ~/rails_edge/railties/bin/rails my_second_edgier_app
cd my_second_edgier_app/
# Você ainda precisa ter o edge rails dentro de sua aplicação
ln -s ~/rails_edge/ vendor/rails
# e se você for sortudo e tiver o textmate :)
mate .</code></pre>
<p>Dessa maneira, você pode manter várias aplicações rodando o Edge, e atualizar o código em um local apenas. Quando você notar alguma mudança no Edge, rode:</p>
<pre><code>cd ~/rails_edge
svn up</code></pre>
<h3>Um pouco de shell script</h3>
<p>Vamos criar uma função em shell script para gerar novas aplicações já usando o Edge</p>
<pre><code>mate ~/.bash_profile</code></pre>
<p>Coloque a seguinte função no seu <strong>profile</strong>:</p>
<pre class="bash"><code><span class="kw1">function</span> edgie<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
  ruby ~/rails_edge/railties/bin/rails $<span class="nu0">1</span> &amp;&amp; <span class="kw3">cd</span> $<span class="nu0">1</span> &amp;&amp; ln -s ~/rails/trunk vendor/rails &amp;&amp; mate .
<span class="br0">&#125;</span></code></pre>
<p>Atualizando nosso profile:</p>
<pre><code>source ~/.bash_profile</code></pre>
<p>Pronto! Agora você pode rodar:</p>
<pre><code>edgie my_edge_app</code></pre>
<p>Boa diversão com o Edge Rails! :)</p>
<p>Fonte: <a href="http://railstips.org/2007/5/31/even-edgier-than-edge-rails">RailsTips: Even Edgier Than Edge Rails</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.arthurgeek.net/edge-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
