Ruby är ett av de mest populära språk som används på webben. Vi har startat en ny session här på Nettuts + som kommer att introducera dig till Ruby, liksom de stora ramarna och verktygen som följer med Ruby-utvecklingen. Idag ser vi på det fantastiska förpackningssystemet som Ruby tillhandahåller för att distribuera program och bibliotek: Gems.
Det är ganska enkelt, verkligen. Du kan tänka dig en Ruby Gem som bibliotek eller plugin. Det är en del funktioner som du installerar för att fylla ett specifikt behov. Om det låter vagt, här är några praktiska problem som ädelstenar löser:
Det är bara några av de saker du kan göra med ädelstenar.
Kort sagt, det finns en pärla för det.
Innan vi kan installera och använda ädelstenar måste vi installera RubyGems biblioteket. Självklart behöver du Ruby installeras först, men du borde ha det nu.
Om du är på Ruby 1.9. * (Vad vi använder i den här serien), behöver du inte oroa dig för att installera RubyGems; den är inbyggd. Om du har bestämt dig för att hålla fast vid Ruby 1.8. *, är det inte för svårt att installera. Bara gå över till RubyGems nedladdningssida, ladda ner TAR eller ZIP, öppna den och kör rubin setup.rb
i terminalen från den mappen kan du behöva administratörsbehörighet att göra detta (sudo
På unix-system startar du kommandoraden med "Kör som administratör" på Windows). Det får dig igång.
Om du tror att du kanske redan har RubyGems installerat kör du gem -v
för att få versionsnumret. Den senaste versionen är 1.6.2. Om du vill uppgradera kör du pärla uppdatering - system
. Återigen kan du behöva administratörsbehörigheter. Jag bör nämna att om du är på Windows och installerat Ruby via RubyInstaller, har du RubyGems installerat.
Så nu när du har installerat RubyGems-biblioteket kan du använda det för att installera alla gems du vill ha. Hur gör du det här? Återigen är det ganska enkelt. Den svåra delen är att hitta den pärla du skulle vilja använda; ofta kan du bara google för vilken funktionalitet du letar efter. När du har hittat pärlan, installera den så här:
geminstallationen GEM_NAME
Det är viktigt att vara uppmärksam på dokumentationen för pärlan. Det kan finnas några argument du borde lägga till i det kommandot. Men i de flesta fall borde det ta dig igenom.
Ytterligare en anteckning om att installera ädelstenar: Du kanske märker att en ädelstenas dokumentation säger att du ska använda sudo
när du installerar den. Om du är på en Mac och använder RVM (som du borde vara :)), lämna bara sudo
av. Använda den installerar pärlan för alla användare på datorn, och det kan orsaka problem med de flera Ruby-miljöerna du kanske har med RVM.
När vi fortsätter i denna serie använder vi flera Ruby-ädelstenar, så du får se hur de ska fungera i ett "riktigt" projekt. Om du vill försöka installera några nu, försök med Markdown (maruku) pärla eller Amazon S3 (aws-s3) pärla.
pärla installera maruku pärla installera aws-s3
Så, du har dina juveler installerade; vad nu? Tja, använd dem självklart! Det finns två sätt att använda pärlor. Vissa är fristående rubinprogram som du kör (oftast från kommandoraden) för att göra något. Rails-pärlan är ett bra exempel på detta. Du springer skenar ny PROJECT_NAME
från kommandoraden för att skapa ett nytt railsprojekt; då använder du det vid andra tillfällen för att generera modeller, controllers etc. Därefter finns det ädelstenar som du bara använder från egna projekt, som Amazon S3-pärlan. Det är inte mycket bra på egen hand, men det är ganska användbart i samband med din kod. Om du vill använda en pärla från din kod måste du först kräva det. Detta görs vanligen högst upp i filen.
kräver "rubygems" # bara nödvändigt på Ruby 1.8 kräver "aws / s3" # S3-pärlan
Jag tror inte att vi har diskuterat fordra
innan; Ruby laddar inte allt som standard, så du kan använda fordra
att ladda extra bibliotek du vill använda. Vi får se mer av detta när vi fortsätter.
Slutligen gör några pärlor båda. Den maruku pärla kommer att konvertera Markdown till HTML. Jag använder den från kommandoraden hela tiden:
maruku doc.markdown
Det kommer att konvertera Markdown-dokumentet till HTML. Du kan dock också använda den från din kod:
kräva 'maruku' str = "#Detta är en titel \ n \ n * några \ n * lista \ n * objekt" md = Maruku.new (str) md.to_html_document
När du väl har byggt upp ett projekt kanske du vill dela det eller använda det på en annan dator. Men någon annan som kör det kommer att behöva ha alla rätt pärlor installerade. Nu kan du göra processen att installera dem enkelt med ett projekt som heter Bundler. Det finns mycket Bundler kan göra, men vi ska bara skrapa ytan just nu.
Först av allt är Bundler en pärla själv; du kan installera den genom att köra geminstallationsbuntaren
.
Sedan skapar du en fil med namnet i roten på ditt projekt Gemfile
. Detta kommer att deklarera vilka pärlor du behöver för detta projekt.
Den första raden av din Gemfile kommer att berätta för Bundler var du ska få dina pärlor. Gems bor i online-förvar, så det måste veta var de ska få dem. För det mesta använder du bara rubygems.org som din källa, men du kan ha flera källor om du vill.
källa "http; // rubygems.org"
Lägg sedan bara upp dina pärlor så här:
pärla "skenor", "3.0.1" pärla "maruku" pärla "aws-s3",: kräver => "aws / s3"
Observera att vi kan säga vilken version av en pärla vi behöver om vi behöver en specifik version. Notera också hash (vi har avstått från parentesen eftersom vi kan i det här fallet) på den tredje pärlan. Detta berättar Bundler hur vi behöver fordra
pärlan. Detta är bara nödvändigt om två saker är sanna: 1) en pärla krävs med ett annat namn än namnet det är installerat med, och 2) vi använder Bundler för att kräva ädelstenarna.
Om du har många pärlor, kan du använda Bundler för att kräva dem alla i din kod. Gör bara här:
kräver "bundlar / setup" Bundler.require (: default)
Detta kommer att ladda upp alla dessa pärlor. Det här är naturligtvis mycket mer användbart när du använder några av Bundlers avancerade konfigurationer.
Förra gången frågade jag dig läsare / tittare vad du vill se nästa. Du sa tydligt? Webbspår !? Nästa lektion, vi ska gå vidare till att använda den enkla ramen Sinatra för att bygga en webbplats. Tills dess!