Author Topic: RubyGems  (Read 750 times)

Ahmed Youssef

  • Helping Freak
  • Administrator
  • Active Member
  • *****
  • Posts: 242
    • View Profile
    • WWW
    • Email
RubyGems
« on: October 26, 2008, 05:50:03 PM »


 Ruby Gems
 اذا كنت قد اتعاملت مع منصة لينكس فقد استخدمت أداة مشابهه لـ apt-get لتحميل البرامج/المكتبات.
بنفس النظام ال gem هو تطبيق أو مكتبة عمل كحزمة و لكن ليس مثل.deb او .rpm لكن .gem على Ruby Platform جميل جدا
المميزات
   1- امكانية تثبيت/حذف ال Gem Packages
   2- إلغاء مشكلة الاعتماديات
   3- سهولة التحكم في الحزم
   4- الاستعلام/البحث وعرض الحزم المتوفرة
   5- سهولة إنشاء الحزم
   6- سهولة الإطلاع على الوثائق الخاصة بال gemS

التثبيت
   1- قم بالتحميل من الوصلة التالية http://rubyforge.org/frs/?group_id=126
   2- شغل ملف setup.rb كالتالى
Code: [Select]
ruby setup.rb

اكتب

Code: [Select]
gem -v 
او
gem –version
#output:
0.9.4

بهذا ثبت البرنامج.
اعرض ال environment
Code: [Select]
gem environment 

كالتالى
Code: [Select]
C:\Documents and Settings\ahmed>gem environment
RubyGems Environment:
  - VERSION: 0.9.4 (0.9.4)
  - INSTALLATION DIRECTORY: c:/ruby/lib/ruby/gems/1.8
  - GEM PATH:
     - c:/ruby/lib/ruby/gems/1.8
  - REMOTE SOURCES:
     - http://gems.rubyforge.org

اهم الخيارات

 1- install

للقيام بتثبيت gem معين سواء local او remote
Code: [Select]
gem install rake
gem install rails


2- list
لعرض الgems
Code: [Select]
gem list F

عرض الgems  اللى بتبدأ بحرف ال F

3- uninstall
لحذف gem معينة
Code: [Select]
gem uninstall rails 


4- search
للبحث عن gem ما
Code: [Select]
search <gem> --local

استخدام –local فى حال البحث local
Code: [Select]
search <gem> --remote

استخدم –remote للبحث remote
Code: [Select]
search <gem> --both

استخدم –both للبحث local و remote
5- help
للحصول على المساعدة
للحصول على المساعدة بخصوص command معين
Code: [Select]
gem help <command>

لعرض كل الcommands
Code: [Select]
gem help commands

لعرض امثلة على الإستخدام استخدام
Code: [Select]
gem help examples

للتعامل مع الوثائق الخاصة بال gems  شغل ال gem_server كالتالى
Code: [Select]
gem_server


URLShorter
توجد مواقع كثيرة تقدم خدمة تصغير الurl مثل tinyurl على سبيل المثال!
1- قم بتثبيت shorturl  gem كالتالى
Code: [Select]
C:\Documents and Settings\ahmed>gem install shorturl
Successfully installed shorturl-0.8.4
Installing ri documentation for shorturl-0.8.4...
Installing RDoc documentation for shorturl-0.8.4...

2- اعمل import كالتالى
Code: [Select]
require 'shorturl'

3- اختيار السرفس اى موقع اللى عايز تستخدمه لتصغير الurls ؟
اكتب puts ShortURL.valid_services سيعرض لك قائمة بكل المتاح مثلا

Code: [Select]
puts ShortURL.valid_services
مثلا
Code: [Select]
lns
shortify
makeashorterlink
fyad
rubyurl
orz
skinnylink
d62
shorl
tinyurl
moourl

4- استدعى Shorten method كالتالى
Code: [Select]
ShortURL.shorten(link,service)


5- نكتب الكود الخاص بنا بحيث  يكون قابل للاستخدام اكثر من مرة فى class مثلا او Function كالتالى
Code: [Select]
require 'shorturl'

def shortize(url)
  return ShortURL.shorten(url, :tinyurl)
end

puts shortize("www.linuxac.org/forum")

#output: http://tinyurl.com/5rrela


طبعا ستتضح الميزة مع ال URLs الطويلة جدا.
FasterCSV

ال CSV هى اختصار ل Comma Separated Values مثلا بينات مخزنة كالتالى
name, age, sex
مثل
Code: [Select]
ahmed, 18, male 
tina, 18, female
omar, 18, male
ayman, 17, male
rogina, 20, female

1- ثبت ال fastercsv gem كالتالى
Code: [Select]
C:\Documents and Settings\ahmed>gem install fastercsv 
Successfully installed fastercsv-1.2.3
Installing ri documentation for fastercsv-1.2.3...
Installing RDoc documentation for fastercsv-1.2.3...

2- اعمل import ل fastercsv كالتالى
Code: [Select]
require 'fastercsv' 

3- حدد البيانات سواء فى نفس الملف او خارجه ، سأستخدم ال HEREDOC string هذه المرة
Code: [Select]
data =<<d 
ahmed, 18, male
tina, 18, female
omar, 18, male
ayman, 17, male
rogina, 20, female
d

استدعى ال parse method كالتالى
Code: [Select]
FasterCSV.parse(data) do |rec| 
  name=rec[0]
  age =rec[1]
  sex =rec[2]

  puts "Name: #{name}, Sex: #{sex}, Age:#{age}"

end

#Output:
Name: ahmed, Sex:  male, Age: 18
Name: tina, Sex:  female, Age: 18
Name: omar, Sex:  male, Age: 18
Name: ayman, Sex:  male, Age: 17
Name: rogina, Sex:  female, Age: 20



المصادر :
   1- http://rubygems.org/
   2- Practical Ruby Gems


Logged

Life is just a chance to grow a soul. - A. Powell
Weblog: http://ahmedyoussef.wordpress.com/