Ruby tapasztalatok

Ruby. Régi kedvenc, de most éles bevetésben is bizonyított. Egy adatbázis import scriptet írtam benne, ami adott csv-k adatait olvasta be, rakta össze és írta egy másik csv fájlba, amit később Drupalból importálni tudtam.

A nyelv alapjai és sajátosságai figyelemre méltóak. A Ruby nyelvet Yukihiro Matsumoto kezdte el fejleszteni 1995 környékén. Jól olvasható és könnyen érthető nyelv. Objektumorientáltsága alkalmassá teszi arra, hogy az alkalmazásokat csapatmunkában fejlesszék benne. A ruby nyelven minden objektum, értelme van például annak is, hogy

100.to_s

Ezt irb-be (interactive ruby shell) kiadva a visszaadott érték "100" karakterlánc lesz. Rubyban lehetőség van arra is, hogy már meglévő osztályokat egészítsünk ki saját funkcióval. Az adatfeldolgozó scriptemhez szükség volt egy olyan eljárásra, ami a csv rekodjaiból kiszedi az idézőjeleket, de kizárólag a karakterláncok elejéről és végéről. Így egészítettem ki a String osztályt:


class String
  require 'iconv'
  def to_utf8!
    Iconv.conv('utf-8', 'ISO-8859-2', self)
  end
  def stripq
    self.strip.sub(/^\"|\"$/, "")
  end
end 

Látszik, hogy létrehoztam egy to_utf8! függvényt is, aminek a végén lévő felkiáltójel jelzi, hogy az osztály példányán változtat. Ezt ruby-ban prédikátumoknak nevezik. a stripq függvény egy értéket ad vissza. PHP programozóknak talán nem világos, hogy miért nincs return a függvényben. Lehetne benne, de így olvashatóbb és a végeredmény ugyanaz. Az end sor előtt lévő visszaadott érték lesz a return értéke a stripq-nak. Használhattam volna a sub függvényt is az itt megadott paraméterekkel minden olyan esetben, amikor egy karakterláncot szerettem volna megtisztítani az idézőjelektől, de nem szeretem magam ismételni. Ezzel a megoldással ráadásul ha valami hibát találok a regex-ben, csak egy helyen kell módosítani a forrást.

Remélem ezzel a rövid írással sikerült érdeklődést keltenem tanulni vágyó programozóknak a ruby felé, én mindenképpen szeretném a PHP-t kiváltani ezzel, ahol csak lehetséges. Karácsony környékén lesz időm a saját blogommal foglalkozni, Kohanából Ruby on Rails alapokra helyezem.

Hozzászólások

Van valami ajanlott konyved ruby on rails total hulyeknek? :)

-------------------------------
“The 0 in Raid 0 stands for how many files you’re going to get back if something goes wrong” :)

Az a konyv egy hulladek. Egy csomo minden nem is ugy van, ahogy o leirja. Mar sajnalom erte a kidobott penzt.
En netes howto-k, leirasok, es az API doksi alapjan tanultam.

Amit rails oldalrol feltetlen meg kell nezni, az a railscasts osszes. De legalabbis a legeleje.
--


()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

Eooo... na most en ugy vettem kezbe, hogy mar ismertem valamennyire a ruby-t. A peldak mukodnek, persze, elevenen egne el szegyeneben egy iro, ha nem mukodnenek a konyvbe leadott peldai. Inkabb a magyarazatok kozt van nagyon sok okorseg, nagyon sokszor lapoztam kettot-harmat.
--


()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.