<?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>TommyBlue.it &#187; rails</title>
	<atom:link href="http://www.tommyblue.it/tag/rails/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tommyblue.it</link>
	<description>Bombardare per la pace è un po' come trombare per la verginità...</description>
	<lastBuildDate>Tue, 24 Jan 2012 09:34:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Versionare directory vuote con GIT</title>
		<link>http://www.tommyblue.it/2010/11/26/versionare-directory-vuote-con-git/</link>
		<comments>http://www.tommyblue.it/2010/11/26/versionare-directory-vuote-con-git/#comments</comments>
		<pubDate>Fri, 26 Nov 2010 19:27:26 +0000</pubDate>
		<dc:creator>TommyBlue</dc:creator>
				<category><![CDATA[How-To]]></category>
		<category><![CDATA[Informatica]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://www.tommyblue.it/?p=1051</guid>
		<description><![CDATA[Tip della sera, che mi è utile quando devo versionare progetti Rails con GIT che, come noto, non tiene traccia delle directory vuote. Per farlo è necessario piazzare un placeholder: for i in `find . -type d -empty`; do touch $i/.gitignore; done]]></description>
			<content:encoded><![CDATA[<p>Tip della sera, che mi è utile quando devo versionare progetti Rails con GIT che, come noto, non tiene traccia delle directory vuote. Per farlo è necessario piazzare un placeholder:</p>
<pre>for i in `find . -type d -empty`; do touch $i/.gitignore; done</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.tommyblue.it/2010/11/26/versionare-directory-vuote-con-git/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Utilizzare più versioni di Ruby con RVM</title>
		<link>http://www.tommyblue.it/2010/05/07/utilizzare-piu-versioni-di-ruby-con-rvm/</link>
		<comments>http://www.tommyblue.it/2010/05/07/utilizzare-piu-versioni-di-ruby-con-rvm/#comments</comments>
		<pubDate>Fri, 07 May 2010 14:04:43 +0000</pubDate>
		<dc:creator>TommyBlue</dc:creator>
				<category><![CDATA[How-To]]></category>
		<category><![CDATA[Informatica]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[Rails 3]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[Ruby On Rails]]></category>
		<category><![CDATA[RubyOnRails]]></category>
		<category><![CDATA[RVM]]></category>

		<guid isPermaLink="false">http://www.tommyblue.it/?p=922</guid>
		<description><![CDATA[Con Ruby Version Manager è possibile avere più versioni (o addirittura patchlevel) di Ruby installate ed effettuare velocemente lo switch tra una e l&#8217;altra. Supponendo che abbiate già installato Rubygems, installare RVM è praticamente immediato: ~# gem install rvm ~# rvm-install A questo punto si può installare una qualsiasi versione di Ruby con: ~# rvm [...]]]></description>
			<content:encoded><![CDATA[<p>Con Ruby Version Manager è possibile avere più versioni (o addirittura <em>patchlevel</em>) di Ruby installate ed effettuare velocemente lo switch tra una e l&#8217;altra.</p>
<p>Supponendo che abbiate già installato Rubygems, installare RVM è praticamente immediato:</p>
<pre>~# gem install rvm
~# rvm-install</pre>
<p>A questo punto si può installare una qualsiasi versione di Ruby con:</p>
<pre>~# rvm install 1.9.2-head</pre>
<p>e switchare tra le versioni con:</p>
<pre>~# rvm use 1.9.2-head
~# ruby -v
ruby 1.9.2dev (2010-05-07 trunk 27656) [x86_64-darwin10.3.0]
~# rvm use default
~# ruby -v
ruby 1.8.7 (2009-06-08 patchlevel 173) [universal-darwin10.0]</pre>
<p>Attenzione che ogni nuova installazione ha le sue gemme, quindi sarà necessario installare quelle richieste, nel mio caso, volendo utilizzare Ruby 1.9.2 per provare Rails 3:</p>
<pre>~# rvm use 1.9.2-head
~# gem install tzinfo builder memcache-client rack rack-test rack-mount erubis mail text-format thor bundler i18n
~# gem install rails --pre</pre>
<p><strong>Leggi anche:</strong> <a href="http://www.tommyblue.it/2010/09/22/le-magie-di-rvm/"><em>Le magie di RVM</em></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tommyblue.it/2010/05/07/utilizzare-piu-versioni-di-ruby-con-rvm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Come localizzare un&#8217;applicazione Rails</title>
		<link>http://www.tommyblue.it/2009/08/28/come-localizzare-unapplicazione-rails/</link>
		<comments>http://www.tommyblue.it/2009/08/28/come-localizzare-unapplicazione-rails/#comments</comments>
		<pubDate>Fri, 28 Aug 2009 16:39:44 +0000</pubDate>
		<dc:creator>TommyBlue</dc:creator>
				<category><![CDATA[How-To]]></category>
		<category><![CDATA[Informatica]]></category>
		<category><![CDATA[linkedin]]></category>
		<category><![CDATA[localization]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[RubyOnRails]]></category>

		<guid isPermaLink="false">http://www.tommyblue.it/?p=552</guid>
		<description><![CDATA[Un&#8217;applicazione web che si rispetti deve potersi adattare alla lingua di colui che ne usufruisce. Dalla versione 2.2 di Ruby On Rails rendere un&#8217;applicazione multilingua è diventato estremamente semplice grazie al framework I18n. In pratica tutte le stringhe che in qualche modo verranno visualizzate nelle viste sono sostituite da appositi placeholder che Rails, a runtime, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.tommyblue.it/wp-content/uploads/2009/08/i18n-flags.jpg" rel="lightbox[552]"><img class="alignleft size-full wp-image-553" title="i18n-flags" src="http://www.tommyblue.it/wp-content/uploads/2009/08/i18n-flags.jpg" alt="i18n-flags" width="200" height="121" /></a>Un&#8217;applicazione web che si rispetti deve potersi adattare alla lingua di colui che ne usufruisce. Dalla versione 2.2 di Ruby On Rails rendere un&#8217;applicazione multilingua è diventato estremamente semplice grazie al <a href="http://guides.rubyonrails.org/i18n.html" target="_blank">framework I18n</a>. In pratica tutte le stringhe che in qualche modo verranno visualizzate nelle viste sono sostituite da appositi placeholder che Rails, a runtime, carica in maniera differente a seconda della localizzazione dell&#8217;utente.</p>
<p>Il primo passo è definire la localizzazione di default in <em>conf/environment.rb</em>:</p>
<pre>config.i18n.default_locale = :it</pre>
<p>Le stringhe di localizzazione vengono caricate da appositi file yaml nella cartella <em>conf/locales/</em>, quindi, utilizzando la lingua italiana, dobbiamo creare il file <em>conf/locales/it.yml</em> in questo modo:</p>
<pre>it:
    hello_world: "Ciao Mondo!"</pre>
<p>e analogamente il file con le traduzioni per ogni lingua che vogliamo.</p>
<p>Adesso le stringhe che devono essere localizzate sono fondamentalmente di due tipi:</p>
<ol>
<li>Le stringhe nelle viste</li>
<li>Le stringhe che vengono visualizzate nelle viste ma sono generate al di fuori di esse, ad esempio i <em>flash</em> nei controller<em><br />
</em></li>
</ol>
<p>Ecco come localizzare le stringhe nelle viste:</p>
<pre>&lt;%=t "hello_world" %&gt;</pre>
<p>Ovvero si utilizza un nuovo tag di stampa il cui contenuto è il placeholder che dovrà essere sostituito. Se invece ci troviamo in una situazione del genere:</p>
<pre>&lt;%= link_to "Hello, World!", "/somewhere" %&gt;</pre>
<p>la soluzione è quella di ricorrere direttamente alla classe <strong>I18n</strong>:</p>
<pre>&lt;%= link_to I18n.t('hello_world'), "/somewhere" %&gt;</pre>
<p>In questo stesso modo si possono localizzare tutte le stringhe al di fuori delle viste, ovvero il caso 2 nella lista precedente:</p>
<pre>class ExampleController &lt; ApplicationController
  def index
    flash[:notice] = I18n.t('hello_world')
  end
end</pre>
<p>A questo punto manca solo un modo per modificare la localizzazione al volo.<br />
La variabile che contiene la localizzazione attiva è <strong>I18n.locale</strong> ed è quindi necessario modificarla quando si vuole cambiare localizzazione.<br />
Un esempio per farlo è utilizzare un apposito metodo in <strong>app/controllers/application_controller.rb</strong>:</p>
<pre>class ApplicationController &lt; ActionController::Base
  before_filter :set_locale
  private
    def set_locale
      I18n.locale = params[:locale] unless params[:locale].nil?
    end
end</pre>
<p>In questo modo basta un qualsiasi link col parametro <strong>locale</strong> (ad esempio <em>/example/index?locale=en</em>) per modificare la lingua.</p>
<p>Un difetto di questa procedura è che ogni link deve contenere il parametro <strong>locale</strong>, altrimenti viene caricata la lingua di default. Una soluzione può essere quella di mettere in sessione l&#8217;ultima lingua indicata e quindi caricare la lingua dalla sessione ad ogni pagina. Il metodo può inoltre essere modificato per verificare che la localizzazione effettivamente esista.</p>
<pre>def set_locale
  # Set session[:locale] if params[:locale] exists and is an available localization
  unless params[:locale].nil?
    session[:locale] = params[:locale] if I18n.available_locales.include? params[:locale].to_sym
  end
  # Set the locale if previously set in the session, otherwise use the default one
  I18n.locale = session[:locale] unless session[:locale].nil?
end</pre>
<p>Una bottoniera carina per gestire il cambio di lingua può essere fatta inserendo nel layout questo codice:</p>
<pre>&lt;div id="flags"&gt;
   &lt;a href="?locale=it"&lt;%= " class=\"active\"" if I18n.locale.to_s == "it"%&gt;&gt;&lt;img src="/images/flags/it_IT.gif" alt="Italiano" title="Italiano"&gt;&lt;/a&gt;
   &lt;a href="?locale=en"&lt;%= " class=\"active\"" if I18n.locale.to_s == "en"%&gt;&gt;&lt;img src="/images/flags/en_EN.gif" alt="English" title="English"&gt;&lt;/a&gt;
 &lt;/div&gt;</pre>
<p>nel foglio di stile questo codice:</p>
<pre>div#flags {
 margin: 10px;
}
div#flags a img {
 padding: 4px;
}
div#flags a.active img{
 background-image: url('/images/active_flag.png');
 background-repeat: no-repeat;
 background-position: center center;
}</pre>
<p>ed utilizzando queste immagini: <img class="size-full wp-image-555 alignnone" title="active_flag" src="http://www.tommyblue.it/wp-content/uploads/2009/08/active_flag.png" alt="active_flag" width="40" height="30" /><img class="alignnone size-full wp-image-556" title="en_EN" src="http://www.tommyblue.it/wp-content/uploads/2009/08/en_EN.gif" alt="en_EN" width="24" height="24" /><img class="alignnone size-full wp-image-557" title="it_IT" src="http://www.tommyblue.it/wp-content/uploads/2009/08/it_IT.gif" alt="it_IT" width="24" height="24" /></p>
<p>Il risultato è questo, con la lingua attiva contornata da un alone celeste:</p>
<p><img class="alignnone size-full wp-image-558" title="rails_localization_flags" src="http://www.tommyblue.it/wp-content/uploads/2009/08/rails_localization_flags.png" alt="rails_localization_flags" width="79" height="49" /></p>
<p>È sufficiente cliccare su una bandiera per attivare una diversa lingua. Su <a href="http://www.deviantart.com/#order=9&amp;q=flags+pack" target="_blank">Deviant Art</a> trovate decine di <em>flags pack</em>, sbizzarritevi :)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tommyblue.it/2009/08/28/come-localizzare-unapplicazione-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>No such file or directory &#8211; /nonexistent</title>
		<link>http://www.tommyblue.it/2009/06/10/no-such-file-or-directory-nonexistent/</link>
		<comments>http://www.tommyblue.it/2009/06/10/no-such-file-or-directory-nonexistent/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 09:13:47 +0000</pubDate>
		<dc:creator>TommyBlue</dc:creator>
				<category><![CDATA[Informatica]]></category>
		<category><![CDATA[Memoria usiliaria]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[RubyOnRails]]></category>

		<guid isPermaLink="false">http://www.tommyblue.it/?p=502</guid>
		<description><![CDATA[Anche questo chissà quante volte mi è successo e continuo a non ricordarmelo! :&#124; Quindi: se Ruby On Rails subito dopo il deploy con Phusion Passenger (aka mod_rails) vi saluta con un bel Error message: No such file or directory - /nonexistent Exception class: Errno::ENOENT basta impostare www-data come proprietario di config/environment.rb: chown www-data ./config/environment.rb [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.tommyblue.it/wp-content/uploads/2009/06/passenger_error.gif" rel="lightbox[502]"><img class="alignleft size-full wp-image-503" title="Passenger error" src="http://www.tommyblue.it/wp-content/uploads/2009/06/passenger_error.gif" alt="Passenger error" width="238" height="284" /></a>Anche questo chissà quante volte mi è successo e continuo a non ricordarmelo! :|</p>
<p>Quindi: se <a href="http://rubyonrails.org/" target="_blank">Ruby On Rails</a> subito dopo il deploy con <a href="http://www.modrails.com/" target="_blank">Phusion Passenger (aka mod_rails)</a> vi saluta con un bel</p>
<pre>Error message:
    No such file or directory - /nonexistent
Exception class:
    Errno::ENOENT</pre>
<p>basta impostare <strong>www-data</strong> come proprietario di <strong>config/environment.rb</strong>:</p>
<pre>chown www-data ./config/environment.rb</pre>
<p><strong>ps. Se mancano delle &#8216;r&#8217; o delle &#8216;i&#8217; è colpa di questa tastiera del cacchio, non comprate mai Kraun!!!!</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tommyblue.it/2009/06/10/no-such-file-or-directory-nonexistent/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Evidenziazione della sintassi con gedit</title>
		<link>http://www.tommyblue.it/2008/05/16/evidenziazione-della-sintassi-con-gedit/</link>
		<comments>http://www.tommyblue.it/2008/05/16/evidenziazione-della-sintassi-con-gedit/#comments</comments>
		<pubDate>Fri, 16 May 2008 14:06:52 +0000</pubDate>
		<dc:creator>TommyBlue</dc:creator>
				<category><![CDATA[Informatica]]></category>
		<category><![CDATA[Software Libero]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[gedit]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[syntax]]></category>

		<guid isPermaLink="false">http://www.tommyblue.it/?p=149</guid>
		<description><![CDATA[Capita a volte che un file abbia estensione particolare che impedisce a gedit di evidenziare la sintassi in modo corretto. Un tipico esempio sono i files .erb di RubyOnRails che dovrebbero essere evidenziati con la sintassi rhtml, presente in gnome ma non associata a questa estensione. Per aggiungere una estensione a una sintassi cercare nella [...]]]></description>
			<content:encoded><![CDATA[<p>Capita a volte che un file abbia estensione particolare che impedisce a gedit di evidenziare la sintassi in modo corretto. Un tipico esempio sono i files <strong>.erb</strong> di <a href="http://www.rubyonrails.org">RubyOnRails</a> che dovrebbero essere evidenziati con la sintassi rhtml, presente in gnome ma non associata a questa estensione.</p>
<p>Per aggiungere una estensione a una sintassi cercare nella cartella <strong>/usr/share/gtksourceview-2.0/language-specs/</strong> il file <strong>.lang</strong> a cui associare l&#8217;estensione.</p>
<p>Quindi, se vogliamo aggiungere l&#8217;estensione <strong>.erb</strong> alle visualizzazioni <strong>rhtml</strong> il file da modificare e&#8217; <strong>/usr/share/gtksourceview-2.0/language-specs/rhtml.lang</strong> nel seguente modo:</p>
<div class="codecolorer-container text railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&amp;lt;property name=&quot;globs&quot;&amp;gt;*.rhtml;*.erb&amp;lt;/property&amp;gt;</div></div>
]]></content:encoded>
			<wfw:commentRss>http://www.tommyblue.it/2008/05/16/evidenziazione-della-sintassi-con-gedit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Passenger AKA mod_rails, ovvero rails su apache</title>
		<link>http://www.tommyblue.it/2008/04/20/passenger-aka-mod_rails-ovvero-rails-su-apache/</link>
		<comments>http://www.tommyblue.it/2008/04/20/passenger-aka-mod_rails-ovvero-rails-su-apache/#comments</comments>
		<pubDate>Sun, 20 Apr 2008 21:18:25 +0000</pubDate>
		<dc:creator>TommyBlue</dc:creator>
				<category><![CDATA[Informatica]]></category>
		<category><![CDATA[Software Libero]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://www.tommyblue.it/?p=143</guid>
		<description><![CDATA[Finalmente sta diventando semplice usare Ruby On Rails con Apache! Non che Mongrel non funzioni, ma non e&#8217; proprio, diciamo, user friendly&#8230; Il software in questione si chiama Passenger, ovvero mod_rails. I passaggi per l&#8217;installazione sono solo due: ~# gem install passenger ~# passenger-install-apache2-module In coda al secondo comando verranno mostrate le indicazioni per concludere [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.tommyblue.it/wp-content/uploads/2008/04/site_body_eyecatcher_bg.png" alt="" title="site_body_eyecatcher_bg" class="alignleft size-full wp-image-144" />Finalmente sta diventando semplice usare Ruby On Rails con Apache! Non che Mongrel non funzioni, ma non e&#8217; proprio, diciamo, <em>user friendly</em>&#8230;<br />
Il software in questione si chiama <a href="http://www.modrails.com/"><strong>Passenger</strong></a>, ovvero <strong>mod_rails</strong>.</p>
<p>I passaggi per l&#8217;installazione sono solo due:</p>
<div class="codecolorer-container text railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">~# gem install passenger<br />
~# passenger-install-apache2-module</div></div>
<p>In coda al secondo comando verranno mostrate le indicazioni per concludere l&#8217;installazione, a quel punto basta fare il reload di Apache et voila&#8217;, <strong>mod_rails</strong>!</p>
<p>P.S. In coda aggiungo che, curiosamente, qualcuno si e&#8217; dimenticato di pagare per il dominio <strong>rubyonrails.org</strong> (mi perdonerete se non aggiungo il link) tanto che adesso al suo posto si trova uno dei soliti siti spam del menga&#8230;</p>
<p><strong>AGGIORNAMENTO</strong><br />
Inserito Passenger proprio ieri in <strong>Gentoo ~x86</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tommyblue.it/2008/04/20/passenger-aka-mod_rails-ovvero-rails-su-apache/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

