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ář
libobsahuje kód gemu - Adresář
testnebospecobsahuje 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
READMEa 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ář