Co je to drahokam? – Průvodce RubyGemy
On 24 října, 2021 by adminOdhalte tajemství, co se skrývá v RubyGemu.
Struktura gemu
Každý gem má své jméno, verzi a platformu. Například gem therake má verzi 0.8.7
(z května,2009). Platforma kemu Rake je ruby
, což znamená, že funguje na jakékoli platformě, na které funguje Rubyruns.
Platformy jsou založeny na architektuře procesoru, typu operačního systému a někdy i na verzi operačního systému. Příkladem může být „x86-mingw32“ nebo „java“. Platforma označuje, že gem funguje pouze s ruby vytvořeným pro stejnou platformu. RubyGems automaticky stáhne správnou verzi pro vaši platformu. Podrobné informace naleznete v části gem help platform
.
Uvnitř gemů jsou následující součásti:
- Kód (včetně testů a podpůrných utilit)
- Dokumentace
- gemspec
Každý gem se řídí stejnou standardní strukturou organizace kódu:
% tree freewillfreewill/├── bin/│ └── freewill├── lib/│ └── freewill.rb├── test/│ └── test_freewill.rb├── README├── Rakefile└── freewill.gemspec
Zde můžete vidět hlavní součásti gemu:
- Adresář
lib
obsahuje kód gemu - Adresář
test
nebospec
obsahuje testy, podle toho, který testovací framework vývojář používá - Gem má obvykle adresář
Rakefile
, který programake používá k automatizaci testů,generování kódu a provádění dalších úloh. - Tento gem také obsahuje spustitelný soubor v adresáři
bin
, který se po instalaci gemu načte do uživatelovaPATH
. - Dokumentace je obvykle obsažena v
README
a inline s kódem. při instalaci gemu je dokumentace generována automaticky za vás. většina gemů obsahuje dokumentaci RDoc, ale některé místo toho používají dokumentaci YARD. - Závěrečnou částí je gemspec, který obsahuje informace o gemu.Jsou zde uvedeny soubory gemu, informace o testování, platforma, číslo verze a další informace spolu s e-mailem a jménem autora.
Další informace o souboru gemspec
Vytvoření vlastního gemu
Gemspec
Gemspec specifikuje informace o gemu, jako je jeho název, verze,popis, autoři a domovská stránka.
Tady je příklad souboru gemspec. Více se dozvíte v článku Jak vytvořit agem.
% cat freewill.gemspecGem::Specification.new do |s| s.name = 'freewill' s.version = '1.0.0' s.summary = "Freewill!" s.description = "I will choose Freewill!" s.authors = s.email = '[email protected]' s.homepage = 'http://example.com/freewill' s.files = end
.
Napsat komentář