Sök…


Anmärkningar

Gemfile-dokumentation

För projekt som förväntas växa är det bra att lägga till kommentarer på din Gemfile . På det sättet, även i stora inställningar, kommer du fortfarande att veta vad varje pärla gör även om namnet inte är självförklarande och du lagt till det för två år sedan.

Detta kan också hjälpa dig att komma ihåg varför du valde en viss version och följaktligen utvärdera versionskravet senare.

Exempel:

# temporary downgrade for TeamCity
gem 'rake', '~> 10.5.0'
# To upload invoicing information to payment provider
gem 'net-sftp'

Vad är en pärla?

En pärla motsvarar ett plugin eller ett tillägg för programmeringsspråket rubin.

Att vara exakt jämna räls är inget annat än en pärla. Många ädelstenar är byggda på skenor eller andra ädelstenar (de är beroende av nämnda pärla) eller är fristående.

I ditt Rails-projekt

Gemfile

För ditt Rails-projekt har du en fil som heter Gemfile . Här kan du lägga till ädelstenar du vill inkludera och använda i ditt projekt. När du har lagt till måste du installera pärla med hjälp av bundler (se avsnittet Bundler).

Gemfile.lock

När du har gjort detta kommer din Gemfile.lock att uppdateras med dina nyligen tillagda ädelstenar och deras beroenden. Den här filen låser dina använda ädelstenar så att de använder den specifika versionen som deklareras i den filen.

GEM
remote: https://rubygems.org/
specs:
devise (4.0.3)
bcrypt (~> 3.0)
orm_adapter (~> 0.1)
railties (>= 4.1.0, < 5.1)
responders
warden (~> 1.2.3)

Detta exempel är för pärla devise . I Gemfile.lock version 4.0.3 för att berätta när du installerar ditt projekt på en annan maskin eller på din produktionsserver vilken specifik version som ska användas.

Utveckling

Antingen en enda person, en grupp eller en hel gemenskap arbetar med och upprätthåller en pärla. Arbetet släpps vanligtvis efter att vissa issues har åtgärdats eller features har lagts till.

Vanligtvis följer utgåvorna Semantic Versioning 2.0.0- principen.

Bundler

Det enklaste sättet att hantera och hantera ädelstenar är att använda bundler . Bundler är en paketansvarig som kan jämföras med bower.

För att använda paketet måste du först installera det.

gem install bundler

När du har bundler upp och kör allt du behöver göra är att lägga till ädelstenar till din Gemfile och springa

bundle

i din terminal. Detta installerar dina nyligen tillagda ädelstenar till ditt projekt. Om ett problem skulle uppstå, skulle du få en snabbmeddelande i din terminal.

Om du är intresserad av mer information föreslår jag att du tittar på dokumenten .

Gemfiles

För att starta kräver gemfiles minst en källa, i form av webbadressen för en RubyGems-server.

Generera en Gemfile med standardkällan rubygems.org genom att köra bundle init . Använd https så att din anslutning till servern verifieras med SSL.

source 'https://rubygems.org'

Förklara därefter de ädelstenar du behöver, inklusive versionnummer.

gem 'rails', '4.2.6'
gem 'rack',  '>=1.1'
gem 'puma',  '~>3.0'

De flesta versionspecifikationer, som> = 1.0, är självförklarande. Specifikatorn ~> har en speciell betydelse. ~> 2.0.3 är identisk med> = 2.0.3 och <2.1. ~> 2.1 är identisk med> = 2.1 och <3.0. ~> 2.2.beta kommer att matcha förversionsversioner som 2.2.beta.12.

Gitförvar är också giltiga juvelkällor, så länge repoen innehåller en eller flera giltiga ädelstenar. Ange vad du ska kolla in med :tag :branch eller :ref . Standard är master gren.

gem 'nokogiri', :git => 'https://github.com/sparklemotion/nokogiri', :branch => 'master'

Om du vill använda en opackad pärla direkt från filsystemet ställer du helt enkelt in alternativet: sökväg till sökvägen som innehåller pärlens filer.

gem 'extracted_library', :path => './vendor/extracted_library'

Beroende kan placeras i grupper. Grupper kan ignoreras vid installationstiden (med - --without ) eller krävs samtidigt (med Bundler.require ).

gem 'rails_12factor', group: :production

group :development, :test do
  gem 'byebug'
  gem 'web-console', '~> 2.0'
  gem 'spring'
  gem 'dotenv-rails'
end

Du kan ange önskad version av Ruby i Gemfile med ruby . Om Gemfile laddas på en annan Ruby-version kommer Bundler att göra ett undantag med en förklaring.

ruby '2.3.1'

Gemsets

Om du använder RVM(Ruby Version Manager) är det bra att använda en gemset för varje projekt. En gemset är bara en behållare du kan använda för att hålla ädelstenar åtskilda från varandra. gemset skapa en gemset per projekt kan du ändra ädelstenar (och pärlemorfärsversioner) för ett projekt utan att bryta alla andra projekt. Varje projekt behöver bara oroa sig för sina egna ädelstenar.

RVM tillhandahåller (> = 0,1,8) en @global gemset per rubin tolk. Ädelstenar som du installerar på @global gemset för en given rubin är tillgängliga för alla andra ädelstenar du skapar i samband med den rubinen. Detta är ett bra sätt att låta alla dina projekt dela samma installerade pärla för en specifik rubin-tolkinstallation.

Skapa pärlor

Anta att du redan har ruby-2.3.1 installerat och du har valt det med det här kommandot:

rvm use ruby-2.3.1

Nu för att skapa gemset för denna rubinversion:

rvm gemset create new_gemset

där new_gemset är namnet på gemset. För att se listan över tillgängliga pärlor för en rubinversion:

rvm gemset list

för att lista ädelstenar i alla rubinversioner:

rvm gemset list_all

att använda en gemset från listan (antag att new_gemset är det gemset jag vill använda):

rvm gemset use new_gemset

Du kan också ange rubinversionen med gemset om du vill växla till någon annan rubinversion:

rvm use ruby-2.1.1@new_gemset

för att ange ett standard-gemset för en viss rubinversion:

rvm use 2.1.1@new_gemset --default

för att ta bort alla installerade ädelstenar från en gemset kan du tömma det genom:

rvm gemset empty new_gemset

för att kopiera en gemset från en rubin till en annan kan du göra det genom att:

rvm gemset copy 2.1.1@rails4 2.1.2@rails4

för att ta bort ett gemset:

rvm gemset delete new_gemset

för att se det aktuella gemset-namnet:

rvm gemset name

för att installera en pärla i det globala gemset:

rvm @global do gem install ...

Initiera Gemsets under Ruby Installs

När du installerar en ny rubin skapar RVM inte bara två ädelstenar (standard, tomt gemset och det globala gemset), det använder också en uppsättning användarredigerbara filer för att avgöra vilka ädelstenar som ska installeras.

Arbetar i ~/.rvm/gemsets , rvm söker efter global.gems och default.gems hjälp av en träd-hierachy baserad på rubinsträngen som installeras. Med exemplet med ree-1.8.7-p2010.02 kommer rvm att kontrollera (och importera från) följande filer:

~/.rvm/gemsets/ree/1.8.7/p2010.02/global.gems
~/.rvm/gemsets/ree/1.8.7/p2010.02/default.gems
~/.rvm/gemsets/ree/1.8.7/global.gems
~/.rvm/gemsets/ree/1.8.7/default.gems
~/.rvm/gemsets/ree/global.gems
~/.rvm/gemsets/ree/default.gems
~/.rvm/gemsets/global.gems
~/.rvm/gemsets/default.gems

Om du till exempel redigerade ~/.rvm/gemsets/global.gems genom att lägga till dessa två rader:

bundler
awesome_print

varje gång du installerar en ny rubin, installeras dessa två ädelstenar i din globala gemset. default.gems och global.gems filer skrivs vanligtvis under uppdatering av rvm.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow