Zavolat Další kontakty >
E-mail Kontakty

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

I když v jazyce Ruby přímo nevyvíjíte, můžete se občas setkat s nástroji, které jsou v Ruby napsané. V takovém případě určitě pomůže mít základní přehled o ekosystému jazyka, a to nejen při instalaci a konfiguraci. 

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 <version>

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 <package>

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

gem install <package> -v <version>

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 <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 <command>

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 <command> [<arg1> …]

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ě…

Komentáře

Přidat komentář

K článku prozatím nebyly přidány žádné komentáře.