Vad är en ädelsten? – RubyGems Guides
On oktober 24, 2021 by adminUppklarar mysteriet bakom vad som finns i en RubyGem.
Strukturen för en gem
Varje gem har ett namn, en version och en plattform. Till exempel har theerake gem en 0.8.7
version (från maj,2009). Rakes plattform är ruby
, vilket innebär att den fungerar på alla plattformar som Rubyruns på.
Plattformar är baserade på CPU-arkitektur, operativsystemtyp och ibland operativsystemversionen. Exempel är ”x86-mingw32” eller ”java”. Plattformen anger att pärlan endast fungerar med en ruby som är byggd för samma plattform. RubyGems hämtar automatiskt rätt version för din plattform. Se gem help platform
för fullständig information.
Inom gems finns följande komponenter:
- Kod (inklusive tester och stödjande verktyg)
- Dokumentation
- gemspec
Varje gem följer samma standardstruktur för kodorganisation:
% tree freewillfreewill/├── bin/│ └── freewill├── lib/│ └── freewill.rb├── test/│ └── test_freewill.rb├── README├── Rakefile└── freewill.gemspec
Här kan du se de viktigaste komponenterna i en gem:
- Katalogen
lib
innehåller koden för gemen - Katalogen
test
ellerspec
innehåller tester, beroende på vilken testram som utvecklaren använder - En gem har vanligtvis en
Rakefile
, som rakeprogrammet använder för att automatisera tester, generera kod och utföra andra uppgifter. - Denna gem innehåller också en körbar fil i katalogen
bin
, som laddas in i användarensPATH
när gemen installeras. - Dokumentation ingår vanligtvis i
README
och inline med koden.När du installerar en gem genereras dokumentationen automatiskt åt dig.De flesta gems innehåller RDoc-dokumentation, men vissa använder YARD-dokumentation istället. - Den sista biten är gemspec, som innehåller information om gemen.Gemens filer, testinformation, plattform, versionsnummer med mera finns här tillsammans med författarens e-postadress och namn.
Mer information om gemspec-filen
Bygg din egen gem
Gemspec
Gemspec specificerar information om en gem, till exempel dess namn, version, beskrivning, författare och hemsida.
Här är ett exempel på en gemspec-fil. Du kan läsa mer i how to make 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
Lämna ett svar