Sådan styres dine Ruby-versioner

Ruby har ændret sig over tid

Ruby har været i konstant udvikling siden 1990'erne. Og ligesom mange sprog har der været syntaksændringer på tværs af versioner. Dette betyder, at det er vigtigt at være klar over, hvilken Ruby-version din kode forventer.

Den mest synlige ændring kom sandsynligvis med Ruby 1.9. Tidligere skrev vi hashes som denne:

 { :one => 1, :two => 2, :three => 3 }

Denne brug af 'hashrocket' operatøren ( =>) var så almindelig, at Ruby 1.9 gav en stenografi:

 { one: 1, two: 2, three: 3 }

Denne ældre kode kører på enhver version, men den nyere syntaks kører kun på Ruby 1.9+.

Hvordan skaber dette problemer?

For eksempel har du muligvis besluttet at bruge en perle, der internt er afhængig af Ruby 1.9-funktioner. Dette betyder, at dit projekt nu også er afhængig af Ruby 1.9-funktioner.

Hvis du ikke angiver, hvilken version af Ruby dit projekt har brug for, kan det være meget forvirrende, når kode fungerer på en maskine, men ikke en anden.

Som med de fleste sprog betragtes det som god praksis at specificere den version af Ruby, som din kode forventer. Dette gør det meget nemmere at administrere flere projekter på din udviklingsmaskine, der hver forventer en anden version af Ruby.

Hvordan specificerer jeg min Ruby-version?

Der er et par værktøjer, der er populære til dette, men begge er enige om at dele en fælles fil. Mange Ruby-projekter (eller Rails) inkluderer en simpel .ruby-versionfil, der simpelthen angiver et versionsnummer, for eksempel:

2.4.2

Populære værktøjer til at hjælpe dig med at styre din Ruby-version er:

  • Ruby Version Manager (RVM)
  • rbenv

Lad os se på RVM.

Brug af RVM

RVM er typisk installeret (link) på en Linux-, Unix- eller MacOS-maskine. Det er meget praktisk, fordi det kroge ind i cd( cSvejsning directory) kommando. Så når du flytter til et nyt projekt, .ruby-versionlæses din automatisk, og du skifter automatisk til den korrekte version af Ruby, før du begynder at arbejde.

For eksempel kan du have denne sekvens:

% cd ~/projects/older-project % ruby --version ruby 2.3.5p376 (2017-09-14 revision 59905) [x86_64-darwin16] % cd ~/projects/newer-project % ruby --version ruby 2.4.2p198 (2017-09-14 revision 59899) [x86_64-darwin16]

(Disse eksempler er fra en MacOS-maskine).

Andre oplysninger om Ruby:

  • En introduktion til objektorienteret programmering med Ruby
  • Mest almindelige Ruby array-metoder, du bør kende