<?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>Migol's Blog &#187; Ruby on Rails</title>
	<atom:link href="http://blog.migol.net/category/informatyka/informatyka-tworzenie-stron/ruby-on-rails/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.migol.net</link>
	<description></description>
	<lastBuildDate>Fri, 06 Feb 2009 15:16:06 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Rake 0.8.3 a NetBeans</title>
		<link>http://blog.migol.net/2008/10/24/rake-083-a-netbeans/</link>
		<comments>http://blog.migol.net/2008/10/24/rake-083-a-netbeans/#comments</comments>
		<pubDate>Fri, 24 Oct 2008 13:15:03 +0000</pubDate>
		<dc:creator>Migol</dc:creator>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://blog.migol.net/?p=45</guid>
		<description><![CDATA[Ostatnio pojawił mi się problem przy tworzeniu aplikacji Rails w NetBeans&#8217;ie. Otóż jak zawsze chciałem mieć najnowszą wersję oprogramowania dlatego zainstalowałem gem Rake w wersji 0.8.3. No i NetBeans przy starcie zaczął się burzyć, że nie może odczytać danych o zadaniach Rake (ku przypomnieniu, Rake, to jest Make dla Ruby&#8217;ego), a w błędzie informacja, że [...]]]></description>
			<content:encoded><![CDATA[<p>Ostatnio pojawił mi się problem przy tworzeniu aplikacji Rails w NetBeans&#8217;ie. Otóż jak zawsze chciałem mieć najnowszą wersję oprogramowania dlatego zainstalowałem gem Rake w wersji 0.8.3. No i NetBeans przy starcie zaczął się burzyć, że nie może odczytać danych o zadaniach Rake (ku przypomnieniu, Rake, to jest Make dla Ruby&#8217;ego), a w błędzie informacja, że brakuje funkcji &#8220;do_option&#8221;.</p>
<p><span id="more-45"></span></p>
<p>Trochę musiałem powalczyć żeby to naprawić. Niestety dokumentacja RubyGems jest biedna i dotyczy wersji sprzed dawna (0.8.7 jak sie nie myle, gdzie teraz jest 1.3.0). Udało mi się doczytać, że teraz nie ma już require_gem, lecz trzeba najpierw aktywować gem a dopiero potem zrobic require. No cóż, szkoda że tych informacji na oficjalnej stronie RubyGems nie ma.</p>
<p>Druga sprawa jaka mnie dziwi, to fakt, że w Rake 0.8.3 w changelogu nie ma żadnych informacji o usunięciu funkcji do_option. Przecież zmianie uległo zewnętrzne API, takie rzeczy się pisze. No nic, kolejny problem ze społecznością Ruby&#8217;ego.</p>
<p>No ale jeśli tu trafiłeś to pewnie masz ten sam problem co ja miałem. Oto rozwiązanie:</p>
<ol>
<li>Musisz mieć zainstalowanego Rake 0.8.1 (pamiętaj że gemy pozwalają na wiele wersji naraz!). Jeśli skasowałeś to &#8220;gem install rake -v 0.8.1&#8243;</li>
<li>Musisz odnaleźć plik &#8220;rake_tasks_info.rb&#8221;, powinien być w katalogu &#8220;&lt;NetBeans&gt;\ruby2&#8243;.</li>
<li>Przed linijką &#8220;require &#8216;rake&#8217;&#8221; dopisz linię &#8220;gem &#8216;rake&#8217;, &#8216;&lt;= 0.8.1&#8242; &#8221; (bez cudzysłowów).</li>
</ol>
<p>Ponoć w trunku najnowszej wersji pluginu do NB jest już dodana poprawka na to.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.migol.net/2008/10/24/rake-083-a-netbeans/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ruby on Rails &#8211; jakość w standardzie</title>
		<link>http://blog.migol.net/2008/05/29/ror-jakosc-w-standardzie/</link>
		<comments>http://blog.migol.net/2008/05/29/ror-jakosc-w-standardzie/#comments</comments>
		<pubDate>Thu, 29 May 2008 14:40:00 +0000</pubDate>
		<dc:creator>Migol</dc:creator>
				<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://blog.migol.net/?p=17</guid>
		<description><![CDATA[Dość dziwny tytuł mi wyszedł, ale do końca nie wiedziałem jak to napisać. No ale zacząć muszę od początku.
Ruby on Rails jest to platforma do tworzenia serwisów internetowych, na licencji MIT. Powstała ona w przeciwieństwie do większości tego typu oprogramowania nie jako idea rozpoczęta od początku, ale została wyciągnięta bezpośrednio z działającego produktu &#8211; Basecamp. [...]]]></description>
			<content:encoded><![CDATA[<p>Dość dziwny tytuł mi wyszedł, ale do końca nie wiedziałem jak to napisać. No ale zacząć muszę od początku.</p>
<p>Ruby on Rails jest to platforma do tworzenia serwisów internetowych, na licencji MIT. Powstała ona w przeciwieństwie do większości tego typu oprogramowania nie jako idea rozpoczęta od początku, ale została wyciągnięta bezpośrednio z działającego produktu &#8211; <a title="Basecamp" onclick="pageTracker._trackPageview('/outgoing/www.basecamphq.com/?referer=http://blog.migol.net/wp-admin/edit.php');pageTracker._trackPageview('/outgoing/www.basecamphq.com/?referer=http://blog.migol.net/wp-admin/post.php?action=edit&amp;post=17&amp;message=4');pageTracker._trackPageview('/outgoing/www.basecamphq.com/?referer=http://blog.migol.net/wp-admin/post.php?action=edit&amp;post=17&amp;message=4');pageTracker._trackPageview('/outgoing/www.basecamphq.com/?referer=http://blog.migol.net/wp-admin/post.php?action=edit&amp;post=17&amp;message=4');pageTracker._trackPageview('/outgoing/www.basecamphq.com/?referer=http://blog.migol.net/wp-admin/post.php?action=edit&amp;post=17');pageTracker._trackPageview('/outgoing/www.basecamphq.com/?referer=http://blog.migol.net/wp-admin/edit.php?post_status=draft');" href="http://www.basecamphq.com/">Basecamp</a>. Różnica jest znaczna, gdyż na start był to już dojrzały produkt. Aktualnie mamy wersję 2.0.2, na co radzę zwrócić uwagę szukając tutoriali (np nie istnieje już instrukcja <em>scaffold</em>).</p>
<p>Ruby on Rails (RoR) nie jest to coś podobnego do np. PHP, gdyż PHP to tylko język programowania, którym w wypadku RoR jest Ruby. O Ruby może napiszę jeszcze kiedyś. Bycie platformą oznacza więc, że RoR daje coś więcej.</p>
<p><span id="more-17"></span></p>
<p>Przede wszystkim Rails zmienia sposób spojrzenia na utrzymanie jakości w oprogramowaniu. Np. bardzo popularny i ważny model MVC (Model, View, Controller) czyli trójwarstwówka (model odpowiada za dane, view za to jak są one wyświetlane, a controller za logikę biznesową). W Ruby on Rails jest to właściwie jedyna metoda dodawania czegoś na stronę. Możliwe że istnieją inne metody, ale tworząc w RoR wydają się one cokolwiek nie na miejscu.</p>
<p>Kolejną ważną rzeczą we współczesnym podejściu do jakości oprogramowania jest automatyczne testowanie programów. Dlaczego jest ono ważne? Po pierwsze dzięki automatycznym testom nie musimy sprawdzać sami, czy coś działa czy nie. Nie jest to bardzo odkrywcze stwierdzenia, ale ważności nabiera w momencie w którym np. optymalizujemy kod, czy robimy</p>
<p><!--more--></p>
<p>&#8220;refactoring&#8221;. Wtedy chcemy, aby kod miał takie same efekty jak wcześniej, ale robił to w inny, lepszy sposób.</p>
<p>Następna interesująca sprawa to sposób zarządzania bazą danych. Tutaj RoR daje nam po pierwsze mechanizmy zarządzania trzema podstawowymi bazami danych: development na której tworzymy oprogramowanie, test na której je testujemy i production, czyli baza danych dla pracującego systemu. Dalej dostajemy piękny mechanizm migracji bazy danych.</p>
<p>Migracja baz danych do kolejnych wersji stanowi bardzo problematyczną sprawę dla większości systemów. Żaden ze znanych mi systemów bazodanowych nie wspomaga tego procesu. Tymczasem Rails rozwiązuje przepięknie ten problem poprzez system migracji bazy danych. Mówiąc z skrócie polega to na tym, że kodem w Ruby zmieniamy bazę danych. Tak, bez użycia SQLa. I to działa. A wygląda np. tak:</p>

<div class="wp_syntax"><div class="code"><pre class="rails" style="font-family:monospace;"><span style="color:#9966CC; font-weight:bold;">class</span> CreateBooks <span style="color:#006600; font-weight:bold;">&amp;</span>lt; <span style="color:#6666ff; font-weight:bold;">ActiveRecord::Migration</span>
  <span style="color:#9966CC; font-weight:bold;">def</span> <span style="color:#0000FF; font-weight:bold;">self</span>.<span style="color:#9900CC;">up</span>
    create_table <span style="color:#ff3333; font-weight:bold;">:books</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>t<span style="color:#006600; font-weight:bold;">|</span>
      t.<span style="color:#9900CC;">column</span> <span style="color:#ff3333; font-weight:bold;">:title</span>, <span style="color:#ff3333; font-weight:bold;">:string</span>
      t.<span style="color:#9900CC;">column</span> <span style="color:#ff3333; font-weight:bold;">:author</span>, <span style="color:#ff3333; font-weight:bold;">:string</span>
      t.<span style="color:#9900CC;">column</span> <span style="color:#ff3333; font-weight:bold;">:rating</span>, <span style="color:#ff3333; font-weight:bold;">:int</span>
      t.<span style="color:#9900CC;">column</span> <span style="color:#ff3333; font-weight:bold;">:description</span>, <span style="color:#ff3333; font-weight:bold;">:text</span>
    <span style="color:#9966CC; font-weight:bold;">end</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
  <span style="color:#9966CC; font-weight:bold;">def</span> <span style="color:#0000FF; font-weight:bold;">self</span>.<span style="color:#9900CC;">down</span>
    drop_table <span style="color:#ff3333; font-weight:bold;">:books</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<p>Metoda self.up służy do przeniesienia wersji bazy danych na aktualna, natomiast self.down wycofuje wprowadzone zmiany. Ten kod tworzy tablicę &#8220;books&#8221; z czterma polami (i dodatkowo piątym &#8211; id). Zasadniczo każdą podstawową operację na bazie danych można w ten sposób opisać. Prościej się juz chyba nie da.</p>
<p>Do tego wszystkiego Rails oferuje generatory &#8211; skrypty które tworzą nowe element strony takie jak modele, widoki, czy migracje bazy danych, razem z wszystkimi testami które wypadałoby zrobić. Jakby tego było mało, aplikację RoR można połączyć z SVNem, dzięki czemu pozbywamy się problemu ręcznego dodawania plików.</p>
<p>O Ruby on Rails i jego zaletach możnaby pisać godzinami, więc tym razem to już wszystko.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.migol.net/2008/05/29/ror-jakosc-w-standardzie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
