<?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>WebLab on Rails</title>
	<atom:link href="http://www.rubyonrails.ma/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.rubyonrails.ma</link>
	<description>Ruby on Rails Notes</description>
	<lastBuildDate>Wed, 16 Feb 2011 00:53:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.5</generator>
<meta xmlns="http://www.w3.org/1999/xhtml" name="robots" content="noindex,follow" />
		<item>
		<title>Convertir un Array en Hash en Ruby (pour le select de formtastic)</title>
		<link>http://www.rubyonrails.ma/2011/02/convertir-un-array-en-hash-en-ruby-pour-le-select-de-formtastic/</link>
		<comments>http://www.rubyonrails.ma/2011/02/convertir-un-array-en-hash-en-ruby-pour-le-select-de-formtastic/#comments</comments>
		<pubDate>Sun, 13 Feb 2011 19:25:11 +0000</pubDate>
		<dc:creator>Wahid Lahlou</dc:creator>
				<category><![CDATA[Formtastic]]></category>
		<category><![CDATA[Snippets]]></category>

		<guid isPermaLink="false">http://www.rubyonrails.ma/?p=125</guid>
		<description><![CDATA[Voici un petit snippet en Ruby permettant de transformer un Array sous la forme : COUNTRIES = [ &#34;Kingdom of Morocco&#34;, &#34;People's Democratic Republic of Algeria&#34;, &#34;Great Socialist People's Libyan Arab Jamahiriya&#34;, &#34;Kingdom of Saudi Arabia&#34;, &#34;Hashemite Kingdom of Jordan&#34;, 'Syrian Arab Republic', &#34;United Arab Emirates&#34;, &#34;Republic of Yemen&#34;, &#34;Islamic Republic of Iran&#34; ] En [...]]]></description>
			<content:encoded><![CDATA[<p>Voici un petit snippet en Ruby permettant de transformer un Array sous la forme :</p>
<pre class="brush: ruby; title: ;">
  COUNTRIES = [
    &quot;Kingdom of Morocco&quot;,
    &quot;People's Democratic Republic of Algeria&quot;,
    &quot;Great Socialist People's Libyan Arab Jamahiriya&quot;,
    &quot;Kingdom of Saudi Arabia&quot;,
    &quot;Hashemite Kingdom of Jordan&quot;,
    'Syrian Arab Republic',
    &quot;United Arab Emirates&quot;,
    &quot;Republic of Yemen&quot;,
    &quot;Islamic Republic of Iran&quot;
  ]
</pre>
<p>En Hash sous la forme :</p>
<pre class="brush: ruby; title: ;">
{
 &quot;Kingdom of Morocco&quot;=&gt;0,
 &quot;People's Democratic Republic of Algeria&quot;=&gt;1,
 &quot;Great Socialist People's Libyan Arab Jamahiriya&quot;=&gt;2,
 &quot;Kingdom of Saudi Arabia&quot;=&gt;3,
 &quot;Hashemite Kingdom of Jordan&quot;=&gt;4,
 &quot;Syrian Arab Republic&quot;=&gt;5,
 &quot;United Arab Emirates&quot;=&gt;6,
 &quot;Republic of Yemen&quot;=&gt;7,
 &quot;Islamic Republic of Iran&quot;=&gt;8
}
</pre>
<p>Voici donc le Snippet</p>
<pre class="brush: ruby; title: ;">
  def self.countries_with_ids
    Hash[*COUNTRIES.collect { |c|
        [c, COUNTRIES.index(c)]
    }.flatten]
  end
</pre>
<p>Particulièrement efficace avec les input select de formtastic</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rubyonrails.ma/2011/02/convertir-un-array-en-hash-en-ruby-pour-le-select-de-formtastic/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Créer un contrôleur pour les pages statiques dans Rails</title>
		<link>http://www.rubyonrails.ma/2011/02/creer-un-controleur-pour-les-pages-statiques-dans-rails/</link>
		<comments>http://www.rubyonrails.ma/2011/02/creer-un-controleur-pour-les-pages-statiques-dans-rails/#comments</comments>
		<pubDate>Fri, 11 Feb 2011 23:19:23 +0000</pubDate>
		<dc:creator>Wahid Lahlou</dc:creator>
				<category><![CDATA[Controller]]></category>
		<category><![CDATA[Snippets]]></category>

		<guid isPermaLink="false">http://www.rubyonrails.ma/?p=115</guid>
		<description><![CDATA[Catcher toutes les requêtes avec un Glob dans routes.rb (dernière route), avec name le nom de la page pouvant contenir un chemin du type &#8216;services/home&#8217; get &#34;/*name&#34;, :to =&#62; &#34;pages#show&#34; Créer un controleur PageController avec une action show class PagesController &#60; ApplicationController def show ext = &#34;.html.haml&#34; dirname = File.dirname(params[:name]) filename = File.basename(params[:name] + ext) [...]]]></description>
			<content:encoded><![CDATA[<ol>
<li>Catcher toutes les requêtes avec un Glob dans routes.rb (dernière route), avec name le nom de la page pouvant contenir un chemin du type &#8216;services/home&#8217;</li>
<pre class="brush: ruby; title: ;">get &quot;/*name&quot;, :to =&gt; &quot;pages#show&quot;</pre>
<li> Créer un controleur PageController avec une action show</li>
<pre class="brush: ruby; title: ;">
class PagesController &lt; ApplicationController
  def show
    ext = &quot;.html.haml&quot;
    dirname = File.dirname(params[:name])
    filename = File.basename(params[:name] + ext)
    Dir.chdir(File.join(RAILS_ROOT, &quot;app&quot;, &quot;views&quot;, &quot;pages&quot;))
    static_pages = Dir.glob(File.join(dirname, &quot;*&quot; + ext))
    raise &quot;404&quot; unless static_pages.include?(File.join(dirname, filename))
    @message = &quot;Welcome to #{params[:name]}&quot;
    render File.join(&quot;pages&quot;, dirname, filename)
  end
end
</pre>
<li>Créer une structure de pages à l&#8217;intérieur de app/views/pages/</li>
<pre class="brush: plain; title: ;">
app/
-- views/
-- -- pages/
-- -- -- home.html.haml
-- -- -- contact-us.html.haml
-- -- -- services/
-- -- -- -- warranty.hmtl.haml
-- -- -- -- advices.html.haml
-- -- -- -- subdir/
-- -- -- -- -- last_file
</pre>
<li>Accéder aux pages en tapant :</li>
</ol>
<ul>
<li>rails_app/home</li>
<li>rails_app/contact-us</li>
<li>rails_app/services/warranty</li>
<li>rails_app/services/advices</li>
<li>rails_app/services/subdir/last_file</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.rubyonrails.ma/2011/02/creer-un-controleur-pour-les-pages-statiques-dans-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installer MySQL 5 et le gem mysql ou mysql2 sur Snow Leopard</title>
		<link>http://www.rubyonrails.ma/2011/02/installer-mysql-5-et-le-gem-mysql2-sur-snow-leopard/</link>
		<comments>http://www.rubyonrails.ma/2011/02/installer-mysql-5-et-le-gem-mysql2-sur-snow-leopard/#comments</comments>
		<pubDate>Tue, 08 Feb 2011 23:02:19 +0000</pubDate>
		<dc:creator>Wahid Lahlou</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Serveurs]]></category>

		<guid isPermaLink="false">http://www.rubyonrails.ma/?p=106</guid>
		<description><![CDATA[Toute la procédure est bien expliqué ici : http://geryit.com/blog/2011/01/installing-mysql-with-rails-on-mac-os-x-snow-leopard/ A noter : La version de MySQL Server la mieux compatible avec le gem mysql est la 5.1 Déinstaller le gem mysql ou mysql2 avant d&#8217;installer un nouveau Avec RVM, la procédure est la même (enlever simplement sudo de la commande d&#8217;installation du gem mysql) Malgré [...]]]></description>
			<content:encoded><![CDATA[<p>Toute la procédure est bien expliqué ici : <a href="http://geryit.com/blog/2011/01/installing-mysql-with-rails-on-mac-os-x-snow-leopard/" target="_blank">http://geryit.com/blog/2011/01/installing-mysql-with-rails-on-mac-os-x-snow-leopard/</a></p>
<p>A noter :</p>
<ul>
<li>La version de MySQL Server la mieux compatible avec le gem mysql est la 5.1</li>
<li>Déinstaller le gem mysql ou mysql2 avant d&#8217;installer un nouveau</li>
<li>Avec RVM, la procédure est la même (enlever simplement sudo de la commande d&#8217;installation du gem mysql)</li>
<li>Malgré que Snow Leopard est en 32 bit (d&#8217;après uname -a), il faut installer la version x86_64 de MySQL 5.1 et utiliser -arch x86_64 :</li>
</ul>
<pre>sudo env ARCHFLAGS="-arch x86_64" gem install --no-rdoc --no-ri mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.rubyonrails.ma/2011/02/installer-mysql-5-et-le-gem-mysql2-sur-snow-leopard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Désinstaller MySQL 5 sur Mac OS X (10.6)</title>
		<link>http://www.rubyonrails.ma/2011/02/desinstaller-mysql-sur-mac-os-x-10-6/</link>
		<comments>http://www.rubyonrails.ma/2011/02/desinstaller-mysql-sur-mac-os-x-10-6/#comments</comments>
		<pubDate>Tue, 08 Feb 2011 20:49:42 +0000</pubDate>
		<dc:creator>Wahid Lahlou</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Serveurs]]></category>

		<guid isPermaLink="false">http://www.rubyonrails.ma/?p=101</guid>
		<description><![CDATA[Voici les instructions pour désinstaller complètement une distribution de MySQL installée depuis une paquet (dmg) : sudo /usr/local/mysql/support-files/mysql.server stop sudo rm /usr/local/mysql sudo rm -rf /usr/local/mysql* sudo rm -rf /Library/StartupItems/MySQLCOM sudo rm -rf /Library/PreferencePanes/My* rm -rf ~/Library/PreferencePanes/My* sudo rm -rf /Library/Receipts/mysql* sudo rm -rf /Library/Receipts/MySQL* sudo rm -rf /var/db/receipts/com.mysql.* éditer le fichier /etc/hostconfig et retirer [...]]]></description>
			<content:encoded><![CDATA[<p>Voici les instructions pour désinstaller complètement une distribution de MySQL installée depuis une paquet (dmg) :</p>
<p><span style="font-family: monospace;">sudo /usr/local/mysql/support-files/mysql.server stop</span><br />
<span style="font-family: monospace;">sudo rm /usr/local/mysql</span><br />
<span style="font-family: monospace;">sudo rm -rf /usr/local/mysql*</span><br />
<span style="font-family: monospace;">sudo rm -rf /Library/StartupItems/MySQLCOM</span><br />
<span style="font-family: monospace;">sudo rm -rf /Library/PreferencePanes/My*</span><br />
<span style="font-family: monospace;">rm -rf ~/Library/PreferencePanes/My*</span><br />
<span style="font-family: monospace;">sudo rm -rf /Library/Receipts/mysql*<br />
</span><span style="font-family: monospace;">sudo rm -rf /Library/Receipts/MySQL*<br />
sudo rm -rf /var/db/receipts/com.mysql.*</span></p>
<p>éditer le fichier /etc/hostconfig et retirer la ligne MYSQLCOM=-YES-</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rubyonrails.ma/2011/02/desinstaller-mysql-sur-mac-os-x-10-6/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Créer une nouvelle application Rails 3</title>
		<link>http://www.rubyonrails.ma/2011/01/creer-une-nouvelle-application-rails-3/</link>
		<comments>http://www.rubyonrails.ma/2011/01/creer-une-nouvelle-application-rails-3/#comments</comments>
		<pubDate>Wed, 05 Jan 2011 14:42:51 +0000</pubDate>
		<dc:creator>Wahid Lahlou</dc:creator>
				<category><![CDATA[Documentation]]></category>
		<category><![CDATA[Tutoriels]]></category>

		<guid isPermaLink="false">http://www.rubyonrails.ma/?p=96</guid>
		<description><![CDATA[Sur Ubuntu 10.1 après avoir installé ruby, rubygems et mysql rails new my_app cd my_app Gemfile gem 'rails', '3.0.3' gem 'mysql2' gem 'mongrel' gem 'haml' gem 'devise' gem 'hpricot' gem 'ruby_parser' gem 'formtastic', '~&#62; 1.1.0' group :development, :test do gem "rspec-rails", "&#62;= 2.0.0" gem "cucumber-rails", "&#62;= 0.3.2" gem "webrat", "&#62;= 0.7.2" gem 'spork' end sudo [...]]]></description>
			<content:encoded><![CDATA[<p>Sur Ubuntu 10.1 après avoir installé ruby, rubygems et mysql</p>
<ul>
<li>rails new my_app</li>
<li>cd my_app</li>
<li>Gemfile</li>
</ul>
<pre>gem 'rails', '3.0.3'
gem 'mysql2'
gem 'mongrel'
gem 'haml'
gem 'devise'
gem 'hpricot'
gem 'ruby_parser'
gem 'formtastic', '~&gt; 1.1.0'
group :development, :test do
 gem "rspec-rails", "&gt;= 2.0.0"
 gem "cucumber-rails", "&gt;= 0.3.2"
 gem "webrat", "&gt;= 0.7.2"
 gem 'spork'
end</pre>
<ul>
<li>sudo bundle install</li>
<li>rm public/index.html</li>
<li>rails g rspec:install</li>
<li>rails g cucumber:install &#8211;rspec &#8211;spork</li>
<li>rails generate formtastic:install</li>
<li>rake db:create</li>
<li>rails s</li>
</ul>
<h3>Devise</h3>
<ul>
<li>﻿rails generate devise:install</li>
<li>rails generate devise User</li>
<li>rake db:migrate</li>
<li>rails generate devise:views -e haml</li>
<li>before_filter :authenticate_user!</li>
<li>user_signed_in?</li>
<li>current_user</li>
<li>user_session</li>
</ul>
<h3>Webrat, Cucumber, Sport et Rails 3 :</h3>
<p>Changer rails pour rack dans config.mode dans features/env.rb</p>
<pre>require 'webrat'
require 'webrat/core/matchers'
Webrat.configure do |config|
  config.mode = :rack
  config.open_error_files = false # Set to true if you want error pages to pop up in the browser
end</pre>
<p>require &#8216;webrat&#8217;  require &#8216;webrat/core/matchers&#8217;    Webrat.configure do |config|    config.mode = :rack    config.open_error_files = false # Set to true if you want error pages to pop up in the browser  end</p>
<h3>&laquo;&nbsp;Tester&nbsp;&raquo; le testing</h3>
<ul>
<li>rake db:test:clone</li>
<li>bundle exec spork cucumber</li>
<li>bundle exec cucumber</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.rubyonrails.ma/2011/01/creer-une-nouvelle-application-rails-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Documentation Rails</title>
		<link>http://www.rubyonrails.ma/2010/12/documentation-rails/</link>
		<comments>http://www.rubyonrails.ma/2010/12/documentation-rails/#comments</comments>
		<pubDate>Tue, 28 Dec 2010 12:24:25 +0000</pubDate>
		<dc:creator>Wahid Lahlou</dc:creator>
				<category><![CDATA[Documentation]]></category>

		<guid isPermaLink="false">http://www.rubyonrails.ma/?p=86</guid>
		<description><![CDATA[Liste des références à garder sous la main : http://guides.rubyonrails.org/ http://railscasts.com/ http://rubyonrails.org/documentation Agile Web Development With Rails http://railsapi.com http://cheat.errtheblog.com/ Suite à venir au fur et à mesure&#8230;]]></description>
			<content:encoded><![CDATA[<p>Liste des références à garder sous la main :</p>
<ul>
<li><a href="http://guides.rubyonrails.org/">http://guides.rubyonrails.org/</a></li>
<li><a href="http://railscasts.com/">http://railscasts.com/</a></li>
<li><a href="http://rubyonrails.org/documentation">http://rubyonrails.org/documentation</a></li>
<li><a href="http://pragprog.com/titles/rails4/agile-web-development-with-rails">Agile Web Development With Rails</a></li>
<li><a href="http://railsapi.com/">http://railsapi.com</a></li>
<li><a href="http://cheat.errtheblog.com/">http://cheat.errtheblog.com/</a></li>
</ul>
<p>Suite à venir au fur et à mesure&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rubyonrails.ma/2010/12/documentation-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Requêtes SQL ActiveRecord dans la console</title>
		<link>http://www.rubyonrails.ma/2010/07/requetes-sql-activerecord-dans-la-console/</link>
		<comments>http://www.rubyonrails.ma/2010/07/requetes-sql-activerecord-dans-la-console/#comments</comments>
		<pubDate>Mon, 26 Jul 2010 11:09:46 +0000</pubDate>
		<dc:creator>Wahid Lahlou</dc:creator>
				<category><![CDATA[Debuging]]></category>

		<guid isPermaLink="false">http://www.rubyonrails.ma/?p=79</guid>
		<description><![CDATA[Il est souvent nécessaire de jeter un oeil sur les requêtes SQL et sur leur temps d&#8217;exécution dans la console, en particulier en mode production. Voici les commandes à exécuter pour cela : ruby script/console production &#62;&#62; def log_to &#62;&#62; ActiveRecord::Base.logger = Logger.new($stdout) &#62;&#62; ActiveRecord::Base.connection_pool.clear_reloadable_connections! &#62;&#62; end =&#62; nil &#62;&#62; log_to =&#62; [] &#62;&#62; Article.all(:limit [...]]]></description>
			<content:encoded><![CDATA[<p>Il est souvent nécessaire de jeter un oeil sur les requêtes SQL et sur leur temps d&#8217;exécution dans la console, en particulier en mode production. Voici les commandes à exécuter pour cela :</p>
<pre>ruby script/console production

&gt;&gt; def log_to
&gt;&gt;   ActiveRecord::Base.logger = Logger.new($stdout)
&gt;&gt;   ActiveRecord::Base.connection_pool.clear_reloadable_connections!
&gt;&gt; end
=&gt; nil

&gt;&gt; log_to
=&gt; []

&gt;&gt; Article.all(:limit =&gt; 30, :order =&gt; 'id desc').count
=&gt; Article Load (3.0ms)   SELECT * FROM `articles` ORDER BY id desc LIMIT 30</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.rubyonrails.ma/2010/07/requetes-sql-activerecord-dans-la-console/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Formatage de texte : Ruby on Rails Helpers</title>
		<link>http://www.rubyonrails.ma/2010/07/formatage-de-texte-ruby-on-rails-helpers/</link>
		<comments>http://www.rubyonrails.ma/2010/07/formatage-de-texte-ruby-on-rails-helpers/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 14:27:20 +0000</pubDate>
		<dc:creator>Wahid Lahlou</dc:creator>
				<category><![CDATA[Snippets]]></category>

		<guid isPermaLink="false">http://www.rubyonrails.ma/?p=67</guid>
		<description><![CDATA[Voici quelques fonctions incluses dans la plateforme Rails à utiliser pour formater du texte : Module : ActionView::Helpers::TextHelper auto_link(text, *args, &#38;block) Transforme les URLs et adresses email en liens cliquables concat(string, unused_binding = nil) S&#8217;il n&#8217;est pas possible d&#8217;utiliser &#60;%= &#8216;hello&#8217; %&#62; dans une view current_cycle(name = &#171;&#160;default&#160;&#187;) Retourne le cycle courant quand cycle a [...]]]></description>
			<content:encoded><![CDATA[<p>Voici quelques fonctions incluses dans la plateforme Rails à utiliser pour formater du texte :</p>
<p>Module : <a href="http://api.rubyonrails.org/classes/ActionView/Helpers/TextHelper.html" target="_blank">ActionView::Helpers::TextHelper</a></p>
<ul>
<li><strong>auto_link(text, *args, &amp;block)</strong><br />
Transforme les URLs et adresses email en liens cliquables</li>
<li><strong>concat(string, unused_binding = nil)</strong><br />
S&#8217;il n&#8217;est pas possible d&#8217;utiliser &lt;%= &#8216;hello&#8217; %&gt; dans une view</li>
<li><strong>current_cycle(name = &laquo;&nbsp;default&nbsp;&raquo;)</strong><br />
Retourne le cycle courant quand cycle a été lancée</li>
<li><strong>cycle(first_value, *values)</strong><br />
Permet de créer un cycle entre des éléments et appelle la fonction to_s en alternance (à utiliser par exemple pour changer de classe pour chaque ligne dans un tableau)</li>
<li><strong>excerpt(text, phrase, *args)</strong><br />
Extrait de texte à partir de la première instance de &#8216;phrase&#8217; dans un rayon. Exemple &#8216;Bonjour, vos amis sont mes amis&#8217; =&gt; &#8230; amis sont mes&#8230;</li>
<li><strong>highlight(text, phrases, *args)</strong><br />
Insert &lt;strong class=&#8217;highlight&#8217;&gt;&#8230;&lt;/strong&gt; partout ou leq &#8216;phrases&#8217; sont trouvés dans &#8216;text&#8217; (phrases peut être un array)</li>
<li><strong>markdown(text)</strong><br />
Retourne le texte transformé suivant la librairis de Mark Down installés (BlueCloth par exemple)</li>
<li><strong>pluralize(count, singular, plural = nil)</strong><br />
Transforme le singulier en pluriel si cela est possible en fonction du count donné.</li>
<li><strong>reset_cycle(name = &laquo;&nbsp;default&nbsp;&raquo;)</strong><br />
Remet à zéro le cycle s&#8217;il avait été commencé</li>
<li><strong>simple_format(text, html_options={})</strong><br />
Retourne le texte transformé en HTML. Utile pour la transformation des paragraphes définis par des &#8216;\n&#8217; en &lt;p&gt;&lt;/p&gt;</li>
<li><strong>textilize(text, *options)</strong><br />
Utilise RedCloth pour transformer en HTML un texte écrit en Textile</li>
<li><strong>textilize_without_paragraph(text)</strong><br />
Même chose que la précédente méthode, sauf qu&#8217;elle ne rajoute pas les &lt;p&gt; que RedCloth ajoute automatiquement</li>
<li><strong>truncate(text, *args)</strong><br />
Tronque le texte en utilisant :length comme longueur (par défaut : 30). Si la longueur du texte obtenu est supérieure à :length, ajoute &laquo;&nbsp;&#8230;&nbsp;&raquo; ou la chaîne de caractère :omission si donnée en paramètres.</li>
<li><strong>word_wrap(text, *args)</strong><br />
Crée des lignes à partir d&#8217;un texte en s&#8217;assurant que chaque ligne ne dépasse pas :line_width donnée en paramètre (par défault : 80)</li>
</ul>
<p>Dès qu&#8217;on commence à utiliser ces fonctions, elles deviennet véritablemen des incontournables !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rubyonrails.ma/2010/07/formatage-de-texte-ruby-on-rails-helpers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Subversion (SVN) et Ruby on Rails : déploiement en SSH</title>
		<link>http://www.rubyonrails.ma/2010/07/subversion-svn-et-ruby-on-rails-deploiement-en-ssh/</link>
		<comments>http://www.rubyonrails.ma/2010/07/subversion-svn-et-ruby-on-rails-deploiement-en-ssh/#comments</comments>
		<pubDate>Thu, 15 Jul 2010 14:42:46 +0000</pubDate>
		<dc:creator>Wahid Lahlou</dc:creator>
				<category><![CDATA[Sbuversion]]></category>
		<category><![CDATA[Serveurs]]></category>
		<category><![CDATA[Tutoriels]]></category>

		<guid isPermaLink="false">http://www.rubyonrails.ma/?p=64</guid>
		<description><![CDATA[Quand je développe un projet en Ruby on Rails, j&#8217;utilise à peu près toujours un gestionnaire de version. La plupart du temps Subversion, bien que la mode soit l&#8217;utilisation de Git. Mon hébergeur (Dreamhost) m&#8217;offre un espace illimité et la création d&#8217;autant de SVN que je veux. Dans cet article je décris la procédure que [...]]]></description>
			<content:encoded><![CDATA[<p>Quand je développe un projet en Ruby on Rails, j&#8217;utilise à peu près toujours un gestionnaire de version. La plupart du temps Subversion, bien que la mode soit l&#8217;utilisation de Git. Mon hébergeur (Dreamhost) m&#8217;offre un espace illimité et la création d&#8217;autant de SVN que je veux.</p>
<p>Dans cet article je décris la procédure que j&#8217;utilise pour déployer un site en SSH.</p>
<h3>Setup de base</h3>
<ul>
<li>http://adresse-de-mon-svn/app : l&#8217;URL du serveur SVN</li>
<li>Le SVN est déjà créé et contient la dernière version de mon application Rails</li>
<li>Certains dossiers sont ignorés (voir plus bas)</li>
<li>Accès en SSH (putty) fourni par l&#8217;hébergeur</li>
<li>Le fichier database.yml est déjà configuré pour le serveur production</li>
</ul>
<h3>Dossiers à ignorer dans le SVN :</h3>
<p>Il faut utiliser le SVN seulement pour gérer la version des fichiers qui concernent le développement. Quand je mets en place un SVN avec Rails, j&#8217;ignore les dossiers suivants :</p>
<ul>
<li>log</li>
<li>tmp</li>
<li>Si l&#8217;application gère des ressources contenant des images (produits par exemple), ignorer le dossier de ces images (exemple : le dossier utilisé par attachment_fu)</li>
</ul>
<h3>Procédure</h3>
<ol>
<li>mkdir app<br />
Avec putty, crée un dossier VIDE qui va contenir votre application</li>
<li>svn checkout http://adresse-de-mon-svn/app app<br />
&laquo;&nbsp;Connecte&nbsp;&raquo; le dossier app au SVN et télécharge les fichiers mis à jour</li>
<li>rails -s app<br />
Crée les fichiers manquant pour faire rouler l&#8217;application Rails en ignorant les fichiers manquant</li>
<li>rm app/public/index.html</li>
</ol>
<p>Et voilà ! Dorénavant, votre application Rails peut profiter de tous avantages d&#8217;un SVN.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rubyonrails.ma/2010/07/subversion-svn-et-ruby-on-rails-deploiement-en-ssh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Convertir Datetime en format Ruby et pour la base de données</title>
		<link>http://www.rubyonrails.ma/2010/01/convertir-datetime-en-format-ruby-et-pour-la-base-de-donnees/</link>
		<comments>http://www.rubyonrails.ma/2010/01/convertir-datetime-en-format-ruby-et-pour-la-base-de-donnees/#comments</comments>
		<pubDate>Mon, 11 Jan 2010 13:42:39 +0000</pubDate>
		<dc:creator>Wahid Lahlou</dc:creator>
				<category><![CDATA[Snippets]]></category>
		<category><![CDATA[DateTime]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Time]]></category>

		<guid isPermaLink="false">http://www.rubyonrails.ma/?p=56</guid>
		<description><![CDATA[Format personnel vers Ruby Je veux transformer une date du style &#171;&#160;23/11/2009 &#160;&#187; en Time de Ruby : &#62;&#62; Time.now =&#62; Mon Jan 11 13:37:11 +0000 2010 &#62;&#62; Time.now.to_s(:db) =&#62; "2010-01-11 13:38:38" &#62;&#62; ma_date = "23/11/2009" =&#62; "23/11/2009" &#62;&#62; j, m, a = ma_date.split('/') =&#62; ["23", "11", "2009"] &#62;&#62; mon_datetime = Time.local(a,m,j) =&#62; Mon Nov [...]]]></description>
			<content:encoded><![CDATA[<h3>Format personnel vers Ruby</h3>
<p>Je veux transformer une date du style &laquo;&nbsp;23/11/2009 &nbsp;&raquo; en Time de Ruby :</p>
<pre>&gt;&gt; Time.now
=&gt; Mon Jan 11 13:37:11 +0000 2010
&gt;&gt; Time.now.to_s(:db)
=&gt; "2010-01-11 13:38:38"
&gt;&gt; ma_date = "23/11/2009"
=&gt; "23/11/2009"
&gt;&gt; j, m, a = ma_date.split('/')
=&gt; ["23", "11", "2009"]
&gt;&gt; mon_datetime = Time.local(a,m,j)
=&gt; Mon Nov 23 00:00:00 +0000 2009</pre>
<h3>Ruby &gt;&gt; SQL</h3>
<p>En Ruby :</p>
<pre>&gt;&gt; Time.now
=&gt; Mon Jan 11 13:23:17 +0000 2010</pre>
<p>Pour faire la conversion (j&#8217;utilise MySQL) :</p>
<pre>&gt;&gt; Time.now.to_s(:db)
=&gt; "2010-01-11 13:38:38"</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.rubyonrails.ma/2010/01/convertir-datetime-en-format-ruby-et-pour-la-base-de-donnees/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

