60 lines
3.2 KiB
Markdown
60 lines
3.2 KiB
Markdown
---
|
||
title: Managing Ruby versions
|
||
localeTitle: إدارة إصدارات روبي
|
||
---
|
||
## تغير روبي بمرور الوقت
|
||
|
||
كانت روبي في تطور مستمر منذ 1990s ، ومثل العديد من اللغات ، كانت هناك تغييرات في بناء الجملة عبر الإصدارات ، لذا من المهم أن تكون واضحًا حول إصدار روبي الذي تتوقعه شفرتك.
|
||
|
||
ربما كان التغيير الأكثر وضوحا مع روبي 1.9. سابقا ، كتبنا يغسل مثل هذا:
|
||
|
||
` { :one => 1, :two => 2, :three => 3 }
|
||
`
|
||
|
||
هذا الاستخدام لمشغل 'hashrocket' ( `=>` ) كان شائعا جدا ، أن Ruby 1.9 قدم اختصارًا:
|
||
|
||
` { one: 1, two: 2, three: 3 }
|
||
`
|
||
|
||
تعمل هذه التعليمة البرمجية القديمة على أي إصدار ، ولكن سيتم تشغيل الجملة الأحدث فقط على روبي 1.9+.
|
||
|
||
## كيف يسبب هذا المشاكل؟
|
||
|
||
على سبيل المثال ، قد تكون قررت استخدام Gem الذي يعتمد داخليًا عليه ميزات روبي 1.9 هذا يعني أن مشروعك الآن يعتمد أيضًا على روبي 1.9 الميزات.
|
||
|
||
إذا لم تحدد إصدار روبي الذي تحتاجه للمشروع ، فيمكن أن يكون الأمر كذلك مربكة عندما يعمل الكود على جهاز واحد ، ولكن ليس آخر.
|
||
|
||
كما هو الحال مع معظم اللغات ، يعتبر من الممارسات الجيدة تحديد إصدار روبي التي يتوقعها رمزك. هذا يجعل الأمر أسهل بكثير لإدارة متعددة مشاريع على جهاز التنمية الخاص بك ، كل توقع إصدار مختلف من روبي.
|
||
|
||
## كيف يمكنني تحديد إصدار روبي؟
|
||
|
||
هناك نوعان من الأدوات التي تحظى بشعبية كبيرة ، لكن كلاهما وافق على ذلك مشاركة ملف مشترك. العديد من مشاريع Ruby (أو Rails) ستشمل بسيطة ملف `.ruby-version` ، الذي يحدد ببساطة رقم إصدار ، على _سبيل المثال_ :
|
||
|
||
`2.4.2
|
||
`
|
||
|
||
الأدوات الشائعة لمساعدتك في إدارة إصدار روبي هي:
|
||
|
||
* [روبي إصدار مدير (RVM)](https://rvm.io)
|
||
* [rbenv](https://github.com/rbenv/rbenv)
|
||
|
||
دعونا ننظر في RVM.
|
||
|
||
### باستخدام RVM
|
||
|
||
عادةً ما يتم تثبيت RVM ( [رابط](https://rvm.io) ) على Linux أو Unix أو MacOS الجهاز ، ومريحة للغاية لأنه خطاف في `cd` ( `c` hange `d` irectory) الأمر عند الانتقال إلى مشروع جديد ، تتم قراءة `.ruby-version` الخاص بك تلقائيا ، وأنت تحول تلقائيا إلى الإصدار الصحيح من روبي قبل البدء في العمل.
|
||
|
||
على سبيل المثال ، قد يكون لديك هذا التسلسل:
|
||
|
||
`% 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]
|
||
`
|
||
|
||
(هذه الأمثلة من جهاز MacOS) |