Ekosystém Ruby: přehled nástrojů

✍️ Jan Smitka
📅 27. 11. 2014

Interpret Ruby

Existuje několik implementací jazyka Ruby. Zmíním dvě, které jsou pravděpodobně nejznámější:

  • MRI (CRuby) – Matz's Ruby Interpreter, referenční implementace v jazyce C od původního autora Yukihiro Matsumoto (Matz).
  • JRuby – implementace v jazyce Java, která při běhu využívá Java Virtual Machine.

Každý interpret se liší výkonem, spotřebou paměti a nereferenční interpreti také nemusí odpovídat nejnovější specifikaci jazyka.

RVM: Ruby Version Manager

RVM je nástroj, který z příkazové řádky umožňuje snadno instalovat různé verze Ruby a přepínat mezi nimi.

Na unixových systémech lze nainstalovat následujícím příkazem:

curl -sSL https://get.rvm.io | bash -s stable

Nástroj je možné provozovat i pod Windows, je však nutné použít Cygwin. Návod je popsaný v článku Installing RVM With Cygwin on Windows.

Po instalaci lze snadno zobrazit seznam všech verzí Ruby, které je možné nainstalovat:

rvm list known

Konkrétní verzi nainstalujeme příkazem:

rvm install 

Verzí můžeme nainstalovat více a přepínat mezi nimi:

rvm install 2.0
rvm install 2.1
rvm use 2.0 --default

Flag --default říká, že má být daná verze nastavená jako výchozí i pro příští přihlášení nebo nový shell.

RubyGems

Správce balíčků, který je od verze 1.9 dodáván jako součást standardní knihovny. Jednotlivým balíčkům se říká gem, a ke správě se používá stejnojmenný příkaz. Balíčky je možné vyhledávat na http://rubygems.org/

Instalace balíčku:

gem install 

Instalace balíčku v konkrétní verzi:

gem install  -v 

Výpis aktuálně nainstalovaných balíčků, včetně jejich verzí:

gem list --local

Bundler

Bundler je nadstavba nad RubyGems, která dokáže spravovat závislosti pro jednotlivé aplikace. Pravidla pro závislosti se píší do souboru Gemfile, po instalaci se do Gemfile.lock zapíší konkrétní nainstalované verze.

Soubor může vypadat následovně:

source 'https://rubygems.org'

gem 'capistrano', '~> 3.2.1'
gem 'capistrano-composer'

Řádek source … definuje zdroj, ze kterého mají být stahovány závislosti. Zdrojů je možno nadefinovat více. Řádky gem definují závislosti aplikace. První parametr je název balíčku, volitelný druhý parametr specifikuje verzi. Je možno používat běžné operátory, např. >= 2.1, nebo = 2.1.1. Operátor ~> má speciální význam: poslední část uvedené verze se může libovolně změnit směrem nahoru, předchozí ale nikoliv. ~> 3.2.1 tedy znamená verzi větší nebo rovnou 3.2.1, ale menší než 3.3.

U závislostí je možné definovat i další podmínky, za kterých se bude gem instalovat. Lze například závislost omezit pouze na interpret JRuby. Také je možné závislosti dělit do skupin, které je možné při instalaci vypnout či zapnout. Snadno tak lze nástroje pro testování aplikace instalovat pouze ve vývojovém prostředí a na produkční server je neinstalovat. Více informací o souborech Gemfile naleznete v dokumentaci k Bundleru na stránce věnované Gemfiles.

Závislosti nainstalujeme příkazem

bundle install

Příští spuštění příkazu install nainstaluje verze uvedené v Gemfile.lock, pokud chceme závislosti aktualizovat, musíme použít příkaz

bundle update

Bundler instaluje závislosti systémově, nebo můžeme parametrem --path určit cestu, kam mají být nainstalovány. Pokud mají aplikace jeden balíček v různých verzích, jsou nainstalovány všechny.

Pokud máte takto nainstalováno více verzí balíčku, který obsahuje nástroje pro příkazovou řádku (např. capistrano z příkladu obsahuje nástroj cap), zajistíme spuštění správného z nich příkazem

bundle exec 

Například:

bundle exec cap deploy

Rake

Rake je, dle oficiálního popisu, make pro jazyk ruby. Jedná se o nástroj pro správu a spouštění úloh z příkazové řádky. Typickou úlohou může být například migrace databáze, nebo spuštění HTTP serveru s aplikací.

Dostupné příkazy se definují přímo v aplikaci v souboru Rakefile, případně rakefile, Rakefile.rb, nebo rakefile.rb. Jejich seznam můžeme vypsat příkazem

rake -T

Nebo pokud používáme Bundler:

bundle exec rake -T

Konkrétní příkaz pak spustíme pomocí

rake  [ …]

Závěr

Článek přiblížil nejpoužívanější nástroje z ekosystému jazyka Ruby. Existuje celá řada dalších nástrojů, například RSpec pro testování, interaktivní shell IRB, nebo Capistrano pro deployment aplikací. Capistrano lze s úspěchem použít i na webové aplikace v libovolném jiném jazyce, proto se na něj podíváme blíž. Ale to až někdy příště…

Štítky: 

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *


Lynt services s.r.o

Již 12 let vytváříme efektivnější kampaně, zrychlujeme weby a řešíme jejich bezpečnost. Kombinujeme marketing, vývoj a automatizaci.
poptávka služeb