<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Jaros&#322;aw Zabie&#322;&#322;o - BLOG: W&#322;asne konfiguracje w Rails</title>
    <link>http://blog.zabiello.com/articles/2006/12/24/w%C5%82asne-konfiguracje-w-rails</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>moje notatki, linki, komentarze</description>
    <item>
      <title>W&#322;asne konfiguracje w Rails</title>
      <description>&lt;p&gt;W Rails domy&#347;lnym miejscem do ustawienia swoich dodatkowych konfiguracji jest plik conf/environment.rb. Jednak wygodniejszym sposobem jest u&#380;ycie formatu &lt;span class="caps"&gt;YAML&lt;/span&gt;. Np. za&#322;&#243;&#380;my, &#380;e pliku config/defaults.yml mamy nast&#281;puj&#261;ce ustawienia:&lt;/p&gt;


&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_ruby "&gt;&lt;span class="ident"&gt;default&lt;/span&gt;&lt;span class="punct"&gt;:&lt;/span&gt; &lt;span class="punct"&gt;&amp;amp;&lt;/span&gt;&lt;span class="ident"&gt;defaults&lt;/span&gt;
  &lt;span class="ident"&gt;paging&lt;/span&gt;&lt;span class="punct"&gt;:&lt;/span&gt; &lt;span class="number"&gt;10&lt;/span&gt;

&lt;span class="ident"&gt;development&lt;/span&gt;&lt;span class="punct"&gt;:&lt;/span&gt;
  &lt;span class="ident"&gt;show_debugs&lt;/span&gt;&lt;span class="punct"&gt;:&lt;/span&gt; &lt;span class="constant"&gt;true&lt;/span&gt;
  &lt;span class="ident"&gt;paging&lt;/span&gt;&lt;span class="punct"&gt;:&lt;/span&gt; &lt;span class="number"&gt;20&lt;/span&gt;
  &lt;span class="punct"&gt;&amp;lt;&amp;lt;:&lt;/span&gt; &lt;span class="punct"&gt;*&lt;/span&gt;&lt;span class="ident"&gt;defaults&lt;/span&gt;

&lt;span class="ident"&gt;production&lt;/span&gt;&lt;span class="punct"&gt;:&lt;/span&gt;
  &lt;span class="ident"&gt;show_debugs&lt;/span&gt;&lt;span class="punct"&gt;:&lt;/span&gt; &lt;span class="constant"&gt;false&lt;/span&gt;
  &lt;span class="punct"&gt;&amp;lt;&amp;lt;:&lt;/span&gt; &lt;span class="punct"&gt;*&lt;/span&gt;&lt;span class="ident"&gt;defaults&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;Wykorzysta&#322;em tu zasad&#281; &lt;span class="caps"&gt;DRY&lt;/span&gt; (unikania powtarzania kodu) st&#261;d sekcja &amp;#8216;default&amp;#8217; kt&#243;ra zawiera wsp&#243;lne ustawienia dla Rails&#243;w pracuj&#261;cych zar&#243;wno w trybie roboczym (developerskim) jak i produkcyjnym. Aby ten plik by&#322; wci&#261;gany i to zgodnie z bie&#380;&#261;cym trybem pracy Rails&#243;w, do pliku config/environment.rb nale&#380;y doda&#263;:&lt;/p&gt;


&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_ruby "&gt;&lt;span class="ident"&gt;require&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;ostruct&lt;/span&gt;&lt;span class="punct"&gt;'&lt;/span&gt;
&lt;span class="ident"&gt;yml&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="constant"&gt;YAML&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;load_file&lt;/span&gt; &lt;span class="constant"&gt;RAILS_ROOT&lt;/span&gt; &lt;span class="punct"&gt;+&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;/config/defaults.yml&lt;/span&gt;&lt;span class="punct"&gt;'&lt;/span&gt;
&lt;span class="global"&gt;$defaults&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="constant"&gt;OpenStruct&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;new&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="ident"&gt;yml&lt;/span&gt;&lt;span class="punct"&gt;).&lt;/span&gt;&lt;span class="ident"&gt;send&lt;/span&gt; &lt;span class="constant"&gt;RAILS_ENV&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;Do naszej aplikacji RoR zostanie dodana zmienna globalna $defaults, W wypadku pracy w trybie produkcyjnym, zmienna $defaults zawiera hasz z warto&#347;ciami:&lt;/p&gt;


&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_ruby "&gt;&lt;span class="punct"&gt;{&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;paging&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;=&amp;gt;&lt;/span&gt;&lt;span class="number"&gt;10&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;show_debugs&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;=&amp;gt;&lt;/span&gt;&lt;span class="constant"&gt;false&lt;/span&gt;&lt;span class="punct"&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;Zamiast u&#380;ycia zmiennej globalnej, mo&#380;na u&#380;y&#263;&lt;/p&gt;


&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_ruby "&gt;&lt;span class="punct"&gt;::&lt;/span&gt;&lt;span class="constant"&gt;AppConfig&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="constant"&gt;OpenStruct&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;new&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="ident"&gt;yml&lt;/span&gt;&lt;span class="punct"&gt;).&lt;/span&gt;&lt;span class="ident"&gt;send&lt;/span&gt; &lt;span class="constant"&gt;RAILS_ENV&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;dzi&#281;ki temu mamy dost&#281;p do poszczeg&#243;lnych parametr&#243;w za pomoc&#261;  notacji kropkowej:&lt;/p&gt;


&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_ruby "&gt;&lt;span class="ident"&gt;puts&lt;/span&gt; &lt;span class="constant"&gt;AppConfig&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;paging&lt;/span&gt; &lt;span class="comment"&gt;# =&amp;gt; 10&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
      <pubDate>Sun, 24 Dec 2006 02:51:00 +0100</pubDate>
      <guid isPermaLink="false">urn:uuid:6fdb5e3d-41da-49d5-8f60-5368f9196fd9</guid>
      <author>Jaros&#322;aw Zabie&#322;&#322;o</author>
      <link>http://blog.zabiello.com/articles/2006/12/24/w%C5%82asne-konfiguracje-w-rails</link>
      <category>Ruby on Rails</category>
      <category>rails</category>
    </item>
  </channel>
</rss>
