<?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>Marioosh&#039;s developer diary &#187; rails templates</title>
	<atom:link href="http://marioosh.5dots.pl/tag/rails-templates/feed/" rel="self" type="application/rss+xml" />
	<link>http://marioosh.5dots.pl</link>
	<description>or something like this</description>
	<lastBuildDate>Mon, 06 Sep 2010 16:23:49 +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>Rails Template</title>
		<link>http://marioosh.5dots.pl/2010/03/rails-template/</link>
		<comments>http://marioosh.5dots.pl/2010/03/rails-template/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 09:17:43 +0000</pubDate>
		<dc:creator>Marioosh</dc:creator>
				<category><![CDATA[Programowanie]]></category>
		<category><![CDATA[WebDeveloping]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[rails templates]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://marioosh.5dots.pl/?p=395</guid>
		<description><![CDATA[Idąc za ciosem postanowiłem wydłubać własny szablonik do startu z aplikacjami. Jest on dostępny na githubie i można śmiało z niego korzystać.
Co robi szablonik?
- inicjuje repozytorium Git, dodaje niektóre miejsca i pliki do ignore&#8217;a po czym zatwierdza resztę.
- instaluje platformę testową RSpec, RSpec-Rails, Cucumber, Factory_Girl i Webrat.
- instaluje authologic i declarative_authorization,
- tworzy model do dodawania [...]]]></description>
			<content:encoded><![CDATA[<p>Idąc za ciosem postanowiłem wydłubać własny szablonik do startu z aplikacjami. Jest on dostępny na <a href="http://github.com/marioosh/rails_template">githubie</a> i można śmiało z niego korzystać.<br />
Co robi szablonik?</p>
<p>- inicjuje repozytorium Git, dodaje niektóre miejsca i pliki do ignore&#8217;a po czym zatwierdza resztę.</p>
<p>- instaluje platformę testową RSpec, RSpec-Rails, Cucumber, Factory_Girl i Webrat.</p>
<p>- instaluje authologic i declarative_authorization,</p>
<p>- tworzy model do dodawania artykułów oraz cruda do niego.</p>
<p>- tworzy model użytkownika, ról  i sesji</p>
<p>- tworzy widoki dla artykułów, panel logowania i edycja profilu.</p>
<p>- tworzy dwie początkowe role: user i admin.</p>
<p>- nadaje uprawnienia:</p>
<p style="padding-left: 30px;">- gość może czytać artykuły, założyć konto i się zalogować,</p>
<p style="padding-left: 30px;">- użytkownik może się wylogować, dodać artykuł, edytować lub usunąć własny artykuł, edytować swój profil,</p>
<p style="padding-left: 30px;">- admin może wszystko.</p>
<p style="padding-left: 30px;">
<p>Planuję jeszcze nad kilkoma dodatkami, ale nie wiem jeszcze dokładnie co i jak. Muszę to przemyśleć. Jak na razie szablon tworzy to, co w prawie każdej aplikacji istnieje. Modele można rozbudować wg własnych potrzeb ale mamy już dobry punkt początkowy.</p>
<p>Zapraszam do testowania i wyrażania swoich uwag.</p>
<p><a href="http://www.addtoany.com/add_to/wykop?linkurl=http%3A%2F%2Fmarioosh.5dots.pl%2F2010%2F03%2Frails-template%2F&amp;linkname=Rails%20Template" title="Wykop" rel="nofollow" target="_blank"><img src="http://marioosh.5dots.pl/wp-content/plugins/add-to-any/icons/wykop.png" width="16" height="16" alt="Wykop"/></a> <a href="http://www.addtoany.com/add_to/blip?linkurl=http%3A%2F%2Fmarioosh.5dots.pl%2F2010%2F03%2Frails-template%2F&amp;linkname=Rails%20Template" title="Blip" rel="nofollow" target="_blank"><img src="http://marioosh.5dots.pl/wp-content/plugins/add-to-any/icons/blip.png" width="16" height="16" alt="Blip"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fmarioosh.5dots.pl%2F2010%2F03%2Frails-template%2F&amp;linkname=Rails%20Template" title="Twitter" rel="nofollow" target="_blank"><img src="http://marioosh.5dots.pl/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fmarioosh.5dots.pl%2F2010%2F03%2Frails-template%2F&amp;linkname=Rails%20Template" title="Facebook" rel="nofollow" target="_blank"><img src="http://marioosh.5dots.pl/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/dzone?linkurl=http%3A%2F%2Fmarioosh.5dots.pl%2F2010%2F03%2Frails-template%2F&amp;linkname=Rails%20Template" title="DZone" rel="nofollow" target="_blank"><img src="http://marioosh.5dots.pl/wp-content/plugins/add-to-any/icons/dzone.png" width="16" height="16" alt="DZone"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fmarioosh.5dots.pl%2F2010%2F03%2Frails-template%2F&amp;linkname=Rails%20Template" title="Digg" rel="nofollow" target="_blank"><img src="http://marioosh.5dots.pl/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/blinklist?linkurl=http%3A%2F%2Fmarioosh.5dots.pl%2F2010%2F03%2Frails-template%2F&amp;linkname=Rails%20Template" title="Blinklist" rel="nofollow" target="_blank"><img src="http://marioosh.5dots.pl/wp-content/plugins/add-to-any/icons/blinklist.png" width="16" height="16" alt="Blinklist"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fmarioosh.5dots.pl%2F2010%2F03%2Frails-template%2F&amp;linkname=Rails%20Template" title="Delicious" rel="nofollow" target="_blank"><img src="http://marioosh.5dots.pl/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/evernote?linkurl=http%3A%2F%2Fmarioosh.5dots.pl%2F2010%2F03%2Frails-template%2F&amp;linkname=Rails%20Template" title="Evernote" rel="nofollow" target="_blank"><img src="http://marioosh.5dots.pl/wp-content/plugins/add-to-any/icons/evernote.png" width="16" height="16" alt="Evernote"/></a> <a href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fmarioosh.5dots.pl%2F2010%2F03%2Frails-template%2F&amp;linkname=Rails%20Template" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://marioosh.5dots.pl/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a> <a href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fmarioosh.5dots.pl%2F2010%2F03%2Frails-template%2F&amp;linkname=Rails%20Template" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://marioosh.5dots.pl/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fmarioosh.5dots.pl%2F2010%2F03%2Frails-template%2F&amp;linkname=Rails%20Template" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://marioosh.5dots.pl/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a href="http://www.addtoany.com/add_to/google_reader?linkurl=http%3A%2F%2Fmarioosh.5dots.pl%2F2010%2F03%2Frails-template%2F&amp;linkname=Rails%20Template" title="Google Reader" rel="nofollow" target="_blank"><img src="http://marioosh.5dots.pl/wp-content/plugins/add-to-any/icons/reader.png" width="16" height="16" alt="Google Reader"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://marioosh.5dots.pl/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share/Bookmark"/></a> </p><h3  class="related_post_title">Podobne wpisy:</h3><ul class="related_post"><li>12.12.2009 -- <a href="http://marioosh.5dots.pl/2009/12/automatyczny-start-czyli-rails-templates/" title="Automatyczny start czyli Rails Templates">Automatyczny start czyli Rails Templates</a></li><li>16.07.2010 -- <a href="http://marioosh.5dots.pl/2010/07/pickle-na-rails3/" title="Pickle na Rails3">Pickle na Rails3</a></li><li>11.12.2009 -- <a href="http://marioosh.5dots.pl/2009/12/objecie-kontrola-wersji-git-nowej-aplikacji-rails/" title="Objęcie kontrolą wersji Git nowej aplikacji Rails">Objęcie kontrolą wersji Git nowej aplikacji Rails</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://marioosh.5dots.pl/2010/03/rails-template/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Automatyczny start czyli Rails Templates</title>
		<link>http://marioosh.5dots.pl/2009/12/automatyczny-start-czyli-rails-templates/</link>
		<comments>http://marioosh.5dots.pl/2009/12/automatyczny-start-czyli-rails-templates/#comments</comments>
		<pubDate>Sat, 12 Dec 2009 10:01:16 +0000</pubDate>
		<dc:creator>Marioosh</dc:creator>
				<category><![CDATA[Programowanie]]></category>
		<category><![CDATA[WebDeveloping]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[rails templates]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://marioosh.5dots.pl/?p=379</guid>
		<description><![CDATA[Jeżeli tworzymy kilka aplikacji w ruby on rails, to przeważnie początkowe etapy są do siebie bardzo podobne. Np. inicjalizacja kontroli wersji (np. w sposób jaki jest opisany w poprzednim artykule), instalacja ulubionych pluginów, usuwanie zbędnych plików, Czy też inne operacje. Na szczeście do pomocy przychodzą nam Templates, które zostały wprowadzone w rails 2.3. Teplate to [...]]]></description>
			<content:encoded><![CDATA[<p>Jeżeli tworzymy kilka aplikacji w ruby on rails, to przeważnie początkowe etapy są do siebie bardzo podobne. Np. inicjalizacja kontroli wersji (np. w sposób jaki jest opisany w poprzednim artykule), instalacja ulubionych pluginów, usuwanie zbędnych plików, Czy też inne operacje. Na szczeście do pomocy przychodzą nam Templates, które zostały wprowadzone w rails 2.3. Teplate to nic innego niż plik ruby,  w którym wpisujemy komendy w przygotowanym do tego języku domenowym (DSL). Po przygotowaniu takiego szablonu inicjujemy projekt rails z parametrem <code>-m ścieżka_do_szablonu.rb</code>. Rails od razu po wykonaniu inicjacji projektu od razu uruchomi podany plik.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">rails my_app <span style="color: #660033;">-m</span> ~<span style="color: #000000; font-weight: bold;">/</span>szablon_startowy.rb</pre></div></div>

<p>tak samo jak URI, możemy uzywać URL:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">rails my_app <span style="color: #660033;">-m</span> http:<span style="color: #000000; font-weight: bold;">//</span>marioosh.5dots.pl<span style="color: #000000; font-weight: bold;">/</span>szablon.txt</pre></div></div>

<p>(powyższy plik nie istnieje więc nie testujcie <img src='http://marioosh.5dots.pl/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  )<br />
ostatnim sposobem jest inicjacja szablonu przed odpowiednie zadanie <code>rake</code> z ustawienie zmiennej <code>LOCATION</code>:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">rake rails:template <span style="color: #007800;">LOCATION</span>=~<span style="color: #000000; font-weight: bold;">/</span>szablon_startowy.rb</pre></div></div>

</p>
<p><span id="more-379"></span></p>
<p>
Jakie operacje możemy wykonywać w przygotowanym języku DSL? Może zacznemy od przykładu.<br />
Zacznijmy od wykonania kilku operacji opisanych w poprzednim artykule, mówiącym o wprowadzeniu aplikacji rails pod kontrolę Git.<br />
Przygotujmy nasz plik szablonu, ja go utworzłem w katalogu domowym i zapisałem go jako <code>5dots_template.rb</code><br />
Kroki które powinniśmy  wykonać:<br />
- inicjalizacja Git,<br />
- utworzenie pliku .gitignore w folderach <code>tmp</code> i <code>log</code><br />
- dodaniu kilku wpisów w głównym <code>.gitignore</code>.<br />
Plik powinien wyglądać tak:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#008000; font-style:italic;"># 5dots_szablon.rb</span>
git <span style="color:#ff3333; font-weight:bold;">:init</span>
git <span style="color:#ff3333; font-weight:bold;">:add</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">&quot;.&quot;</span>
<span style="color:#008000; font-style:italic;"># teraz dodajemy pliki .gitignore do folderów tmp i log.</span>
run <span style="color:#996600;">&quot;touch tmp/.gitignore log/.gitignore&quot;</span>
<span style="color:#008000; font-style:italic;">#oraz tworzymy plik .gitignore w głównym folderze z zawartością:</span>
file <span style="color:#996600;">'.gitignore'</span>, <span style="color:#006600; font-weight:bold;">&lt;&lt;-</span>GITIGNORE_FILE
.<span style="color:#9900CC;">DS_Store</span>
log<span style="color:#006600; font-weight:bold;">/*</span>.<span style="color:#9900CC;">log</span>
tmp<span style="color:#006600; font-weight:bold;">/**/*</span>
config<span style="color:#006600; font-weight:bold;">/</span>database.<span style="color:#9900CC;">yml</span>
db<span style="color:#006600; font-weight:bold;">/*</span>.<span style="color:#9900CC;">sqlite3</span>
doc<span style="color:#006600; font-weight:bold;">/</span>app
doc<span style="color:#006600; font-weight:bold;">/</span>api
GITIGNORE_FILE
&nbsp;
<span style="color:#008000; font-style:italic;"># teraz pozostaje tylko zatwierdzenie zmian do repozytorium:</span>
git <span style="color:#ff3333; font-weight:bold;">:commit</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">&quot;-a -m 'Initial commit'&quot;</span></pre></div></div>

</p>
<p>
W powyższym przykładnie poznaliśmy kilka komend języka DSL dla szablonów, wyjaśniam po kolei:<br />
- <code>git</code> odpowiada za komendy systemu kontroli wersji git,<br />
- <code>run</code> uruchamia polecenia konsolowe.</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">run <span style="color:#996600;">&quot;rm -rf *&quot;</span></pre></div></div>

<p>(komenda ta robi porządki w folderze <img src='http://marioosh.5dots.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )<br />
- <code> file </code> &#8211; odpowiada za tworzenie plików i operacje na nich.
</p>
<p> Mając podstawy za sobą możemy przejść do szczegółowego opisania wszystkich poleceń, w końcu te trzy powyższe, może i zrobią dużo, to i tak nie wszystko.
</p>
<h3>Polecenie rake</h3>
<p>Za wykonywanie zadań rake jest odpowiedzialna komenda o tej samej nazwie ,dodatkowo możemy uruchomić skrypt jako superużytkownik, wtedy musimy podać parametr <code> :sudo => true</code>. Dodatkowo możemy podać parametry, których możemy używać podczas ręcznego użycia komendy <code>rake</code>.</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">rake <span style="color:#996600;">&quot;gem:install&quot;</span>
<span style="color:#008000; font-style:italic;"># lub jako superuser</span>
rake <span style="color:#996600;">&quot;gem:install&quot;</span>, <span style="color:#ff3333; font-weight:bold;">:sudo</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#0000FF; font-weight:bold;">true</span>
<span style="color:#008000; font-style:italic;"># jeszcze jeden przykład:</span>
rake <span style="color:#996600;">&quot;gem:install&quot;</span>, <span style="color:#ff3333; font-weight:bold;">:env</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">'production'</span></pre></div></div>

</p>
<h3> Operacje na gemach</h3>
<p>
Komenda <code>gem</code> odpowiada za dodawanie gemów. Komenda dodaje odpowiedni wpis do pliku <code> config/envoirnment.rb</code>. Parametry, które mają być również dopisane (takie jak <code> :version, :lib, :source</code>) podajemy na końcu.<br />
Komenda nie istaluje gema, do tego celu musimy użyć odpowiedniego zadania rake (zgadnijcie którego <img src='http://marioosh.5dots.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )<br />
Kilka przykładów:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">gem <span style="color:#996600;">'thoughtbot-factory_girl'</span>, <span style="color:#ff3333; font-weight:bold;">:lib</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">'factory_girl'</span>, <span style="color:#ff3333; font-weight:bold;">:source</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">'http://gems.github.com'</span>
gem <span style="color:#996600;">&quot;hpricot&quot;</span>, <span style="color:#ff3333; font-weight:bold;">:version</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">'0.6'</span>, <span style="color:#ff3333; font-weight:bold;">:source</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">&quot;http://code.whytheluckystiff.net&quot;</span>
gem <span style="color:#996600;">&quot;RedCloth&quot;</span></pre></div></div>

</p>
<h3>Instalowanie wtyczek (inaczej zwanymi pluginami) <img src='http://marioosh.5dots.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  </h3>
<p>
Aby zainstalować pluginy używamy z komendy <code>plugin</code>(mam wrażenie, że się domyślaliście &#8211; ot taki prosty ten język, wszystko jest domyślnie proste)<br />
Pluginy możemy instalować z svn, z gita lub z gita jako submoduły:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#008000; font-style:italic;"># instalowanie ze starego dobrego subversion:</span>
plugin <span style="color:#996600;">'svnowy_plugin'</span>, <span style="color:#ff3333; font-weight:bold;">:svn</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">'svn://repozytorium/scieżka_do_plugina/trunk'</span>
<span style="color:#008000; font-style:italic;"># albo z nowego, jeszcze lepszego gita:</span>
plugin <span style="color:#996600;">'git_plugin'</span>, <span style="color:#ff3333; font-weight:bold;">:git</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">'git://github.com/scieżka_do_plugina.git'</span>
<span style="color:#008000; font-style:italic;"># lub nawet jako submoduł gitowy (o tym będzie w następnym artykule)</span>
plugin <span style="color:#996600;">'git_plugin'</span>, <span style="color:#ff3333; font-weight:bold;">:git</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">'git://github.com/scieżka_do_plugina.git'</span>, <span style="color:#ff3333; font-weight:bold;">:submodule</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#0000FF; font-weight:bold;">true</span></pre></div></div>

</p>
<h3>Inicjalizery- czyli automatory, wewnątrz automatora <img src='http://marioosh.5dots.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </h3>
<p>
Jeżeli korzystamy z inicjalizerów, czyli skryptów, które są uruchamiane podczas startu aplikacji używamy komendy <code>initialize</code>. Właśnie ona, tworzy plik w folderze <code>cofnig/initializers</code></p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">initialize <span style="color:#996600;">&quot;nowy_object.rb&quot;</span>, <span style="color:#006600; font-weight:bold;">&lt;&lt;</span>NOWY_OBJECT_CONTENT
<span style="color:#9966CC; font-weight:bold;">class</span> <span style="color:#CC00FF; font-weight:bold;">Object</span>
    <span style="color:#9966CC; font-weight:bold;">def</span> nowa_metoda
        <span style="color:#CC0066; font-weight:bold;">puts</span> <span style="color:#996600;">&quot;Fajna ta nowa metoda, dobrze, że mogę z niej korzystać, zanim railsy się odpalą! &quot;</span>;
    <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span>
NOWY_OBJECT_CONTENT</pre></div></div>

<p>Dokładnie na tej samej zasadzie działają komendy <code>lib</code> i <code>vendor</code>, które tworzą pliki w folderach (odpowiednio) <code>/lib</code> i <code>/vendor</code>.
</p>
<h3>Pliki</h3>
<p>
Tworzenie nowych plików tworzymy na podobnej zasadzie jak poprzednia metoda, główną różnicą jest, że plik zostanie utworzony, wg folderu RAILS_ROOT a nie wewnątrz <code>initailizers</code>.</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">file <span style="color:#996600;">&quot;app/components/Klasa.rb&quot;</span>, <span style="color:#006600; font-weight:bold;">&lt;&lt;</span>KLASA
<span style="color:#9966CC; font-weight:bold;">class</span> Klasa
<span style="color:#9966CC; font-weight:bold;">end</span>
KLASA</pre></div></div>

<p>Komenda powyższa utworzy foldery <code>app/components</code> i umieści w nim plik <code>Klasa.rb</code>.
</p>
<h3>Zadania Rake</h3>
<p>
Komenda <code>rakefile</code> tworzy plik w folderze <code>/lib/tasks</code></p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">rakefile <span style="color:#996600;">&quot;clear_all.rake&quot;</span> <span style="color:#9966CC; font-weight:bold;">do</span>
    namespace <span style="color:#ff3333; font-weight:bold;">:clear</span> <span style="color:#9966CC; font-weight:bold;">do</span>
        task <span style="color:#ff3333; font-weight:bold;">:all</span> <span style="color:#9966CC; font-weight:bold;">do</span>
            <span style="color:#CC0066; font-weight:bold;">puts</span> <span style="color:#996600;">&quot;Usuwamy wszystko!!!!! &quot;</span>
        <span style="color:#9966CC; font-weight:bold;">end</span>
    <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<p>Teraz to zadanie możemy uruchomić po wydaniu komendy: <code>rake clear:all</code>.
</p>
<h3>Generatory</h3>
<p>
Generatory możemy uruchomić komendą <code>generate</code> i podając listę argumentów. Możemy uzywać wszystkie generatory, które są standardowo w railsach, lub które uprzednio zainstalowaliśmy w formie pluginów lub gemów.</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">generate<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#ff3333; font-weight:bold;">:scaffold</span>, <span style="color:#996600;">&quot;person&quot;</span>, <span style="color:#996600;">&quot;name:string&quot;</span>, <span style="color:#996600;">&quot;email:string&quot;</span>, <span style="color:#996600;">&quot;password:string&quot;</span>
generate<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;rspec&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span></pre></div></div>

</p>
<h3>Uruchamianie skryptów powłoki</h3>
<p>
Jak już wspomniałem można tego dokonać za pomocą komendy <code>run</code></p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">run <span style="color:#996600;">&quot;rm -rf *&quot;</span></pre></div></div>

</p>
<h3>Dodawanie rutingów <img src='http://marioosh.5dots.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  </h3>
<p>Jeżeli potrzebujemy dodatkowych wpisów w pliku <code>/config/routes.rb</code> wykonujemy je uruchamiając komendę <code>route</code></p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">route <span style="color:#996600;">&quot;map.root :controller =&gt; :person&quot;</span></pre></div></div>

</p>
<h3>Zmiana folderu</h3>
<p>
Czasami wygodne jest przejście do innego folderu i w nim wykonanie kilku operacji, możemy to zrobić za pomocą komendy <code>inside</code>. Jako parametr podajemy folder docelowy i potem block.</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">inside <span style="color:#996600;">&quot;config&quot;</span> <span style="color:#9966CC; font-weight:bold;">do</span>
    run <span style="color:#996600;">&quot;cp database.yml database.orig.yml&quot;</span>
<span style="color:#008000; font-style:italic;"># linkowanie ustawień z innego projektu, bo oba mają działać na tej samej bazie</span>
    run <span style="color:#996600;">&quot;ln -s /projekty/super_rails_app/config/database.yml database.yml&quot;</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

</p>
<h3>Działanie zależne od odpowiedzi</h3>
<p>
Podczas wykonywania skryptu, możemy wprowadzić małą intekerakcję, np. zadać pytanie i zależnie od odpowiedzi wykonać dalej skrypt.<br />
Na przykład możemy zapytać o nazwę pliku. W tym celu wykonujemy komendę <code>ask</code>.<br />
W poniższym przykładzie pytamy sie o nazwę pliku dla pliku konfiguracji <code>.yml</code>. Skrypt również sprawdza, czy rozszerzenie zostało podane czy nie. jeżeli nie, to dodaje je do nazwy pliku.</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">file_name = ask<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;Podaj nazwę pliku konfiguracyjnego&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
file_name <span style="color:#006600; font-weight:bold;">&lt;&lt;</span> <span style="color:#996600;">&quot;.yml&quot;</span> <span style="color:#9966CC; font-weight:bold;">unless</span> file_name.<span style="color:#9900CC;">index</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;.yml&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
&nbsp;
file <span style="color:#996600;">&quot;/config/&quot;</span> <span style="color:#006600; font-weight:bold;">&lt;&lt;</span> filename, <span style="color:#006600; font-weight:bold;">&lt;&lt;</span>FILE_CONTENT
global_settings:
    color: <span style="color:#008000; font-style:italic;">#e343f3</span>
    font<span style="color:#006600; font-weight:bold;">-</span>size: 14px
FILE_CONTENT</pre></div></div>

</p>
<p>
Istnieją również uproszczone wersje powyższej metody, jedna oczekuje na odpowiedź &#8220;yes&#8221; druga na &#8220;no&#8221;</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">gem <span style="color:#996600;">&quot;RedCloth&quot;</span> <span style="color:#9966CC; font-weight:bold;">if</span> yes?<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;Zainstalować gem Red Cloth?&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
&nbsp;
<span style="color:#9966CC; font-weight:bold;">if</span> no?<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;Zainstalować gem Blue Cloth?&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span> 
    gem ask<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;Podaj nazwę gemu z edytorem, którym ma być użyty zamiast BlueCloth:&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
<span style="color:#9966CC; font-weight:bold;">else</span>
    gem <span style="color:#996600;">&quot;BlueCloth&quot;</span>
<span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#008000; font-style:italic;"># po wpisaniu 'no' zostanie uruchomione zapytanie o nazwe gem'a, w każdej innej sytuacji zostanie dodany BlueCloth</span></pre></div></div>

</p>
<h3>GIT &#8211; kochaj albo rzuć <img src='http://marioosh.5dots.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </h3>
<p>
Komenda <code>git</code> wykonduje komendy systemu kontroli wersji Git &#8211; jak nie trudno się domyśleć.</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">git <span style="color:#ff3333; font-weight:bold;">:init</span>
git <span style="color:#ff3333; font-weight:bold;">:add</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">&quot;.&quot;</span>
git <span style="color:#ff3333; font-weight:bold;">:commit</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">&quot;-a -m 'Initial commit'&quot;</span>
git <span style="color:#ff3333; font-weight:bold;">:submodule</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">&quot;init&quot;</span></pre></div></div>

</p>
<h3>Rezume <img src='http://marioosh.5dots.pl/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  </h3>
<p>Lista komend do wykorzystania:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">&nbsp;
gem<span style="color:#006600; font-weight:bold;">&#40;</span>nazwa, options=<span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
plugin<span style="color:#006600; font-weight:bold;">&#40;</span>nazwa, options=<span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
initializer<span style="color:#006600; font-weight:bold;">&#40;</span>nazwa_pliku, data=<span style="color:#0000FF; font-weight:bold;">nil</span>, <span style="color:#006600; font-weight:bold;">&amp;</span>block<span style="color:#006600; font-weight:bold;">&#41;</span>
lib<span style="color:#006600; font-weight:bold;">&#40;</span>nazwa_pliku, data=<span style="color:#0000FF; font-weight:bold;">nil</span>, <span style="color:#006600; font-weight:bold;">&amp;</span>block<span style="color:#006600; font-weight:bold;">&#41;</span>
vendor<span style="color:#006600; font-weight:bold;">&#40;</span>nazwa_pliku, data=<span style="color:#0000FF; font-weight:bold;">nil</span>, <span style="color:#006600; font-weight:bold;">&amp;</span>block<span style="color:#006600; font-weight:bold;">&#41;</span>
rakefile<span style="color:#006600; font-weight:bold;">&#40;</span>nawa_pliku, data=<span style="color:#0000FF; font-weight:bold;">nil</span>, <span style="color:#006600; font-weight:bold;">&amp;</span>block<span style="color:#006600; font-weight:bold;">&#41;</span>
generate<span style="color:#006600; font-weight:bold;">&#40;</span>co_generować, argumenty<span style="color:#006600; font-weight:bold;">&#41;</span>
run<span style="color:#006600; font-weight:bold;">&#40;</span>komenda<span style="color:#006600; font-weight:bold;">&#41;</span>
rake<span style="color:#006600; font-weight:bold;">&#40;</span>komenda, options=<span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
route<span style="color:#006600; font-weight:bold;">&#40;</span>routing_code<span style="color:#006600; font-weight:bold;">&#41;</span>
inside<span style="color:#006600; font-weight:bold;">&#40;</span>folder<span style="color:#006600; font-weight:bold;">&#41;</span>
ask<span style="color:#006600; font-weight:bold;">&#40;</span>pytanie<span style="color:#006600; font-weight:bold;">&#41;</span>
yes?<span style="color:#006600; font-weight:bold;">&#40;</span>pytanie<span style="color:#006600; font-weight:bold;">&#41;</span>
no?<span style="color:#006600; font-weight:bold;">&#40;</span>pytanie<span style="color:#006600; font-weight:bold;">&#41;</span>
git<span style="color:#006600; font-weight:bold;">&#40;</span>parametry<span style="color:#006600; font-weight:bold;">&#41;</span></pre></div></div>

<p>Teraz znająć już wszystkie komendy, możemy tworzyć własne szablone jako startowe ustawienia aplikacji. Jeżeli stworzymy coś nowego i fajnego warto się tym podzielić. Moża dodać je do projektu: <a href="http://github.com/jeremymcanally/rails-templates">Rails Templates</a>, który takie szablony zbiera. Możemy również skorzystać z instniejących tam szablonów.</p>
<p><a href="http://www.addtoany.com/add_to/wykop?linkurl=http%3A%2F%2Fmarioosh.5dots.pl%2F2009%2F12%2Fautomatyczny-start-czyli-rails-templates%2F&amp;linkname=Automatyczny%20start%20czyli%20Rails%20Templates" title="Wykop" rel="nofollow" target="_blank"><img src="http://marioosh.5dots.pl/wp-content/plugins/add-to-any/icons/wykop.png" width="16" height="16" alt="Wykop"/></a> <a href="http://www.addtoany.com/add_to/blip?linkurl=http%3A%2F%2Fmarioosh.5dots.pl%2F2009%2F12%2Fautomatyczny-start-czyli-rails-templates%2F&amp;linkname=Automatyczny%20start%20czyli%20Rails%20Templates" title="Blip" rel="nofollow" target="_blank"><img src="http://marioosh.5dots.pl/wp-content/plugins/add-to-any/icons/blip.png" width="16" height="16" alt="Blip"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fmarioosh.5dots.pl%2F2009%2F12%2Fautomatyczny-start-czyli-rails-templates%2F&amp;linkname=Automatyczny%20start%20czyli%20Rails%20Templates" title="Twitter" rel="nofollow" target="_blank"><img src="http://marioosh.5dots.pl/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fmarioosh.5dots.pl%2F2009%2F12%2Fautomatyczny-start-czyli-rails-templates%2F&amp;linkname=Automatyczny%20start%20czyli%20Rails%20Templates" title="Facebook" rel="nofollow" target="_blank"><img src="http://marioosh.5dots.pl/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/dzone?linkurl=http%3A%2F%2Fmarioosh.5dots.pl%2F2009%2F12%2Fautomatyczny-start-czyli-rails-templates%2F&amp;linkname=Automatyczny%20start%20czyli%20Rails%20Templates" title="DZone" rel="nofollow" target="_blank"><img src="http://marioosh.5dots.pl/wp-content/plugins/add-to-any/icons/dzone.png" width="16" height="16" alt="DZone"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fmarioosh.5dots.pl%2F2009%2F12%2Fautomatyczny-start-czyli-rails-templates%2F&amp;linkname=Automatyczny%20start%20czyli%20Rails%20Templates" title="Digg" rel="nofollow" target="_blank"><img src="http://marioosh.5dots.pl/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/blinklist?linkurl=http%3A%2F%2Fmarioosh.5dots.pl%2F2009%2F12%2Fautomatyczny-start-czyli-rails-templates%2F&amp;linkname=Automatyczny%20start%20czyli%20Rails%20Templates" title="Blinklist" rel="nofollow" target="_blank"><img src="http://marioosh.5dots.pl/wp-content/plugins/add-to-any/icons/blinklist.png" width="16" height="16" alt="Blinklist"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fmarioosh.5dots.pl%2F2009%2F12%2Fautomatyczny-start-czyli-rails-templates%2F&amp;linkname=Automatyczny%20start%20czyli%20Rails%20Templates" title="Delicious" rel="nofollow" target="_blank"><img src="http://marioosh.5dots.pl/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/evernote?linkurl=http%3A%2F%2Fmarioosh.5dots.pl%2F2009%2F12%2Fautomatyczny-start-czyli-rails-templates%2F&amp;linkname=Automatyczny%20start%20czyli%20Rails%20Templates" title="Evernote" rel="nofollow" target="_blank"><img src="http://marioosh.5dots.pl/wp-content/plugins/add-to-any/icons/evernote.png" width="16" height="16" alt="Evernote"/></a> <a href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fmarioosh.5dots.pl%2F2009%2F12%2Fautomatyczny-start-czyli-rails-templates%2F&amp;linkname=Automatyczny%20start%20czyli%20Rails%20Templates" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://marioosh.5dots.pl/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a> <a href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fmarioosh.5dots.pl%2F2009%2F12%2Fautomatyczny-start-czyli-rails-templates%2F&amp;linkname=Automatyczny%20start%20czyli%20Rails%20Templates" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://marioosh.5dots.pl/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fmarioosh.5dots.pl%2F2009%2F12%2Fautomatyczny-start-czyli-rails-templates%2F&amp;linkname=Automatyczny%20start%20czyli%20Rails%20Templates" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://marioosh.5dots.pl/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a href="http://www.addtoany.com/add_to/google_reader?linkurl=http%3A%2F%2Fmarioosh.5dots.pl%2F2009%2F12%2Fautomatyczny-start-czyli-rails-templates%2F&amp;linkname=Automatyczny%20start%20czyli%20Rails%20Templates" title="Google Reader" rel="nofollow" target="_blank"><img src="http://marioosh.5dots.pl/wp-content/plugins/add-to-any/icons/reader.png" width="16" height="16" alt="Google Reader"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://marioosh.5dots.pl/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share/Bookmark"/></a> </p><h3  class="related_post_title">Podobne wpisy:</h3><ul class="related_post"><li>05.03.2010 -- <a href="http://marioosh.5dots.pl/2010/03/rails-template/" title="Rails Template">Rails Template</a></li><li>16.07.2010 -- <a href="http://marioosh.5dots.pl/2010/07/pickle-na-rails3/" title="Pickle na Rails3">Pickle na Rails3</a></li><li>11.12.2009 -- <a href="http://marioosh.5dots.pl/2009/12/objecie-kontrola-wersji-git-nowej-aplikacji-rails/" title="Objęcie kontrolą wersji Git nowej aplikacji Rails">Objęcie kontrolą wersji Git nowej aplikacji Rails</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://marioosh.5dots.pl/2009/12/automatyczny-start-czyli-rails-templates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
