Ruby voor nieuwkomers werken met edelstenen

Ruby is een van de populairste talen die op internet wordt gebruikt. We zijn hier een nieuwe sessie gestart op Nettuts + die u Ruby zal voorstellen, evenals de geweldige frameworks en tools die horen bij de ontwikkeling van Ruby. Vandaag zullen we kijken naar het geweldige verpakkingssysteem dat Ruby biedt voor het verspreiden van programma's en bibliotheken: edelstenen.


Bekijk Screencast

Stap 1: Wat zijn edelstenen?

Het is eigenlijk vrij eenvoudig. Je kunt een Ruby Gem zien als een bibliotheek of plug-in. Het is een aantal functies die u zult installeren om aan een specifieke behoefte te voldoen. Als dat vaag klinkt, zijn hier enkele praktische problemen die edelstenen oplossen:

  • Moet communiceren met Amazon S3?
  • Wilt u een snel en gemakkelijk REST-framework??
  • Moet e-mails verzenden?
  • Wil je een webserver opzetten??
  • Noodzaak van een testraamwerk (of drie)?
  • Wilt u Markdown naar HTML converteren??

Dat zijn maar een paar dingen die je met edelstenen kunt doen.

Kortom, daar is een edelsteen voor.


Span 2: Installatie van de RubyGems-bibliotheek

Voordat we edelstenen kunnen installeren en gebruiken, moeten we de RubyGems-bibliotheek installeren. Natuurlijk moet je Ruby eerst geïnstalleerd hebben, maar dat zou je nu wel moeten hebben.

Als je Ruby 1.9. * Gebruikt (wat we in deze serie gebruiken), dan hoef je je geen zorgen te maken over het installeren van RubyGems; het is ingebouwd. Als je hebt besloten om met Ruby 1.8. * te blijven, is het niet al te moeilijk om te installeren. Ga gewoon naar de downloadpagina van RubyGems, download de TAR of ZIP, open het en voer het uit ruby setup.rb in de terminal vanuit die map. Mogelijk hebt u beheerdersrechten nodig om dit te doen (sudo op Unix-systemen start u de opdrachtregel met "Uitvoeren als beheerder" op Windows). Dat brengt u aan de gang.

Als je denkt dat je RubyGems misschien al hebt geïnstalleerd, start dan gem -v om het versienummer te krijgen. De nieuwste versie is 1.6.2. Als u wilt upgraden, voert u uit edelsteen update - systeem. Nogmaals, misschien heb je beheerdersrechten nodig. Ik moet vermelden dat als je op Windows werkt en Ruby via RubyInstaller hebt geïnstalleerd, je RubyGems wel hebt geïnstalleerd.


Stap 3: Een edelsteen installeren

Dus nu je de RubyGems-bibliotheek hebt geïnstalleerd, kun je deze gebruiken om alle edelstenen te installeren die je wilt. Hoe doe je dit? Nogmaals, het is vrij eenvoudig. Het moeilijkste is het vinden van de edelsteen die je wilt gebruiken; vaak kunt u alleen googlen voor welke functionaliteit u ook zoekt. Zodra je het juweeltje hebt gevonden, installeer je het als volgt:

gem installeert GEM_NAME

Het is echter belangrijk om aandacht te besteden aan de documentatie voor de edelsteen. Er kunnen enkele argumenten zijn die u aan die opdracht moet toevoegen; In de meeste gevallen moet u dit echter wel oplossen.

Nog een opmerking over het installeren van edelstenen: misschien merk je dat de documentatie van een edelsteen je vertelt om te gebruiken sudo bij het installeren. Als je op een Mac werkt en RVM gebruikt (zoals je zou moeten zijn :)), ga je gewoon weg sudo uit. Als u het gebruikt, wordt het juweel voor alle gebruikers op de computer geïnstalleerd en kan het problemen veroorzaken met de meerdere Ruby-omgevingen die u mogelijk met RVM heeft.

Terwijl we doorgaan in deze serie, gebruiken we verschillende Ruby-edelstenen, zodat je kunt zien hoe ze zullen werken in een "echt" project. Als je nu een paar wilt proberen te installeren, probeer dan de Markdown (maruku) edelsteen of de Amazon S3 (aws-s3) edelsteen.

gem installeer maruku gem installeer aws-s3

Stap 4: edelstenen gebruiken

Dus je hebt je edelstenen geïnstalleerd; wat nu? Wel, gebruik ze natuurlijk! Er zijn twee manieren om edelstenen te gebruiken. Sommige zijn op zichzelf staande ruby-programma's die u zult uitvoeren (meestal vanaf de opdrachtregel) om iets te doen. De Rails-edelsteen is daar een goed voorbeeld van. Jij rent rails nieuwe PROJECT_NAME vanaf de opdrachtregel om een ​​nieuw railsproject te genereren; dan gebruik je het op andere momenten om modellen, controllers, etc. te genereren. Dan zijn er edelstenen die je alleen zult gebruiken vanuit je eigen projecten, zoals de Amazon S3-edelsteen. Het is niet veel goed op zichzelf, maar het is behoorlijk nuttig in combinatie met je code. Als u een edelsteen uit uw code wilt gebruiken, moet u deze eerst opgeven. Dit gebeurt meestal bovenaan het bestand.

vereisen 'rubygems' # alleen nodig op Ruby 1.8 vereisen 'aws / s3' # de S3 edelsteen

Ik geloof niet dat we het hebben besproken vereisen voor; Ruby laadt niet alles standaard, dus je kunt gebruiken vereisen om extra bibliotheken te laden die u wilt gebruiken. We zullen hier meer van zien als we verder gaan.

Eindelijk, sommige edelstenen doen beide. De maruku-edelsteen converteert Markdown naar HTML. Ik gebruik het altijd vanaf de opdrachtregel:

maruku doc.markdown

Het zal het Markdown-document naar HTML converteren. U kunt het echter ook vanuit uw code gebruiken:

vereisen 'maruku' str = "#Dit is een titel \ n \ n * enkele \ n * lijst \ n * items" md = Maruku.new (str) md.to_html_document

Stap 5: Bundler gebruiken

Zodra u een project hebt gebouwd, wilt u het wellicht delen of op een andere computer gebruiken. Echter, voor iedereen die het beheert, moeten alle juiste edelstenen geïnstalleerd zijn. Nu kunt u het installatieproces eenvoudig uitvoeren met een project genaamd Bundler. Er is veel wat Bundler kan doen, maar we zullen het oppervlak nu net schrapen.

Allereerst is Bundler een juweel zelf; je kunt het installeren door het uit te voeren gem installeer bundler.

Maak vervolgens een bestand met de naam in de hoofdmap van uw project Gemfile. Dit zal aangeven welke edelstenen je nodig hebt voor dit project.

De eerste regel (s) van je Gemfile zullen Bundler vertellen waar je je edelstenen kunt krijgen. Edelstenen leven in online repositories, dus het zal moeten weten waar ze te krijgen zijn. Meestal zal alleen het gebruik van rubygems.org als uw bron voldoende zijn, maar u kunt meerdere bronnen hebben als u dat wilt.

bron "http; // rubygems.org"

Vermeld dan gewoon uw edelstenen als volgt:

gem "rails", "3.0.1" gem "maruku" gem "aws-s3",: require => "aws / s3"

Merk op dat we kunnen zeggen welke versie van een edelsteen we nodig hebben als we een specifieke versie nodig hebben. Let ook op de hash (we zijn van de haakjes af gelaten omdat we in dit geval kunnen) op het derde juweel. Dit vertelt Bundler hoe we dit moeten doen vereisen de edelsteen. Dit is alleen nodig als twee dingen waar zijn: 1) een edelsteen is vereist met een andere naam dan de naam waarmee het is geïnstalleerd, en 2) we gebruiken Bundler om de edelstenen te vereisen.

Als je veel edelstenen hebt, kun je Bundler gebruiken om ze allemaal in je code op te nemen. Doe dit gewoon:

vereist 'bundler / setup' Bundler.require (: standaard)

Dit zal al die edelstenen laden. Dit is natuurlijk veel nuttiger wanneer u enkele van de geavanceerde configuraties van Bundler gebruikt.


Conclusie: Binnenkort beschikbaar?

De laatste keer vroeg ik je lezers / kijkers wat je het volgende wilt zien. Je hebt duidelijk gezegd? Webdingen !? Volgende les, we gaan door met het eenvoudige raamwerk Sinatra om een ​​website te bouwen. Tot dan!