Megosztott kód: GEM

A Ruby közösség rengeteg problémára adott már professzionális megoldást, amit könnyedén hozzáadhatsz a saját programjaidhoz, és ezáltal elkerüld hogy "újra meg újra feltaláld a kereket". Spórolj időt és energiát azáltal, hogy ún. GEM-eket (drágaköveket) töltesz le és használsz. Ezek lényegében régies terminológiával élve program könyvtárak vagy rutin gyűjtemények. Egyes GEM-ek igen nagyok, és kiforrottak, olyan ún. keretrendszereket adnak, amivel például weboldalakat lehet nagyon gyorsan és optimálisan írni. Megint más GEM-ek azt is elérhetővé teszik, hogy az operációs rendszerrel kommunikálva, ablakokat nyithass meg, és azt manipulálhasd. A legtöbb GEM azonban apró, de irtó hasznos kódrészleteket adnak.

Mielőtt nekiállnál a Ruby behatóbb tanulmányozásának, érdemes tisztában lenni a GEM-ek világával.

A telepítés során többek között két nagyon fontos dolog lett felmásolva a gépedre. A ruby.exe a forráskód értelmező, a gem.bat pedig a gem-ek kezelésére szolgál. Mivel a telepítési mappa hozzá lett adva a PATH környezeti változóhoz, így ezeket bármely mappából futtatni tudod egy parancssorban.

GEM-ek letöltéséhez természetesen szükséged lesz internet kapcsolatra!

Az elérhető GEM-eket itt lehet felfedezni és böngészni.

A képeken látható Console2-ről itt olvashatsz bővebben.

Tartalom

Listázástartalom

  • gem list
  • A fenti gem-ek a telepítéssel együtt kerültek a gépedre, és igen hasznos kiegészítők. A teljesség igénye nélkül az alábbi célokra szolgálnak:
    • bigdecimal - precíz - tetszőleges tizedes pontosságú - lebegőpontos számokat tároló objektumot ad
    • json - egy internetes világban gyakran használt ábrázolási módot képes írni/olvasni. A json formátum képes adatokat struktúráltan (mint egy fa) ábrázolni. Használható arra is, hogy egy objektum adott pillanatban lévő állapotát elmentsd, majd később visszatölts (serialisation).
    • minitest - komplett tesztelési keretrendszer. Gondoltad vagy sem, kóddal is lehet kódot tesztelni.
    • psych - a népszerű YAML formátumot tudja írni/olvasni.
    • rake - olyan kódok írására és futtatására alkalmas, amiket időről-időre szeretnél lefuttatni. Általában arra szokták használni, hogy egy projekt fájljait manipulálja, előkészítse, vagy csak egyszerűen elvégezze helyetted azt amit akár kézzel manuálisan szoktál újra meg újra megcsinálni.
    • rdoc - a ruby forráskódokba megjegyzésként beszúrt dokumentációt gyűjti ki, és képes generálni egy HTML (böngészőben megtekinthető) változatot. Ha megosztod a forráskódjaidat, érdemes már a kezdetektől sok-sok rdoc megjegyzéssel ellátni azt (hogy mások is megértsék). Példa egy HTML dokumentációra

Telepítéstartalom

 

  • gem install [név]
  • A fenti példán egy hasznos "bundler" nevű gem-et telepítettünk. Erre a későbbiekben azért lesz szükség, hogy a Ruby programod gem függőségeit tudjuk könnyedén kezelni. A "gem list" újbóli futtatásakor látható, hogy a bundler gem valóban fel lett telepítve.
  • Ha egy gem telepítve van, akkor a ruby forrásaidban már hivatkozhatsz is a benne foglalt dolgokra.

Eltávolítástartalom

 

  • gem uninstall [név]

Súgótartalom

 

  • gem help

GEM Böngészésetartalom

A gem-eket a következő útvonalon tudod böngészni: [telepítési mappa]\lib\ruby\gems\2.3.0\gems

Ha az alapértelmezett helyre telepítetted a ruby-t:

  • Ha belenézel az egyik gem mappájába, láthatod, hogy ott rengeteg különböző fájl van. Az esetek 99%-ban ezek mind szöveges fájltípusok (txt, md, .gitignore, rb, yml stb..), de néhány esetben találhatsz OS specifikus bináris fájlokat is (pl. exe, dll).

Egy fájl tartalmát képtféleképp tudod megtekinteni parancssorból:

  • type [fájlnév]
    • Ilyenkor a tartalom megjelenik a parancssorban.
  • call [fájlnév]
    • Ez olyan hatást vált ki, mintha a windows böngészőben duplán a fájlra kattintanál. Tehát ha van már hozzárendelve program egy formátumhoz akkor a program megnyitja, de ha még nincs a Windows egy felbukkanó ablakon megkér hogy válassz egy alapértelmezett programot a formátumhoz. Nyugodtan válaszd ki a jegyzettömböt, vagy ha mást használsz szerkesztéshez (pl. notepad++) akkor azt.

A Jegyzettömb minden esetben a Windows sorvégződések szerint tördeli a sorokat (CR+LF), de sok gem-et linuxon fejlesztenek (csak LF). Így fordulhat elő, hogy a fájl tartalma egy soron jelenik meg a jegyzettömbben. Használj egy jobb szövegszerkesztőt, vagy konvertáld át a sorvégződéseket ha ragaszkodsz a Jegyzettömbhöz.

Érdemes megjegyezni, hogy a gem-ek tartalmát lehetőleg ne módosítsd, csak böngészd hogy megismerd azokat. Ha úgy érzed egy gem-ben hibát fedeztél fel, de nem osztod vissza a javítást, másoknál nem fog működni a programod. Ilyen esetben dönthetsz úgy is, hogy a programodat gem-ként adod tovább, amiben az általad módosított gem-ek is benne vannak.

GEM készítésetartalom

Szerencsére gem-eket könnyen lehet készíteni, mivel az összes szükséges eszköz azonnal rendelkezésre áll.

Nincs megkötés arra vonatkozóan, hogy a gem-ben milyen mappák és fájlok legyenek, de vannak bizonyos ajánlások amiket érdemes követni. Főleg akkor fontos ezeket betartani, ha később meg akarod osztani a gem-edet a nagyvilággal.

Tehát tételezzük fel, hogy a gem-ed csak a legminimálisabb dolgokat tartalmazza. Ilyenkor így nézhet ki a tartalma:

hello-gem
   ├── hello.gemspec
   └── lib
       └── hello.rb

A .gemspec fájl egy rövid leírása a gem-ednek, de tartalmaz beállításokat is. Ne tévesszen meg a kiterjesztés, ez is ruby forrás:

Gem::Specification.new do |s|
  s.name        = 'hello'
  s.version     = '0.0.0'
  s.date        = '2016-07-20'
  s.summary     = "Hello Világ!"
  s.description = "Egy egyszerű Hello Világ program"
  s.authors     = ["GoobeMaster"]
  s.email       = 'Ez az e-mail cím a spamrobotok elleni védelem alatt áll. Megtekintéséhez engedélyeznie kell a JavaScript használatát.
 '
  s.files       = ["lib/hello.rb"]
  s.homepage    = 'http://www.retro.games.hu/'
  s.license     = 'MIT'
end

Az ajánlásnak megfelelően a programod minden forrása a lib könyvtárban legyen. Természetesen létrehozhatsz alkönyvtárakat is a lib-en belül.

A lib könyvtárban legyen egy ugyanolyan nevű rb forrás ahogy a gem-edet is hívják. Ez fog először lefutni, amikor mások behívják a gem-edet a saját programjukban. Tehát ennek a fájlnak a felelőssége, hogy betöltse a függőségeket, beállítson és elvégezzen mindent hogy a gem-edet használni lehessen.

Ebben a példában a lib\hello.rb tartalma:

class Hello
  def self.hi
    puts "Hello Világ!"
  end
end

A gem elkészítése meglepően könnyű ezek után:

 

  • gem build hello.gemspec

Az eredmény pedig a képen is látható hello-0.0.0.gem

A korábbi Telepítés fejezetben leírtak szerint tudod telepíteni a gem-et. Az egyedüli különbség, hogy abban a mappában kell kiadni a parancsot ahol a .gem fájl is van. Ilyenkor a RubyGems nem az internetről próbálja letölteni az adott nevű gem-et, hanem a te gépedről.

Ha egy valóban komoly projekten dolgozol, és úgy érzed mások is hasznát vehetik, érdemes a teljes projektet a GitHub-on tárolni. Akár a rubygems.org-ra is regisztrálhatsz, hogy hozzáadd a gem-ed elérhetőségét. Ezek után bárki az internetről tudja majd a gem-et telepíteni!

 

Zene

Google keresés

Váltó

Digitális Táregység


Számrendszer

#=

IMDb Keresés

Kód

Karakter

Szín

Szín kódtábla

Webmaster: GoobeMaster
Érvényes XHTML és CSS
Minden jog fenntartva! ® 2010 - 2017
Jogtulajdonos: United Voxels Ltd. (United Kingdom)

Check Google Page Rank

Technikai háttér: