زبان برنامه نویسی روبی چیست ؟
زبان برنامه نویسی Ruby ، یک زبان برنامه نویسی تماما شی گرا می باشد .
زبان برنامه نویسی روبی در سال ۱۹۹۳ توسط یوکیهیرو ماتسوموتو ایجاد شد .
زبان برنامه نویسی Ruby ، یک زبان برنامه نویسی همه منظوره و تفسیر شده همانند زبان برنامه نویسی پرل ( Perl ) و زبان برنامه نویسی پایتون ( python ) می باشد.
با آموزش الفبای برنامه نویسی روبی همراه ما باشید.
مشخصات زبان برنامه نویسی روبی
- زبان برنامه نویسی روبی ، یک زبان متن باز بوده و بطور رایگان در وب در دسترس می باشد ، اما دارای کپی رایت است .
- زبان برنامه نویسی Ruby ، یک زبان برنامه نویسی همه منظوره و تفسیر شده می باشد .
- زبان برنامه نویسی روبی ، یک زبان برنامه نویسی شی گرا می باشد .
- زبان برنامه نویسی Ruby ، یک زبان اسکریپت نویسی سمت سرور همانند زبان پرل و زبان پایتون می باشد .
- از زبان برنامه نویسی روبی می توان برای نوشتن اسکریپت های ” رابط دروازه عمومی ” ( CGI ) استفاده نمود .
- زبان برنامه نویسی Ruby را می توان در زبان نشانه گذاری فرا متنی ( HTML ) استفاده نمود .
- زبان برنامه نویسی روبی ، سینتکس بی نقص و آسانی دارد که امکان یادگیری بسیار سریع و آسان زبان برنامه نویسی Ruby. را برای یک توسعه دهنده جدید فراهم می آورد.
سایر مشخصات زبان برنامه نویسی روبی
- سینتکس زبان برنامه نویسی Ruby شبیه سینتکس بسیاری از زبان های برنامه نویسی از قبیل زبان برنامه نویسی C++ و پرل می باشد.
- زبان برنامه نویسی روبی ، بسیار مقیاس پذیر بوده و برنامه های بزرگ نوشته شده در زبان برنامه نویسی روبی به آسانی قابل نگهداری می باشند .
- از زبان برنامه نویسی Ruby می توان برای توسعه برنامه های کاربردی اینترنت و اینترانت استفاده نمود .
- زبان برنامه نویسی روبی را می تواند در محیط های ویندوز و POSIX نصب نمود .
- زبان برنامه نویسی Ruby از بسیاری از ابزارهای GUI از قبیل Tcl / TK ، GTK و OpenGL پشتیبانی می کند .
- زبان برنامه نویسی روبی می تواند به سادگی به DB ، MySQL ، Oracle و Sybase متصل شود .
- زبان برنامه نویسی Ruby دارای مجموعه ای غنی از توابع داخلی بوده .که می توانند مستقیما در اسکریپت های زبان برنامه نویسی روبی مورد استفاده قرار گیرند .
آرایه ها
ثابت های آرایه زبان برنامه نویسی روبی با قرار دادن مجموعه ای ازمنابع(Reference) به اشیائ جدا شده توسط ویرگول در بین کروشه ایجاد می شود . ویرگول انتهایی نادیده گرفته می شود .
اندیس آرایه ها همانند زبان برنامه نویسی C و زبان برنامه نویسی Java از ۰ شروع می شود.
#!/usr/bin/ruby ary = [ "Ali", 10, 3.14, "This is a string", "last element", ] ary.each do |i| puts i end
این باعث حصول نتیجه ی زیر خواهد شد.
Ali
۱۰
۳٫۱۴
This is a string
last element
روش های مختلفی برای ایجاد یک آرایه وجود دارد که یکی از آن ها استفاده از متد new کلاس می باشد .
names = Array.new
می توان سایز آرایه را نیز به شکل زیر مشخص کرد .
names = Array.new(20)
آرایه names دارای سایز یا طول ۲۰ واحد است.
#!/usr/bin/ruby names = Array.new(20) puts names.size # This returns 20 puts names.length # This also returns 20
این باعث حصول نتیجه ی زیر خواهد شد:
۲۰
۲۰
می توانید به هر المان آرایه به شکل زیر مقادیری انتساب دهید .
#!/usr/bin/ruby names = Array.new(4, "mac") puts "#{names}"
این باعث حصول نتیجه ی زیر خواهد شد.
macmacmacmac
شما می توانید از بلاک کدی همراه با new استفاده کنید که هر المان بلاک به یکی از مقادیر آرایه انتساب داده خواهد شد .
#!/usr/bin/ruby nums = Array.new(10) { |e| e = e * 2 } puts "#{nums}"
این باعث حصول نتیجه ی زیر خواهد شد
۰۲۴۶۸۱۰۱۲۱۴۱۶۱۸
شکل دیگری از ایجاد آرایه به صورت زیر کار میکند
nums = Array.[](1, 2, 3, 4,5)
و حالت ساده تری به شکل زیر نیز معتبر است .
nums = Array[1, 2, 3, 4,5]
می توان یک بازه از اعداد را نیز برای ایجاد آرایه به شکل زیر مشخص کرد .
#!/usr/bin/ruby digits = Array(0..9) puts "#{digits}"
این باعث حصول نتیجه ی زیر خواهد شد.
انواع داده ها
انواع اصلی داده ها شامل اعداد ، رشته ها ، دامنه ها ، آرایه ها ، و هش ها می باشد .
در این قسمت انواع اعداد و رشته ها معرفی می شوند و در قسمت های بعدی دامنه ها ، آرایه ها ، و هش ها معرفی خواهند شد .
اعداد صحیح
اعداد صحیح در زبان برنامه نویسی Ruby اشیائ کلاس Fixnum یا Bignum هستند و در بازه -۲۳۰ تا ۲۳۰-۱ یا -۲۶۲ تا ۲۶۲-۱ قرار دارند .
مثال زیر نحوه نوشتن اعداد باینری مبنای ۲ و دهدهی مبنای ۱۰ و اکتال مبنای ۸ و هگزادسیمال مبنای ۱۶ را نشان می دهد .
با قراردادن یک کاراکتر یا بک اسلش کد در داخل کوتیشن می توانید به کد اسکی ASCII آن دست پیدا کنید .
۱۲۳ # Fixnum decimal ۱_۶۸۸۹ # Fixnum decimal with underline -۵۰۰۰ # Negative Fixnum ۰۳۷۷ # octal ۰o377 # octal ۰xee # hexadecimal ۰b1011011 # binary ?b # character code for ‘b’ ?\n # code for a newline (0x0a) ۱۲۳۴۵۶۷۸۹۰۱۲۳۴۵۶۷۸۹۰ # Bignum
اعداد اعشاری ممیز شناور
اعداد اعشاری اشیایی از کلاس Float هستند .
۱۲۳٫۴ # floating point value ۱٫۰e6 # scientific notation ۴E20 # dot not required ۴e+20 # sign before exponential
رشته های زبان برنامه نویسی Ruby به سادگی ، توالی بایتهای ۸ بیتی و اشیائ کلاس String می باشند .
رشته های داخل علامت دابل کوتیشن اجازه جایگذاری و اعمال بک اسلش کد ها را نیز می دهند ولی رشته های داخل تک کوتیشن تنها اجازه اعمال بک اسلش کد به دو کد \\ و \’ را می دهند .
مثال:
#!/usr/bin/ruby -w puts 'escape using "\\"'; puts 'That\'s right';
این خروجی زیر را تولید خواهد کرد.
escape using “\”
That’s right
شما می توانید مقدار هر عبارت زبان برنامه نویسی روبی را با استفاده از کاراکترهای #{ expr } در یک رشته جایگزین کنید .
#!/usr/bin/ruby -w puts "Multiplication Value : #{24*60*60}";
این خروجی زیر را تولید خواهد کرد.
Multiplication Value : 86400
انواع متغیرها
متغییر ها در برنامه نویسی روبی
در زبان برنامه نویسی روبی پنج تایپ مختلف متغیر وجود دارد که در ادامه معرفی خواهند شد.
•متغیر های عمومی (Global Variables)
•متغیر های شی (Instance Variables)
•متغیر های کلاس (Class Variables)
•متغیر های محلی (Local Variables)
•ثابت ها (Constants)
متغیر های عمومی (Global Variables)
متغیر های عمومی یا گلوبال با $ شروع می شوند و اگر مقداردهی اولیه نشوند دارای مقدار nil هستند.
در مثال زیر $global_variable یک متغیر عمومی است.
در روبی با قراردادن یک کاراکتر # قبل از هر متغیر می توانید به مقدار آن دست پیدا کنید.
#!/usr/bin/ruby $global_variable = 10 class Customer @@no_of_customers=0 def initialize(name, addr) @@no_of_customers += 1 @cust_id=@@no_of_customers @cust_name=name @cust_addr=addr end def display_details() puts "Customer id: #@cust_id" puts "Customer name: #@cust_name" puts "Customer address: #@cust_addr" puts "Global variable is: #$global_variable" puts "Total number of customers: #@@no_of_customers" end end # Create Objects cust1=Customer.new("John", "Wisdom Apartments, Ludhiya") cust2=Customer.new("Poul", "New Empire road, Khandala") # Call Methods cust1.total_no_of_customers() cust2.total_no_of_customers()
این مثال نتیجه زیر را ایجاد خواهد کرد.
Customer id: 1 Customer name: John Customer address: Wisdom Apartments, Ludhiya Global variable is: 10 Total number of customers: 2 Customer id: 2 Customer name: Poul Customer address: New Empire road, Khandala Global variable is: 10 Total number of customers: 2
متغیر های شی
متغیر های شی با @ شروع می شوند و اگر مقداردهی اولیه نشوند دارای مقدار nil هستند.
در مثال قبل @cust_id و @cust_name و @cust_addr متغیر های شی هستند.
متغیر های کلاس
در زبان برنامه نویسی Ruby متغیرهای کلاس متغیرهایی هستند که بین همه اشیایی که از یک کلاس ساخته می شوند مشترک هستند.
متغیر های کلاس با @@ شروع می شوند و اگر مقداردهی اولیه نشوند خطا تولید خواهند کرد.
در مثال قبل @@no_of_customers یک متغیر کلاس است.
متغیر های محلی
متغیر های محلی با حروف کوچک و یا زیرخط (_) شروع می شوند. حوزه تعریف آن ها داخل یک متد، حلقه و یا یک بلاک کد است.
وقتی یک متغیر محلی را بدون مقداردهی اولیه فراخوانی میکنید، مفسر زبان برنامه نویسی روبی فکر خواهد کرد که متدی بدون پارامتر و به همین نام را فراخوانی کرده اید.
در مثال قبل name و addr متغیر های محلی هستند.
ثابت ها
ثابت ها با حروف بزرگ آغاز می شوند. ثابت هایی را که در یک کلاس تعریف کنید در همان کلاس قابل دسترسی هستند و ثابت هایی را که بیرون از کلاس تعریف کنید دارای دسترسی عمومی هستند.
ثابت ها را نمی توانید در داخل یک متد تعریف کنید و باید حتما دارای مقدار اولیه باشند. مقدار دهی دوباره به ثابت پیغام هشداری (warning) ایجاد خواهد کرد.
در مثال زیر نحوه استفاده از ثابت ها نمایش داده شده است.
#!/usr/bin/ruby class Example VAR1 = 100 VAR2 = 200 def show puts "Value of first Constant is #{VAR1}" puts "Value of second Constant is #{VAR2}" end end # Create Objects object=Example.new() object.show
این مثال خروجی زیر را ایجاد خواهد کرد.
Value of first Constant is 100
Value of second Constant is 200
شبه متغیرهای زبان برنامه نویسی Ruby
این متغیرها، متغیرهای ویژه ای هستند که دارای ظاهر متغیرهای محلی بوده اما همانند ثابت ها رفتار می کنند.
شما نمی توانید هیچ مقداری را به این متغیرها اختصاص دهید.
self: شی گیرنده ی تابع جاری.
true: مقدار نشان دهنده ی مقداری صحیح.
false: مقدار نشان دهنده ی مقداری نادرست.
nil: مقدار نشاندهنده ی مقداری تعریف نشده.
__FILE__: نام سورس فایل جاری.
__LINE__: شماره سطر جاری در فایل سورس.
ثابتهای محیطی
جدول زیر، بصورت فهرست وار تمام ثابت های محیطی در زبان برنامه نویسی روبی از پیش تعریف شده را نشان می دهد.
تذکرTRUE ، FALSE و NIL به جهت سازگاری با نسخه های قدیمی می باشند. استفاده از true ، false و nil ارجح می باشد.
داکیومنت های «Here»
داکیومنت های ” Here ” به رشته هایی اشاره میکند که از چند خط تشکیل شده اند . در این حالت پس از عبارت >> می توان شناسه ای را مشخص کرد که رشته با آن پایان می یابد اگر شناسه داخل نقل قول یا کوتیشن قرار گرفته باشد نوع کوتیشن ، نوع رشته های بعدی را مشخص میکند . در اینجا ، مثال های مختلفی بیان شده است.
#!/usr/bin/ruby -w print <<EOF This is the first way of creating here document ie. multiple line string. EOF print <<"EOF"; # same as above This is the second way of creating here document ie. multiple line string. EOF print <<`EOC` # execute commands echo hi there echo lo there EOC print <<"foo", <<"bar" # you can stackthem I said foo. foo I said bar. bar
که این خروجی زیر را تولید خواهد کرد .
This is the first way of creating
her document ie. multiple line string.
This is the second way of creating
her document ie. multiple line string.
hi there
lo there
I said foo.
I said bar.
دامنه ها
یک دامنه، نشان دهنده یک فاصله یعنی مجموعه ای از مقادیر با یک آغاز و یک پایان می باشد.
دامنه ها ممکن است با استفاده از لیترال های .. یا … و یا با Range.new ایجاد شده باشند.
دامنه ها در زبان برنامه نویسی روبی به سه منظور استفاده می شوند:
•به عنوان یک توالی
•به عنوان شرط
•به عنوان فاصله یا دامنه
دامنه به عنوان یک توالی
دامنه های ایجاد شده با استفاده از .. از ابتدا تا انتها را شامل می شوند.
دامنه های ایجاد شده با استفاده از … مقادیر پایانی را در بر نمی گیرند.
هرگاه دامنه ها به عنوان یک iterator بکار روند، تمام مقادیر داخل دنباله را به ترتیب بر میگردانند
دامنه (۵٫٫۱) بدین معنی است که این دامنه، مقادیر ۱، ۲، ۳، ۴، ۵ را در بر گرفته و دامنه (۵…۱) بدین معنی است که این دامنه، مقادیر ۲، ۳، ۴ را در بر گرفته است.
#!/usr/bin/ruby (۱۰٫٫۱۵).each do |n| print n, ' ' end
این باعث حصول نتیجه ی زیر خواهد شد.
۱۰ ۱۱ ۱۲ ۱۳ ۱۴ ۱۵
با استفاده از متد to_a می توان یک دامنه را به یک آرایه تبدیل کرد.
#!/usr/bin/ruby $, =", " # Array value separator range1 = (1..10).to_a range2 = ('bar'..'bat').to_a puts "#{range1}" puts "#{range2}"
که نتیجه زیر را تولید خواهد کرد.
۱, ۲, ۳, ۴, ۵, ۶, ۷, ۸, ۹, ۱۰
bar, bas, bat
دامنه دارای متد هایی است که به شما اجازه می دهد بر روی مقادیر آن حرکت کنید و مقادیر آن را به شیوه های مختلفی تست کنید.
#!/usr/bin/ruby # Assume a range digits = 0..9 puts digits.include?(5) ret = digits.min puts "Min value is #{ret}" ret = digits.max puts "Max value is #{ret}" ret = digits.reject {|i| i < 5 } puts "Rejected values are #{ret}" digits.each do |digit| puts "In Loop #{digit}" end
که خروجی زیر را تولید خواهد کرد.
true
Min value is 0
Max value is 9
Rejected values are 5, 6, 7, 8, 9
In Loop 0
In Loop 1
In Loop 2
In Loop 3
In Loop 4
In Loop 5
In Loop 6
In Loop 7
In Loop 8
In Loop 9
دامنه ها به عنوان شرط
دامنه ها می توانند به صورت شرط نیز بکار روند.
به عنوان مثال در زیر خطهایی از ورودی که اولین خط با start شروع می شود و آخرین خط با end پایان می یابد را در خروجی چاپ میکند.
while gets print if /start/../end/ end
دامنه ها را همچنین می توان در دستور case بکار برد.
مثال:
#!/usr/bin/ruby score = 70 result = case score when 0..40 then "Fail" when 41..60 then "Pass" when 61..70 then "Pass with Merit" when 71..100 then "Pass with Distinction" else "Invalid Score" end puts result
اجرای این کد نتیجه زیر را ایجاد خواهد کرد.
Pass with Merit
دامنه ها به عنوان یک بازه
کاربرد دیگر دامنه به عنوان تست یک بازه است، که می توان چک کرد که یک مقدار به یک بازه تعلق دارد یا خیر.
این عمل با اپراتور === که به آن اپراتور تساوی حالت (case equality operator) می گوییم، انجام می شود.
#!/usr/bin/ruby if ((1..10) === 5) puts "5 lies in (1..10)" end if (('a'..'j') === 'c') puts "c lies in ('a'..'j')" end if (('a'..'j') === 'z') puts "z lies in ('a'..'j')" end
اجرای این کد نتیجه زیر را تولید خواهد کرد.
۵ lies in (1..10)
c lies in (‘a’..’j’)
دانلود و نصب بر روی ویندوز
مراحل نصب زبان برنامه نویسی روبی بر روی سیستم عامل ویندوز در اینجا بیان شده است .
نصب روبی با نرم افزار RubyInstaller
بهترین راه برای نصب زبان برنامه نویسی روبی بر روی ویندوز استفاده از نرم افزار RubyInstaller است که می توانید آخرین نسخه آن را دانلود و نصب کنید .
بسته نرم افزار RubyInstaller همه پیکربندی های لازم برای نصب زبان برنامه نویسی روبی را انجام خواهد داد .
دانلودRuby installer
اگر هدف شما از نصب زبان برنامه نویسی روبی ، استفاده از روبی بر ریل است ، بهتر است از بسته های زیر استفاده کنید .
•بسته نرم افزار RailsInstaller که از RubyInstaller استفاده می کند اما ابزارهای دیگری که برای ریل مورد نیاز است را نیز نصب می کند و از ویندوز و مک اواس ایکس پشتیبانی می کند .
•بسته نرم افزار Bitnami Ruby Stack که محیط کامل توسعه ریل را در خود دارد و از ویندوز ، لینوکس و او اس ایکس پشتیبانی میکند .
نصب روبی از پکیج اصلی
اما اگر می خواهید خودتان زبان برنامه نویسی روبی را نصب کنید.
فایل زیپ آخرین نسخه زبان برنامه نویسی روبی را با استفاده از این لینک دانلود نرم افزار برنامه نویسی روبی بگیرید .
پس از دانلود آرشیو روبی ، آن را باز نموده و به دایرکتوری تازه ایجاد شده بروید.
بر روی فایل Ruby x.y.z.exe دوبار کلیک کنید . ویزارد نصب زبان برنامه نویسی روبی آغاز می شود .
بر روی Next کلیک کرده تا به صفحه اطلاعات مهم ویزارد برسید و تا نصب کامل زبان برنامه نویسی روبی ، ادامه دهید .
اگر نصب شما متغیرهای محیطی را بطور مناسب پیکربندی نکرده باشد ، ممکن است به برخی از آن ها نیاز داشته باشید .
اگر از ویندوز ۹x استفاده می کنید ، خطوط زیر را به فایل c:\autoexec.bat اضافه کنید
set PATH="D:\(ruby install directory)\bin;%PATH%"
کاربران ویندوز NT/2000 و نسخه های جدیدتر باید رجیستری های خود را اصلاح نمایند .
برای این منظور ، بر روی Control Panel > System Properties > Environment Variables کلیک نمایید .
در زیر گزینه متغیرهای سیستم System Variables ، گزینه Path را انتخاب نموده و بر روی EDIT کلیک کنید .
دایرکتوری زبان برنامه نویسی روبی خود را به انتهای لیست Variable Value افزوده و بر روی OK کلیک نمایید .
در زیر گزینه System Variables ، گزینه PATHEXT را انتخاب نموده و بر روی EDIT کلیک کنید .
سپس .rb و .rbw را به لیست Variable Value افزوده و بر روی OK کلیک نمایید .
پس از نصب ، با نوشتن دستور زیر در خط فرمان اطمینان حاصل نمایید که همه چیز بدرستی کار می کند .
> ruby -v ruby 1.8.7اگر همه چیز صحیح باشد ، نسخه مفسر زبان برنامه نویسی روبی نصب شده باید بصورت بالا نشان داده شود .
ممکن است نسخه متفاوتی را نصب کرده باشید ، در نتیجه ، نسخه متفاوتی نمایش داده خواهد شد .
دستور BEGIN و END
دستور BEGIN در زبان برنامه نویسی روبی
شکل دستور
BEGIN { code }
مجموعه کدهایی را مشخص میکند که قبل از شروع برنامه باید اجرا شوند .
مثال:
#!/usr/bin/ruby puts "This is main Ruby Program" BEGIN { puts "Initializing Ruby Program" }
این کد نتیجه زیر را در پی خواهد داشت .
Initializing Ruby Program
This is main Ruby Program
دستور END در زبان برنامه نویسی Ruby
شکل دستور
END { code }
مجموعه کدهایی را مشخص میکند که بعد از پایان برنامه باید اجرا شوند .
مثال:
#!/usr/bin/ruby puts "This is main Ruby Program" END { puts "Terminating Ruby Program" } BEGIN { puts "Initializing Ruby Program" }
این کد نتیجه زیر را در پی خواهد داشت .
Initializing Ruby Program
This is main Ruby Program
Terminating Ruby Program
ساختار
فاصله خالی در زبان برنامه نویسی روبی
کاراکترهای فاصله ی سفید مانند فاصله ها ( space ) و تب ( tab ) به طور کلی در کد زبان برنامه نویسی Ruby نادیده گرفته می شوند ، مگر زمانی که در رشته ها ظاهر شوند .
a + b is interpreted as a+b ( Here a is a local variable) a +b is interpreted as a(+b) ( Here a is a method call)
کارکتر انتهای خط در زبان برنامه نویسی روبی
زبان برنامه نویسی Ruby ، کاراکترهای نقطه – ویرگول ؛ و سطر جدید را به عنوان پای ان یک عبارت تفسیر می کند .
باوجود این ، اگر زبان برنامه نویسی روبی با عملگرهایی مانند + ، – ، یا بک اسلش ( backslash ) در انتهای یک سطر مواجه شود ، آن ها را به معنای ادامه داشتن عبارت در نظر می گیرد .
شناسه ها در زبان برنامه نویسی Ruby
شناسه ها ، اسامی متغیرها ، ثابت ها و توابع می باشند .
شناسه های زبان برنامه نویسی روبی نسبت به بزرگ یا کوچک بودن حروف ، حساس هستند . این بدین معنی است که Ram و RAM دو شناسه مختلف در زبان برنامه نویسی Ruby می باشند .
شناسه ها در زبان برنامه نویسی روبی شامل حروف کوچک و بزرگ اعداد و زیرخط می باشند .
توضیحات در زبان برنامه نویسی روبی
توضیحات زبان برنامه نویسی Ruby با یک کاراکتر پوند / شارپ # آغاز شده و تا انتهای سطر ( EOL ) ادامه می یابد .
# I am a comment. Just ignore me.
و یا
name = “Madisetti” # This is again comment
خط فرمان و متغیرهای محیطی
گزینه های خط فرمان زبان برنامه نویسی روبی
این فصل ، تمام گزینه های خط فرمان زبان برنامه نویسی Ruby را که می توانید همراه با مفسر زبان برنامه نویسی روبی از آن استفاده نمایید ، فهرست می کند .
مفسر زبان برنامه نویسی Ruby به طور کلی به روش زیر از خط فرمان اجرا می گردد.
$ ruby [ options ] [.] [ programfile ] [ arguments ... ]
مفسر زبان برنامه نویسی روبی می تواند با هر یک از گزینه های زیر مورد استفاده قرار گیرد تا محیط و رفتار آن را کنترل نماید .
Option | Description |
-a | Used with -n or -p to split each line. Check -n and -p options. |
-c | Checks syntax only, without executing program. |
-C dir | Changes directory before executing (equivalent to -X). |
-d | Enables debug mode (equivalent to -debug). |
-F pat | Specifies pat as the default separator pattern ($;) used by split. |
-e prog | Specifies prog as the program from the command line. Specify multiple -e options for multiline programs. |
-h | Displays an overview of command-line options. |
-i [ext] | Overwrites the file contents with program output. The original file is saved with the extension ext. If ext isn’t specified, the original file is deleted. |
-I dir | Adds dir as the directory for loading libraries. |
-K [kcode] | Specifies the multibyte character set code (e or E for EUC (extended Unix code); s or S for SJIS (Shift-JIS); u or U for UTF-8; and a, A, n, or N for ASCII). |
-l | Enables automatic line-end processing. Chops a newline from input lines and appends a newline to output lines. |
-n | Places code within an input loop (as in while gets; … end). |
-۰ [octal] | Sets default record separator ($/) as an octal. Defaults to \0 if octal not specified. |
-p | Places code within an input loop. Writes $_ for each iteration. |
-r lib | Uses require to load lib as a library before executing. |
-s | Interprets any arguments between the program name and filename arguments fitting the pattern -xxx as a switch and defines the corresponding variable. |
-T [level] | Sets the level for tainting checks (1 if level not specified). |
-v | Displays version and enables verbose mode |
-w | Enables verbose mode. If programfile not specified, reads from STDIN. |
-x [dir] | Strips text before #!ruby line. Changes directory to dir before executing if dir is specified. |
-X di | Changes directory before executing (equivalent to -C). |
-y | Enables parser debug mode. |
–copyright | Displays copyright notice |
–debug | Enables debug mode (equivalent to -d). |
–help | Displays an overview of command-line options (equivalent to -h). |
–version | Displays version. |
–verbose | Enables verbose mode (equivalent to -v). Sets $VERBOSE to true. |
–yydebug | Enables parser debug mode (equivalent to -y). |
عبارت های الگودار
عبارت های الگودار یک توالی خاص از کارکترهاست که با یک الگو کمک میکند یک رشته یا یک دسته از رشته های به فرم مشخص را پیدا کنیم.
ساختار
یک عبارت الگودار، الگویی است که بین دو علامت اسلش و یا بعد از کاراکترهای %r بین و بین دو علامت دلخواه قرار می گیرد. به فرم زیر:
/pattern/ /pattern/im # option can be specified %r!/usr/local! # general delimited regular expression
مثال:
#!/usr/bin/ruby line1 = "Cats are smarter than dogs"; line2 = "Dogs also like meat"; if ( line1 =~ /Cats(.*)/ ) puts "Line1 contains Cats" end if ( line2 =~ /Cats(.*)/ ) puts "Line2 contains Cats" end
این مثال خروجی زیر را تولید خواهد کرد:
Line1 contains Cats
تغییر دهنده ها
عبارتهای الگودار ممکن است تغییر دهنده های مختلفی داشته باشند که ابعاد مختلف انطباق را تغییر می دهند.تغییر دهنده ها بعد از دومین اسلش قرار میگیرند. فهرست برخی از آن ها در جدول زیر آمده است.
الگوهای مختلف
بغیر از کاراکترهای کنترلی (+ ? . * ^ $ ( ) [ ] { } | \) همه دیگر کاراکترها بر خودشان انطباق می یابند.شما می توانید با یک بک اسلش رفتار یک کاراکتر کنترلی را به مانند کاراکترهای عادی تغییر دهید.فهرست زیر ساختار عبارتهای الگودار قابل استفاده در زبان برنامه نویسی روبی را نشان می دهد.
کلمات کلیدی
فهرست زیر ، کلمات کلیدی در زبان برنامه نویسی روبی را نشان می دهد .
این کلمات کلیدی نباید به عنوان اسامی ثابت یا متغیر در برنامه شما مورد استفاده قرار گیرند .
| do | next | then |
END | else | nil | true |
alias | elsif | not | undif |
and | end | or | unless |
begin | unsure | redo | until |
break | false | rescue | when |
case | for | retry | while |
class | if | return | while |
def | in | self | _FILE_ |
defined? | module | super | _LINE_ |
نصب بر روی لینوکس و یونیکس
در اینجا ، مراحل نصب زبان برنامه نویسی Ruby بر روی سیستم عامل لینوکس و یونیکس بیان شده است
هشدار: قبل از ادامه ، مطمئن شوید root هستید یا جزو گروه sudoers می باشید .
فایل زیپ آخرین نسخه روبی را با استفاده از این لینک دانلود نرم افزار برنامه نویسی روبی بگیرید .
پس از دانلود نرم افزار برنامه نویسی روبی ، آرشیو آن را باز نموده و به دایرکتوری تازه ایجاد شده بروید.
$ tar -xvzf ruby-x.y.z.tar.gz $ cd ruby-x.y.z
بجای x و y و z اعدادی مربوط به نسخه ای که شما دانلود کرده اید قرار میگیرند.
حال ، سورس کد را به شرح زیر ، پیکربندی و کامپایل نمایید.
$ ./configure $ make
در نهایت ، مفسر زبان برنامه نویسی روبی را به شرح زیر نصب کنید.
$ su -l root # become a root user $ make install $ exit # become the original user again
پس از نصب ، با نوشتن دستور زیر در خط فرمان اطمینان حاصل نمایید که همه چیز بدرستی کار می کند .
$ ruby -v ruby 1.8.7 (2011-06-30 patchlevel 352) [i686-linux]
اگر همه چیز صحیح باشد ، نسخه مفسر زبان برنامه نویسی Ruby نصب شده باید بصورت بالا نشان داده شود .
ممکن است نسخه متفاوتی را نصب کرده باشید ، در نتیجه ، نسخه متفاوتی نمایش داده خواهد شد .
در نسخه اوبونتو Ubuntu لینوکس برای نصب زبان برنامه نویسی روبی کافی است دستور زیر را اجرا کنید .
$ sudo apt-get install ruby
اگر از لینوکس توزیع RedHat یا SUSE استفاده می کنید استفاده از ابزار yum ساده ترین روش نصب روبی یا هر RPM دیگر می باشد .
دستور زیر را در خط فرمان خود تایپ نمایید ؛ خواهید دید که زبان برنامه نویسی روبی بر روی کامپیوتر شما نصب می شود .
$ yum install ruby
نمادهای بک اسلش
فهرستی از نمادهای بک اسلش ( backslash ) که توسط زبان برنامه نویسی Ruby پشتیبانی می شوند ، در زیر ارائه شده است.
character represented | notation |
(Newline (OxOa | n\ |
(Carriage return (OxOd | r\ |
(Formfeed (OxOc | f\ |
(Backspace (OxO8 | b\ |
(Bell (OxO7 | a\ |
(Scape (Ox1b | e\ |
(Space (Ox20 | s\ |
(Octal notation (n being 0-7 | nnn\ |
(Hexadecimal notation (n being 0-9,a-f,or A-F | xnn\ |
(Control-x ) | cx ,\C-x\ |
(Meta-x (c | 0x80 | M-x\ |
(Meta-Control-x (c | 0x80 | C-x ,\M-\ |
(Character x ) | x\ |
هش ها
هش در زبان برنامه نویسی روبی با قرار دادن لیستی از جفت های کلید/مقدار key=>value در بین آکولاد ، همراه با یک ویرگول بین هر جفت ایجاد می شود . ویرگول انتهایی نادیده گرفته می شود .
مثال:
#!/usr/bin/ruby hsh = colors = { "red" => 0xf00, "green" => 0x0f0 } hsh.each do |key, value| print key, " is ", value, "\n" end
این باعث حصول نتیجه ی زیر خواهد شد.
green is 240
red is 3840
همانند آرایه ها روش های مختلفی برای ایجاد هش وجود دارد . یک هش را می توان با استفاده از متد new به شکل زیر ایجاد کرد .
months = Hash.new
شما می توانید در هنگام ایجاد هش یک مقدار پیشفرض نیز بجای nil به آن انتساب دهید .
months = Hash.new( "month" ) or months = Hash.new "month"
اگر کلیدی در هش را تقاضا کنید که وجود نداشته باشد ، مقدار nil یا مقدار پیشفرض برگردانده خواهد شد .
#!/usr/bin/ruby months = Hash.new( "month" ) puts "#{months[0]}" puts "#{months[72]}"
این باعث حصول نتیجه ی زیر خواهد شد
month
month
و مثال دیگر:
#!/usr/bin/ruby H = Hash["a" => 100, "b" => 200] puts "#{H['a']}" puts "#{H['b']}"
این باعث حصول نتیجه ی زیر خواهد شد
۱۰۰
۲۰۰
شما می توانید از هر شی زبان برنامه نویسی Ruby به عنوان کلید یا مقدار استفاده کنید بنابراین تعریف زیر معتبر خواهد بود .
[۱,"jan"] => "January"
ورودی و خروجی فایل
متد File.new
شما می توانید یک شی از نوع File را با استفاده از متد File.new برای خواندن، نوشتن و یا هردو استفاده کنید.
و در نهایت با استفاده از متد File.close فایل را خواهید بست.
aFile = File.new("filename", "mode") # ... process the file aFile.close
متد File.open
از متد File.open نیز می توانید برای خواندن و نوشتن بر روی یک فایل استفاده کنید.
اما اختلاف آن با File.new در این است که می توانید از File.open در یک بلاک کد استفاده کنید در حالی که از File.new نمی توان به این صورت استفاده کرد.
File.open("filename", "mode") do |aFile| # ... process the file end
در اینجا، فهرستی از حالت های مختلف باز کردن یک فایل ارائه شده است.

خواندن و نوشتن فایل
همه متد هایی که برای ورودی خروجی استاندارد وجود داشت برای ورودی و خروجی فایل نیز وجود دارد.
به این ترتیب همانگونه که gets برای خواندن از ورودی استاندارد بکار رفت aFile.gets نیز برای ورودی از فایل بکار می رود.
اما در فایلها یک سری دستورات ویژه ورودی خروجی فایل نیز وجود دارند که کار را راحت تر میکنند.
متد sysread
از متد sysread برای خواندن یک فایل می توان استفاده کرد
اگر خط زیر محتوای یک فایل متنی باشد:
This is a simple text file for testing purpose.
با استفاده از sysread فایل را به شکل زیر می خوانیم:
#!/usr/bin/ruby aFile = File.new("input.txt", "r") if aFile content = aFile.sysread(20) puts content else puts "Unable to open file!" end
این دستور ۲۰ کاراکتر اول فایل را می خواند و اشاره گر فایل را در محل ۲۱ امین کاراکتر قرار می دهد.
متد syswrite
با استفاده از متد syswrite میتوانید اطلاعات را در داخل یک فایل بریزید:
#!/usr/bin/ruby aFile = File.new("input.txt", "r+") if aFile aFile.syswrite("ABCDEF") else puts "Unable to open file!" end
این کد کاراکترهای ABCDEF را در فایل می نویسد.
ویرایشگرهای رایج
برای نوشتن برنامه های Ruby خود ، به یک ویرایشگر نیاز دارید .
در این قسمت ویرایشگرهای رایج زبان برنامه نویسی روبی را معرفی میکنیم:
- اگر بر روی سیستم عامل ویندوز کار می کنید ، می توانید از تمام ویرایشگرهای ساده متنی مانند Notepad++ یا Edit plus استفاده نمایید .
- ادیتور VIM ، ویرایشگر بسیار ساده متنی است که تقریبا بر روی تمام سیستم عامل های یونیکس و در حال حاضر ویندوز ، در دسترس می باشد .
- همچنین ، می توانید از ویرایشگر مورد علاقه vi خود برای نوشتن برنامه های زبان برنامه نویسی روبی استفاده نمایید .
- نرم افزار RubyWin نیز یک محیط توسعه یکپارچه زبان برنامه نویسی روبی ( IDE ) برای ویندوز می باشد .
- محیط توسعه روبی ( RDE ) نیز یک IDE بسیار خوب دیگر برای کاربران ویندوز می باشد .
روبی تعاملی IRb چیست ؟
روبی تعاملی ( IRb ) ، خط فرمانی را برای آزمایش فراهم می آورد .
شما می توانید نتایج عبارات را بلافاصله در داخل خط فرمان IRb بصورت خط به خط مشاهده نمایید .
این ابزار همراه با نصب زبان برنامه نویسی روبی راه اندازی می شود ، بنابراین برای راه اندازی IRb نیاز به کار اضافه ای نیست .
تنها irb را در خط فرمان خود تایپ نمایید تا نشست روبی تعاملی آغاز گردد .
$irb irb 0.6.1(99/09/16) irb(main):001:0> def hello irb(main):002:1> out = "Hello World" irb(main):003:1> puts out irb(main):004:1> end nil irb(main):005:0> hello Hello World nil irb(main):006:0>
ورودی و خروجی
ورودی و خروجی در زبان برنامه نویسی روبی روشهای مختلفی را فراهم می کند.
کلاس IO همه متد های پایه مانند read و write و gets و puts و readline و getc و printf را فراهم آورده است.
دستور puts
دستور puts به مفسر زبان برنامه نویسی روبی فرمان می دهد مقادیر یک متغیر را در خروجی چاپ کند.
در این هنگام یک کاراکتر سطر جدید نیز چاپ خواهد شد.
مثال:
#!/usr/bin/ruby val1 = "This is variable one" val2 = "This is variable two" puts val1 puts val2
این خروجی زیر را تولید خواهد کرد:
This is variable one
This is variable two
دستور gets
دستور gets برای گرفتن داده های ورودی از ورودی استاندارد STDIN استفاده می شود.
مثال:
#!/usr/bin/ruby puts "Enter a value :" val = gets puts val
این خروجی زیر را تولید خواهد کرد:
Enter a value :
This is entered value
This is entered value
دستور putc
برخلاف دستور puts که کل یک رشته را در خروجی چاپ می کند. دستور putc هر بار یک کاراکتر را چاپ خواهد کرد.
مثال:
#!/usr/bin/ruby str="Hello Ruby!" putc str
این خروجی زیر را تولید خواهد کرد:
H
دستور print
دستور print مشابه دستور puts می باشد، با این اختلاف که دستور print کاراکتر خط جدید را در انتها اضافه نخواهد کرد.
مثال:
#!/usr/bin/ruby print "Hello World" print "Good Morning"
این خروجی زیر را تولید خواهد کرد:
Hello WorldGood Morning