<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>پست‌های انتشارات Ruby</title>
        <link>https://virgool.io/ruby-lang/feed</link>
        <description>سعی داریم در این انشارات مطالب مربوط به روبی یا ریلز را قرار بدهیم</description>
        <language>fa</language>
        <pubDate>2026-06-10 16:07:00</pubDate>
        <image>
            <url>https://files.virgool.io/upload/publication/vbwvhh8yt51d/rqlngk.png</url>
            <title>Ruby</title>
            <link>https://virgool.io/ruby-lang</link>
        </image>

                    <item>
                <title>زبان روبی: ادامه تا شرطی ها</title>
                <link>https://virgool.io/ruby-lang/%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D9%88%D8%A8%DB%8C-%D8%A7%D8%AF%D8%A7%D9%85%D9%87-%D8%AA%D8%A7-%D8%B4%D8%B1%D8%B7%DB%8C-%D9%87%D8%A7-jimdslgeslq4</link>
                <description>درود بر یاران. من واقعا به خاطر اینکه از برنامه عقب افتادیم و از ۱۰ خرداد آموزش ها یه توقفی داشتند شرمنده ام و عذرخواهی میکنم. ولی من نوشتن این مقاله کوچیک رو وظیفه خودم میدونم و امیدوارم سواد شمارو بیشتر کنم و مسیر شمارو برای پیشرفت هموار کنم.در ادامه سعی داریم در مورد برنامه نویسی منطقی رو یاد بگیریم که یکی از مهم ترین بخش های یک زبان برنامه نویسی هستند و امیدوارم این مقاله رو با دقت بخونید.میتونید قسمت قبلی رو از اینجا دنبال کنید: https://virgool.io/ruby-lang/%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D9%88%D8%A8%DB%8C-%D9%87%D8%B4-%D9%87%D8%A7-btbxoji2kejv بولین ها یا داده های منطقی:برای یادآوری و توضیحات بیشتر میخوام این قسمت رو برای مقادیر منطقی تخصیص بدم و میخوام کلشون تو یه قسمت باشند پس حتما بخونید.در هر زبان برنامه نویسی نوعی داده داریم که درست یا نادرست بودن رو در خودش ذخیره میکنه. از این داده ها میتونید برای ذخیره درستی انجام یک رویداد استفاده کنید. و فقط میتونید دو نوع داده رو در این متغییر ها جای بگذارید. True(درستی) و False(نادرستی) دو نوع داده ای هستند که میتونید استفاده کنید. اگر مثل من ریاضی خونده باشید در مورد ترکیب های عطفی و فصلی خوندید که در ادامه به انها اشاره خواهیم داشت.مثل گذشته برای تعریف بولین نام اون رو مینویسید و مقدار اون رو با مساوی مینویسید:درضمن شما نمیتونید بولی هارو باهم جمع یا ضرب یا هر عملیات ریاضی روش انجام بدید. درضمن نقیض یک گزاره یا بولی رو هم میتونید با علامت ! یا اکسکلمیشن مارک یا همون علامت تعجب خودمون تایین کنید:میبینید که اگه علامت تعجب رو پشت یه داده یا متغیر بگذارید مقدار اون رو برعکس میکنه(درست رو نادرست و نادرست رو درست). درضمن در خط پنچم سردرگم نشید که چرا ! به مساوی چسبیده. میتونید اون رو به مساوی بچسبونید یا به نام متغییر ایرادی نداره. میتونید بر حسب سلیقه خودتون نکنید. ولی این کار خوانایی کد رو بالا میبره.درضمن عملگر != رو با =! اشتباه نگیرید چون =! برای مقایسه نابرابری دو گزاره هست و اگر دو گزاره باهم نابرابر بودند مقدار صحیح برگردونده میشه. درضمن == و === برای مقایسه برابری دوتا گزاره استفاده میشه.اون چیزای مشکی پشت ترمینال رو هم نگاه نکنید. گفتم که بدونید ;)درضمن &lt; و &gt; و =&gt; و =&lt; به ترتیب بزرگتر, کوچکتر, کوچکتر مساوی و بزرگتر مساوی هستند که برای مقایسه مقادیر عددی استفاده میشند:ترکیب های عطفی و فصلی:وقتی در هنگام مقایسه بخوایم چندتا مقایسه رو انجام بدیم طوری که پاسخ همشون باهم در ارتباط باشند از ترکیب های فصلی و عطفی استفاده میکنیم. ترکیب های عطفی طوری هستند که در هنگامی که پاسخ همه مقایساتمون درست یا True باشند مقدار True برمیگردونه. برای راهنمایی بیشتر جدولی از گوگول پایین ضمیمه کردم.ترکیب های عطفی رو با &quot;و&quot; و یک علامت شبیه به ۸ مینویسند و ترکیب های فصلی که بهش میگند &quot;یا&quot; رو با علامت شبیه به ۷ مشخص میکنند. امیدوارم از جدولی که از گوگول براتون گذاشتم به مشکل بر نخورده باشید:درضمن علامت تیلد ~ هم نقیض یک گزاره میشه.خوب از فضای آمار و احتمالی رد بشیم و برسیم به کد زدن. در زبان های برنامه نویسی &quot;یا&quot; یا ترکیب های فصلی رو با ||(کنار enter دکمه شیفت رو بگیرید بک اسلش رو بزنید) و ترکیبات عطفی رو با &amp;&amp; مینویسند و پاسخ چیزی شبیه به جدول بالا خواهد بود:خط ۳ رو از من به خاطر یه تمرین قبول کنید و تو ذهنتون حلش کنید.شرطی ها(با خط بزرگ و خوانا):خوب. اکنون به جای اصلی و باریک مقاله رسیدیم. شرطی ها چیزی هستند که اگر گزاره داخلشون درست یا True بود کاری که براش تایین شده رو انجام میدند. سینتکسشم سخت نیست:همین طور که میبینید ظرططون رو در جلوی if میذارید و بعد عملیاتی که میخواید انجام بدید رو مینویسید و سپس end رو مینویسید. مثال:درضمن از این به بعد در داخل irb کار نمیکنیم و زین پس فقط خروجی کار رو به همراه کد براتون میذارم.یک دستور دیگر به نام else داریم که در صورت عمل نکردن شرط قبلیش کار میکنه. و فقط وقتی شرط قبلی عمل نکرد کد داخلش اجرا میشه. پس نیازی به نوشتن شرط بعد از اون نیست. برای اینکار باید آخر شرط قبل از end این کارو میکنیم:میوه ما موز هست. تو شرط اول چک میکنیم ببینیم آیا میوه سیب هست ؟؟ میگه نه. در غیر اینصورت که میوه سیب نباشه پس خروجی رو برمیگردونه.یه شیوه دیگر هم داریم وقتی شرط ها زیاد شد میتونیم از else if استفاده کنیم. اون رو هم باید قبل از else به کار ببندیم. و باید جلوش شرطمون رو بنویسیم. فقط دقت کنید که چون سازنده زبان ژاپنی بوده همیجوری elsif نوشته. شما هم باید اینجوری بنویسید:یه نوع از شرط ها هم که معروفند بهش میگند ternery operators که میتونید تو یه لاین شرطتون رو بنویسید:[statement] if [condition]مثال:اون قسمتی که هایلایت کردم statement هست و شرط هم بعد if هست.یه نوع دیگر شرطی ها هست به نام unless که شبیه به if است ولی برعکسش. و با ! if برابر هست:unless [codation]
    [statement]
else
    [statement]
endیعنی به جای اینکه از مدل پایین استفاده کنیم میتونیم از این روش استفاده کنیم.num = 3
if num != 3
    puts &quot;number is not 3&quot;
endswitch-case statement:مواقعی پیش میاد که لازم میشه شما برای تک تک داده ها یک شرط جداگانه تعریف کنید و elsif های پی در پی رو به کار میبرید. سوءیچ کیس ویژگیش برای همین مواقع هست:case expression
when [expression] [, expression]
    [statement]
[else]
    [statement]
endهمونطور که میبینید متغییری که میخواید داده هاش رو چک کنید رو جلوی casکه اگر از case استفاده نمیکردید باید همچین چیزی مینوشتید:در اینجا شرطی هارو تموم میکنیم ولی یک نکته کوچیک میمونه: محدوده هاRanges:رنج ها نوعی داده هستند که دامنه ای از اعداد رو برای شما برمیگردونند. برای مثال وقتی که بخوایم یک آرایه بسازیم که تا ۱ تا ملیون باشه خیلی وقت میبره. برای همین رنج ها رو داریم که آرایه ای از اعداد رو در خود ذخیره میکنند.برای تعریف رنج باید مثل سینتکس پایینی عمل کنید:[name] = [starting point]..[end point]که [starting point] نقطه آغاز و [end point] نقطه پایان محدوده هست. برای مثال بخوایم اعدادی در دامنه ۰ تا ۱۰ رو ذخیره کنیم: ما دو نوع رنج داریم که مثل هم هستند ولی یک نکته کوچیک دارند. ابتدار نام هر دو رو مینویسیم:Inclusive RangeExclusive Rangeاولین نوع رنج ها به گونه ای است که از عدد اول تا عدد دوم آرایه میسازه. ولی در نوع دوم از اولین عدد تا یک عدد قبل تر از عدد دوم آرایه میسازه.درضمن میبینید که اون جوابی که دلخواه شماست رو نمیده و ارایه رو برنمیگردونه. و کل اجزاش رو چاپ نمیکنه. ولی در خط ۵ میبینید که کلاس متغیر range هست. نکته دیگر این است که نمیتونید مستقیما بعد از اینکه رنج رو تعریف کردید جلوش &quot;.&quot; بذارید و از متود هاش استفاده کنید. چون کامپایلر در اینجا خطا میده و برای حل مشکل میتونید رنج رو در پارانتز بذارید یا در خط دیگر از متود استفاده کنید:میبینید که وقتی رنج رو در پارانتز میذاریم ارور برطرف میشه.چندتا متود از رنج ها هم هستند که در ادامه براتون توضیح خواهیم داد.begin &amp; first:این متود ها اولین عدد از رنج رو برمیگردونند و فرقی باهم ندارند:end &amp; last:این متود ها هم آخرین عضو از رنج رو برمیگردونند: در اینجا نکته عجیب اینست که وقتی از تابع end یا last در range_2 استفاده میکنیم که exclusive range هست به جای اینکه ۹ رو چاپ کنه ۱۰ رو چاپ میکنه. این توابع فقط عدد دومی که هنگام ساخت رنج نوشتیم رو نشون میدند و تبدیل به آرایه نمیکنندش. برای اینکه برامون ثابت بشه که عدد ۱۰ در range_2 نیست کد زیر رو نگاه کنید:از تابع ?include برای فهمیدن اینکه آیا این مقدار در آرایه یا رنج وجود دارد استفاده میشه. همینطور که میبینید در range_1 که اینکلوسیو هست عدد ۱۰ وجود داره. ولی در range_2 که اکسلیوسیو هست عدد ۱۰ وجود نداره. درضمن در بعضی از متود ها اگر جلوشون ? بذارید جواب رو به صورت بولی برمیگردونند:میبینید که جواب هایی که انتظار داریم رو برمیگردونند.برای اینکه بخواید اجزای رنج رو باز کنید و به صورت آرایه نشون بدید میتونید نام متغیر رو داخل اسکور براکت بزارید و قبل از اون اشتریسک یا splat oprator یا همون ستاره خودمون رو بذارید:درضمن رنج ها میتونند از حروف هم تشکیل بشند. اگر بخوایم نمایش بدیم حروف به صورت الفبا از اول به آخر چاپ میشوند: تمرین:برای تمرین میخوایم یک برنامه ای بسازیم که رده سنی افراد رو مشخص کنه:میبینید که وقتی از when استفاده میکنیم جلوش یک رنج استفاده کردیم که حتی میتونستید شرط هاتون رو با کاما از هم جدا کنید. ولی برای داده های بزرگتر این مناسب نیست و ما هم از همین رنج استفاده میکنیم.میتونید معادل این برنامه رو به روش سنتی که با چیدن چند شرط پشت هم نیز این کارو بکنید. فقط باید در هنگام گذاشتن شرط از تابع ?include استفاده کنید. این رو به عنوان یک تمرین دیگر از من بپذیرید.امیدوارم که خوندن مطلب براتون سخت نباشه و اگر مشکلی براتون پیش اومد در کامت ها بپرسید. نظرات شما باعث دلگرمی منه و امید و انرژی برای نوشتن مقالات دیگر. درضمن امیدوارم مقاله رو خوب بخونید چون از دیشب هست دارم مینویسم. لایک و کامنت هم یادتون نره.پیروز و پاینده باشید. بدرود</description>
                <category>Ruby</category>
                <author>Gt Mino</author>
                <pubDate>Sun, 11 Aug 2019 23:53:47 +0430</pubDate>
            </item>
                    <item>
                <title>زبان روبی: هش ها</title>
                <link>https://virgool.io/ruby-lang/%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D9%88%D8%A8%DB%8C-%D9%87%D8%B4-%D9%87%D8%A7-btbxoji2kejv</link>
                <description>ببخشید که یکم طول کشید تا این قسمتو بذارم راستش یکم سرم شلوغ بود و نتونستم.خوب هست که برای یادگیری بهتر این قسمت, مقاله قبلی رو مطالعه کنید: https://virgool.io/ruby-lang/%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D9%88%D8%A8%DB%8C-%D8%A7%D8%AF%D8%A7%D9%85%D9%87-%D9%85%D8%A8%D8%AD%D8%AB-%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D9%87%D8%A7-%D9%88-%D8%A2%D8%B1%D8%A7%DB%8C%D9%87-%D9%87%D8%A7-mqqa08msgrug در این قسمت میخوایم به هش ها بپردازیم. هش ها هم نوعی آبجکت هستند که شبیه آرایه ها هستند فقط یه فرق دارند و اونم اینه که در آرایه ها اندیس هم به صورت اتوماتیک سیو میشه و هم عددی هست. اگه بخوایم برای آرایه اندیس بدیم کلا به مشکل برمیخوریم. برای تعریف هش ها باید مقادیر رو در بین {} یا کورلی بریس بذاریم و سپس اندیس آنرا بگذاریم. بعدش مقدار اون رو بعد از نوشتن &lt;= بنویسیم. مثال:hash = { &#039;one&#039; =&gt; 1, &#039;two&#039; =&gt; 2, &#039;three&#039; =&gt; 3 }میتونیم اندیس رو عدد هم بذاریم:hash = { 1 =&gt; &#039;One&#039;, 2 =&gt; &#039;Two&#039; }هتی میتونیم آرایه هم بذاریم:hash = { [20, 30] =&gt; &quot;number&quot; }یا حتی میتونیم سیمبل هم بذاریم:hash = { :one =&gt; &#039;1&#039; }مقدار هم میتونه آرایه یا یه هش دیگه باشه:hash = { &#039;numbers&#039; =&gt; [ 1, 2, 3, 4, 5 ], &#039;fruits&#039; =&gt; { &#039;first&#039; =&gt; &#039;apple&#039;, &#039;second&#039; =&gt; &#039;banana&#039; } }برای نشونه گیری مقدار یه هش میتونید مثل آرایه ها اندیس رو داخل دوتا براکت بذارید:برای اضافه کردن داده به هش هم میتونید مثل نمونه زیر عمل کنید:یه فانکشن هم هست که میتونید باهاش هش رو به آرایه تبدیل کنید که یه آرایه میسازه که در هر اندیس آرایه یه آرایه میسازه که اندیس صفرمش کلیدش هست و اندیس دوم مقدارش:https://virgool.io/ruby-lang/%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D9%88%D8%A8%DB%8C-%D8%A7%D8%AF%D8%A7%D9%85%D9%87-%D9%85%D8%A8%D8%AD%D8%AB-%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D9%87%D8%A7-%D9%88-%D8%A2%D8%B1%D8%A7%DB%8C%D9%87-%D9%87%D8%A7-mqqa08msgrugمیتونید از تابع to_s هم استفاده کنید.برای حذف مقدار هم میتونید از تابع delete استفاده کنید:با توابع first و last هم میتونید اولین و اخرین عضو هش رو بگیرید.این قسمت هم دیگه چیز خاصی نداره و میریم سراغ قسمت بعد. میتونید از لینک زیر قسمت بعدی رو دنبال کنید. https://virgool.io/ruby-lang/%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D9%88%D8%A8%DB%8C-%D8%A7%D8%AF%D8%A7%D9%85%D9%87-%D8%AA%D8%A7-%D8%B4%D8%B1%D8%B7%DB%8C-%D9%87%D8%A7-jimdslgeslq4 پیروز باشید.</description>
                <category>Ruby</category>
                <author>Gt Mino</author>
                <pubDate>Fri, 31 May 2019 19:11:28 +0430</pubDate>
            </item>
                    <item>
                <title>زبان روبی: ادامه مبحث متغیر ها و آرایه ها</title>
                <link>https://virgool.io/ruby-lang/%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D9%88%D8%A8%DB%8C-%D8%A7%D8%AF%D8%A7%D9%85%D9%87-%D9%85%D8%A8%D8%AD%D8%AB-%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D9%87%D8%A7-%D9%88-%D8%A2%D8%B1%D8%A7%DB%8C%D9%87-%D9%87%D8%A7-mqqa08msgrug</link>
                <description>در این قسمت سعی داریم در مورد مقدار های بولی و سیمبل ها و آرایه ها یاد بگیرم.میتونید قسمت قبلی رو از لینک زیر مطالعه کنید: https://virgool.io/@mfartoot14/%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D9%88%D8%A8%DB%8C-%D8%A7%D8%B9%D8%AF%D8%A7%D8%AF-%D8%B5%D8%AD%DB%8C%D8%AD-%D9%88-%D8%A7%D8%B9%D8%B4%D8%A7%D8%B1%DB%8C-fost4rlygj5h بولی ها مقدار های منطقی هستند و دو تا مقدار دارند. یا درست هستند یا نادرست که به انگلیسی هم میشن True و False. برای تعریف بولی ها هم مثل قبل متغیر تعریف میکنیم و جلوش مقدارشو بدون کوتیشن و با حروف کوچک میذاریم.boolean = true
boolean = falseشما میتونید با تابع to_s مقدار بولین هارو هم به استرینگ تبدیل کنید. یا میتونید از عملگر های منطقی استفاده کنید که خیلی مهمند.برای اینکه بفهمیم مقدار متغیری با یه عدده برابر هست باید از عملگر == استفاده کنیم که جواب بولین برمیگردونه:یا برعکس این اتفاق رو هم داریم که میتونیم ببینیم مقدار متغیری با مقداری دیگر برابر نیست:اینجا میبینیم که مقدار متغیر true هست و وقتی از عملگر != استفاده میکنیم اینجوری میشه که آیا true با false برابر نیست؟ که جوابش true یا صحیح هست.میتونیم از &gt; برای برسی کوچکتر بودن و &lt; برای بزرگ بودن و =&gt; برای کوچکتر مساوی و =&lt; برای بزرگتر مساوی استفاده کرد:میبینید که‌ number برابر با ۲ هست و چون نوشتیم کوچکتر مساوی true چاپ کرده.اکنون سوال اینجا هست که آیا میشه چندتا عمل رو در یک خط نوشت. یعنی میشه دوتا برسی رو توی یه خط انجام داد. جواب بله هست و ما میتونیم از عملگر &amp;&amp; برای &quot;و&quot; و از عملگر || برای &quot;یا&quot; استفاده کنیماینجا از عملگر &amp;&amp; استفاده کردیم که در این عملگر باید دوطرفش true باشند تا جواب true برگردونه. وگرنه false برمیگردون.در عملگر || هم هتی اگر یکی از طرف ها true بود جواب true برمیگردونه یا اینکه دو طرف true باشند.که میبینید فقط یکی از طرف ها true هست ولی بازم جواب درست رو برگردونده.در ضمن ما میتونیم به جای دوتا | یا دوتا &amp; از یدونه استفاده کنیم یا به صورت or و and بنویسیم که پیشنهاد میشه برای خوانایی کد دوتا || یا &amp;&amp; بذارید.یه عملگر دیگر داریم که نقیض داده آماری که هست رو برمیگردونه یا مقدار مطقیش رو برعکس میکنه:الان که این عملگر هارو یاد گرفتیم یه برگشتی میدیم به استرینگ ها چون یه چیزی در مورد عملگر ها از یادم رفته بود.اینکه ما میتونیم استرینگ هارو باهم جمع یا به عددی ضرب کنیم:میبینیم که وقتی از عملگر ضرب استفاده میکنیم دوتا استرینگ رو در پشت سر هم گذاشته ولی نکته قابل توجه اینه که وقتی استرینگ رو با &quot;o&quot; جمع کردیم مقدارش تغییر نکرده و وقتی پایین ضرب میکنیم میبینیم o نیستش:برای حل این مشکل باید دوباره مقدار دهی کنیم:چندتا عملگر دیگه هم هستند که میتونید برای ساده تر کردن کدنویسی ازش استفاده کنید:number = 2
number += 2میتونیم از += به جای نوشتن:number = number + 2استفاده کنیم. میتونید از دیگر عملگرهایی همشکل این مثل -= یا *= هم استفاده کنید که من اینجا براتون نذاشتم.آرایه ها:آرایه ها هم نوعی متغیر هستند با این فرق که میتونید تعداد زیادی مقدار بهشت بدین.آرایه ها تو زبان های برنامه نویسی خیلی مهمند و اگه آرایه نبود ما باید از متغیر های زیادی برای ذخیره داده های هم ناممون استفاده میکردیم که اینجوری کد نامنظم میشد و هم از سرعت برنامه کاسته میشد.برای تعریف آرایه باید مثل تعریف متغیر نام و فاصله رو بذاریم و سپس براکت یا اکولاد باز و بسته بنویسیم و هر مقداری که نوشتیم بعدش &quot;,&quot; میذاریم:fruits = [&quot;banana&quot;, &quot;pear&quot;, &quot;apple&quot;]وقتی میخوایم از آرایه ها استفاده کنیم باید اندیس یا شماره اون رو هم بهش بگیم. در زبان های برنامه نویسی اندیس از ۰ شروع میشه و مثلا اندیس apple در آرایه بالا ۲ میشه. ابتدا نام متغیر رو مینویسیم و بعدش [] و داخلش شماره اندیس مقدار رو مینویسیم.بعد از اینکه آرایه رو ساختیم اگه بخوایم بهش مقداری اضافه کنیم میتونیم از عملگر &gt;&gt; استفاده کنیم:یا میتونیم اندیس جدید آرایه رو تعریف کنیم:برای اولین عضو آرایه از تابع first و برای آخرین عضوش از last استفاده میکنیم:برای حذف مقداری از آرایه از تابع delete استفاده میکنیم و مقدار اون رو به تابع پس میکنیم:از تابع uniq میتونیم برای برگرداندن مقدار های یکتا استفاده کنیم(دوستمون ژاپنی بوده و به جای اینکه unique بنویسه همینجوری ساده نوشته یونیک :D).که میبینید اون مقدار هایی که دوتا هستند رو یکی کرده. میتونید بعد تابع ! رو بزارید که مقادیر رو تغییر بده. وگرنه اگه مثل قبل دوباره نام متغیر رو بزنید میبینید تغییری نکرده.این حالت برای بعضی از توابع هست و میتونید تغییرات رو ذخیره کنید.تابعی دیگر داریم که اجزای آرایه رو به هم میچسبونه و یدونه استرینگ میگیره که وقتی وصل کنه چی بینشون بذاره:میتونیم از یه تابعی دیگر که میاد کل آرایه رو بصورت استرینگ در بیارید. چونکه همینجوری آرایه رو بیارید پرینت کنید میبینید که فقط مقادیر رو آورده:بالا که زدیم fruits.to_s میبینیم که قبل از دابل کوت یه بک اسلش گذاشته. این کارو برا این میکنیم که به کامپایلر بفهمونیم که این داخل استرینگ هست نه یک کیورد. وگرنه رشته ای به این شکل در میومد:&quot;[&quot; banana&quot;, &quot;pear&quot;, &quot;apple&quot;]&quot;کامپایلر قاطی میکرد و میگفت که من نمیفهمم داری چی میگی. [ یه استرینگ هست ولی banana شروعش کجاست و اصلا من نمیفهمم که جلوی استرینگ چیزی نوشتی.یا میتونیم برای حل این مشکل از کوتیشن &#x27; استفاده کنیم که بتونیم اون رو توش جا بدیم.یک چیز دیگری هم هست اینه که میتونید متغیر هارو توی استرینگ جا بذارید. اینطور که یه # بنویسید و جلوش یه کروشه یا کورلی بریس بنویسید و اسمشو تو متغیر بیارید:که pear رو آورده تو خودش جا داده.درضمن سیمبل ها هم داشتند از یاد میرفتند ولی اینجا میگم.سیمبل ها چیز هایی هستند که مقدارشون با اسمشون برابره و مقدار دهی نمیشند. اگر مقدار دهیش کنید ارور میده.که اینجوری نوشته میشند::simbleکد بالا متغیری با نام simble میسازه که مقدارشم simble هست.خوب دوستان فکر میکنم تا اینجا کافی باشه و شمارو به خداوند بزرگ میسپارم.قسمت بعدی رو از لینک زیر بخونید: https://virgool.io/ruby-lang/%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D9%88%D8%A8%DB%8C-%D9%87%D8%B4-%D9%87%D8%A7-btbxoji2kejv دلشاد باشید.</description>
                <category>Ruby</category>
                <author>Gt Mino</author>
                <pubDate>Tue, 28 May 2019 00:04:46 +0430</pubDate>
            </item>
                    <item>
                <title>زبان روبی: اعداد صحیح و اعشاری</title>
                <link>https://virgool.io/ruby-lang/%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D9%88%D8%A8%DB%8C-%D8%A7%D8%B9%D8%AF%D8%A7%D8%AF-%D8%B5%D8%AD%DB%8C%D8%AD-%D9%88-%D8%A7%D8%B9%D8%B4%D8%A7%D8%B1%DB%8C-fost4rlygj5h</link>
                <description>در این قسمت سعی داریم به اعداد صحیح یا اینتجر ها بپردازیم و توابع مهم آن را برسی کنیم.اینتجر ها اعداد صحیح بین بازه منفی بی نهایت تا مثبت بی نهایت را شامل میشوند.اینتجر ها تابع خاصی ندارند و میشه باهاشون جمع و ضرب و تقسیم و توان و این کارارو کرد. تابعی که شاید به کار بیاد تابع next هست که عدد بعدی رو برمیگردونه.قسمت قبلی رو هم میتونید از لینک زیر مطالعه کنید: https://virgool.io/@mfartoot14/%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D9%88%D8%A8%DB%8C-%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D9%87%D8%A7-%D9%88-%D8%A7%D8%B3%D8%AA%D8%B1%DB%8C%D9%86%DA%AF-%D9%87%D8%A7-jazn0dtagv8r اعداد اعشاری:اعداد اعشاری در روبی مانند دیگر زبان ها نوشته میشوندک در هنگام نوشتن اعداد اعشاری دقت کنید که بعد از نوشتن عدد اعشاری تابعی صدا نزنید که روبی در اینجا قاطی میکنه و ارور میده:puts 3.14.to_iتابع to_i:این تابع که عدد اعشاری را به عدد صحیح تبدیل میکند قسمت اعشاری متغیر را حذف میکند هتی اگر قسمت اعشاریش از 0.5 هم بیشتر باشد.تابع round:این تابع قسمت اعشاری متغیر را گرد میکند. به صورتی که اگر قسمت اعشاری از 0.5 بزرگتر بود قسمت اعشاری را حذف میکند و مقدار متغیر را یک واحد افزایش میدهد یا اگر قسمت اعشاری از 0.5 کوچکتر بود حذفش میکند و عدد پشت اعشار را برمیگرداند.تابع ceil:این تابع قسمت اعشاری عدد را حذف کرده و مقدار متغیر را یک واحد می افزاید. یا به صورتی به سمت بالا گرد میکند.تابع floor:این تابع هم قسمت اعشار را حذف میکند و یا آنرا به سمت پایین گرد میکند. عملکرد این تابع شبیه تابع to_i هست و فرقی باهم ندارند.در این قسمت هم توابع مهم را یاد گرفتیم و میریم سراغ قسمت بعد.میتونید قسمت بعدی رو در لینک زیر مطالع کنید: https://virgool.io/@mfartoot14/%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D9%88%D8%A8%DB%8C-%D8%A7%D8%AF%D8%A7%D9%85%D9%87-%D9%85%D8%A8%D8%AD%D8%AB-%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D9%87%D8%A7-%D9%88-%D8%A2%D8%B1%D8%A7%DB%8C%D9%87-%D9%87%D8%A7-mqqa08msgrug سپاس فراوان.</description>
                <category>Ruby</category>
                <author>Gt Mino</author>
                <pubDate>Sun, 26 May 2019 22:03:20 +0430</pubDate>
            </item>
                    <item>
                <title>زبان روبی: متغیر ها و استرینگ ها</title>
                <link>https://virgool.io/ruby-lang/%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D9%88%D8%A8%DB%8C-%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D9%87%D8%A7-%D9%88-%D8%A7%D8%B3%D8%AA%D8%B1%DB%8C%D9%86%DA%AF-%D9%87%D8%A7-jazn0dtagv8r</link>
                <description>همانگونه که در مورد زبان های شیء گرا گفته بودیم اینکه بسیاری از بخش های روبی آبجکت هستند. باید گفت که متغیر ها که میشن کلاس شیء نیستند و به عنوان حافظه ای برای ذخیره داده های کوتاه مدت در مموری هستند. متغیر ها مانند کاسه ای میتوانند اجزا را درون خود جای داده و در صورت نیار استفاده شوند.در روبی برای تعریف متغیر کافی است نام آن را نوشته سپس یک علامت مساوی و سپس داده ای که میخواهیم به آن بدهیم را مینویسیم.قوانین نام گذاری متغیر ها:برای نام گذاری متغیر ها یک سری قوانینی هست که باید رعایت بشه.کاراکتر هایی که میتونید ازشون برای نام گذاری متغیر ها استفاده کنید حروف انگلیسی و اعداد هستند.این نکته را هم متذکر بشویم که نباید نام متغیر با عدد شروع بشود. درضمن نمیتونید از سیمبل ها هم استفاده کنید مثلا: #قانون دیگری هم که است اینه که نباید اسم متغیرتون هم اسم با کلید واژه های رزرو شده روبی باشه. یعنی اینکه نمیتونید متغیری با نام true یا if یا هر کلید واژه ای که هست رو بیارید. در زیر لیستی از این کلیدواژه هارو آوردم:لیستی از کلید واژه های رزرو شده در روبی
درضمن شما نمیتونید بین نام متغیرتون فاصله بذارید و به جاش میتونید از &quot;ـ&quot; یا آندراسکور استفاده کنید.چند نوع متغیر داریم که در زیر لیست میکنم:استرینگ هااینتیجر ها یا اعداد صحیحاعداد اعشاریبولین هاسیمبل هادر این قسمت قصد داریم با استرینگ ها آشنا بشویم.میتونید قسمت قبلی رو در اینجا مطالعه کنید: https://virgool.io/@mfartoot14/%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D9%88%D8%A8%DB%8C-%D9%85%D9%82%D8%AF%D9%85%D9%87-o5aydojzabqh استرینگ ها:استرینگ ها هر نوع داده ای که با متن ها و اعداد و هر کاراکتری که در جهان باشد رو شامل میشند. فقط دقت کنید که اعداد استرینگ نیستند. و هتی اعدادی که به صورت استرینگ هم ذخیره میشوند هم عدد صحیح نیستند. استرینگ هارو میتونید بین دوتا &quot; یا &#x27; به ترتیب دابل کوتیشن و کوتیشن تعریف کنید.زیاده گویی نمیکنم و میریم سمت کدنویسی.خوب, مشاهده میکنید که ما متغیر رو تعریف کردیم و irb هم مقدار اون رو برگشت داده.برای استفاده از متغیر کافیه اسم اون رو در هرجایی که بخواید بیارید.میبینید که وقتی نام اون رو میاریم کامپایلر مقدار اون رو برمیگردونه. فقط دقت کنید که وقت از دستور puts استفاده میکنید با اینکه اسم متغیر رو بیارید فرق میکنه. puts میاد مقدار اون رو در خروجی چاپ میکنه و مقدار برگشتیش از نوع nil هست. ولی نام متغیر رو بیارید هیچچی چاپ نمیکنه و فقط مقدار متغیر همینجوری در محیط برنامه چپونده میشه و کامپایلر اینو نادیده میگیره. توی irb وقتی نام متغیر رو بیاریم مقدارش رو چاپ میکنه ولی وقتی از کامپایلر روبی اجراش کنید کار نمیکنه.توابع کار با استرینگ ها در روبی:روبی در کنار خودش توابع یا متود هایی داره که میتونید با استفاده از اونا به کار با متغیر ها بپردازید. برای استفاده از متود ها در روبی میتونید جلوی متغیر یا استرینگ . بذارید و سپس نام متود رو بذارید و بعد () رو بنویسید. که داخل پارانتز پارامتر های ورودی رو مینویسید که فعلا نمیخوایم عجله کنیم. در قسمت های پیش رو یادش خواهیم گرفت.a = &quot;Hello&quot;
puts a.reverse()میبینید که با نوشتن تابع Reverse متن برعکس میشه. که میتونید پارانتز هارو هم حذف کنید و به این صورت در بیاریدputs a.reverseهتی لازم نیست متغیر تعریف کنید و همینجوری استرینگ رو بچپونید بهش:puts &quot;Hello&quot;.reverseکه در هر صورت جواب یکسانهکه در هر صورت جواب ; رو میگیرید:تابع upcase:این تابع هم همه کاراکتر هارو به صورت بزرگ مینویسه:تابع downcase:این تابع هم برعکس تابع بالایی متن رو کوچیک میکنه:تابع capitalize:این تابع هم اولین کلمه استرینگ رو بزرگ میکنه: مبحث متغیر هارو هم در اینجا تموم میکنیم و میریم به سمت اینتیجر ها.قسمت بعدی رو میتونید در لینک زیر مطالعه کنید: https://virgool.io/@mfartoot14/%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D9%88%D8%A8%DB%8C-%D8%A7%D8%B9%D8%AF%D8%A7%D8%AF-%D8%B5%D8%AD%DB%8C%D8%AD-%D9%88-%D8%A7%D8%B9%D8%B4%D8%A7%D8%B1%DB%8C-fost4rlygj5h منتظر نظراتتون هستم.</description>
                <category>Ruby</category>
                <author>Gt Mino</author>
                <pubDate>Sun, 26 May 2019 18:44:11 +0430</pubDate>
            </item>
                    <item>
                <title>زبان روبی: مقدمه</title>
                <link>https://virgool.io/ruby-lang/%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D9%88%D8%A8%DB%8C-%D9%85%D9%82%D8%AF%D9%85%D9%87-o5aydojzabqh</link>
                <description>روبی زبانی شی گراست که با تلاش های یوکیهیرو ماتسوموتو یا محففش که میشه Mats در پایان دهه ۱۳۶۰ خورشیدی در ژاپن ساخته شد. روبی ویژگی های نگارشی پرل و اسمال تاک را داراست که مانند آن برای کدنویسی و یا معرفی انواع متغیر ها یا کلاس و... از کلید واژه ها استفاده میشه. ایده ساخت زبانی شیء گرا تر از پایتون و قدرتمند تر بودن از اسمال تاک امید بخش Mats برای ساخت این زبان بوده است.زبان های شیء گرا هر روز پا به عرصه میگذارند که از معروفترین آنها Python و محبوب ترین آنان Ruby و Elixir و Go پرداخت. این زبان ها میتوان گفت که بسیاری از بخش کدنویسی آنها آبجکت و یا شیء بوده که در روبی هتی عملگرهایی مانند + و * و / و - هم شی هستند. و همه ساختار یا بلوک اصلی اجزای  انها شیء ها هستند. در واقع در این شیوه برنامه‌نویسی، برنامه به شی گرایش پیدا می‌کند. به این معنا که داده‌ها و توابعی که قرار است بر روی این داده‌ها عمل کنند، تا حد امکان در قالبی به نام شی در کنار یکدیگر قرار گرفته، جمع‌بندی شده و یک واحد (شی) را تشکیل داده و نسبت به محیط بیرونِ خود، کپسوله می‌شوند و از این طریق، توابع بیگانهٔ خارج از آن شی، دیگر امکان ایجاد تغییر در داده‌های درون آن شی را ندارند.روبی میتونه یکی از زبان هایی باشه که آینده خوبی داشته باشه و اکنون برنامه نویسان برای پیشرفت در کار و حتی پول بیشتر وارد این حوزه میشوند. شرکت های مطرح در جهان به دنبال برنامه نویس روبی هستند و هتی  در بازار های خارجی نیز از استقبال خوبی برخوردار است. ولی شوربختانه این زبان در کشور ما دچار بی مهری های گوناگونی شده و زمینه ای مناسب برای پیشرفت در این کار نگذاشته شده. ما اینجا اومدیم تا در قالب یک سری مقالات این کمبود را جبران کنیم تا سطح سواد برنامه نویسان در این بحث را بالا ببریم.آمار های گیتهاب هم نشان میدهند که این زبان از محبوبیت خوبی برخوردار است و جای پیشرفت خوبی را دارد.روبی به صورت کامپایلر یا مترجم تک گذره ای یا خطی توسط زبان C نوشته شده که این ویژگی باعث میشود در بسیاری از سیستم عامل های موجو قابل اجرا باشد. این زبان را میتوانید از راه Ruby installer در ویندوز یا Rbenv در سیستم عامل های یونیکس بیس نصب کنید.نصب روبی:‌ Rbenvبرای نصب Rbenv ابتدا باید در سیستم خود گیت(Git) را داشته باشید که در مک اگر Xcode را داشته باشید بدونید که Git هم نصبه. برای نصب گیت بر روی هر سیستمی میتونید از مقاله دوستمون که در ویرگول منتشر کرده استفاده کنید.پس از نصب گیت باید سورس رو از گیتهاب کلون کنید:سپس برید به پوشه Rbenv و دستور میک رو بزنید:الان که تونستیم Rbenv رو نصب کنیم میریم به سراغ اضافه کردنش به PATH و نصب روبی.برای اضافه کردن به Path اگه از Zsh استفاده میکنید .zsh_profile یا اگه از Bash استفاده میکنید .bash_profile را توسط nano یا هر ادیتوری که دارید ادیت کنید:و این خط را اضافه میکنید:و الان نصب روبی: ‍ترمینال را بسته و دوباره باز میکنید و میزنید: اگر ورژن روبی رو دریافت کردید یعنی اینکه نصب با موفقیت انجام شده و میتونید شروع کنید به کد نویسی.پس از نصب روبی میخوایم با irb که مخفف Interactive Ruby Shell آشنا بشیم که میتونید با این ابزار برنامه خودتون رو خطی اجرا کرده و شروع به کدنویسی کنید.دستور irb را در ترمینال زده و شروع به کد نویسی میکنیم:محیط کد نویسی اون تابعی که داریم توش برنامه رو اجرا میکنیم و همچنین لاین رو نشون میده. ساده ترین دستور در روبی:الان که تونستیم روبی رو نصب کنیم و ای ار بی رو هم اجرا کنیم مینویسیم:میبینیم که اون چیزی که داخل دوتا &quot; نوشتیم چاپ شده و جلوش هم یه مقداری برگشت داده که بعدا باهاش آشنا خواهیم شد.برای چاپ کردن رشته یک دستور دیگری به نام puts داریم که اونم یه لاین بریک یا سر سطری میذاره:میبینیم که یه همون جوابه ولی یه لاین ریتورن داده و افتاده پایین.فعلا برای این جلسه کافیه و ما تونستیم روبی رو نصب کنیم و سپس دستور چاپ رو هم یاد بگیریم.منتظر نظرات خوب و انتقاد هاتون هستم تا این اموزش هارو بهتر و بهتر برای پیشرفت شما فراهم کنم.نظراتتون امید بخش من هستند پس اصلا فراموش نکنید.راستی نگید اون هتی که نوشتی اشتباهه. خودم اینگونه نوشت چون درستش همینهمیتونید قسمت بعدی رو هم از این لینک دنبال کنید: https://virgool.io/@mfartoot14/%D8%B2%D8%A8%D8%A7%D9%86-%D8%B1%D9%88%D8%A8%DB%8C-%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D9%87%D8%A7-%D9%88-%D8%A7%D8%B3%D8%AA%D8%B1%DB%8C%D9%86%DA%AF-%D9%87%D8%A7-jazn0dtagv8r با عشق</description>
                <category>Ruby</category>
                <author>Gt Mino</author>
                <pubDate>Sun, 26 May 2019 14:55:08 +0430</pubDate>
            </item>
                    <item>
                <title>نصب روبی و روبی آن ریلز روی ویندوز</title>
                <link>https://virgool.io/ruby-lang/%D9%86%D8%B5%D8%A8-%D8%B1%D9%88%D8%A8%DB%8C-%D9%88-%D8%B1%D9%88%D8%A8%DB%8C-%D8%A2%D9%86-%D8%B1%DB%8C%D9%84%D8%B2-%D8%B1%D9%88%DB%8C-%D9%88%DB%8C%D9%86%D8%AF%D9%88%D8%B2-zgseaonodwvm</link>
                <description> همونطور که میدونیم نصب و استفاده زبان های برنامه نویسی و فریمورک ها در ویندوز به آسانی لینوکس و مک نیست.البته در این مورد نظر ها متفاوته ولی متاسفانه در مورد بیشتر برنامه های مورد استفاده دولوپر ها صدق میکنه.روبی آن ریلز هم مثل زبونش هزار راه برای رسیدن به هدف برای ما قرار داده ولی هدف ما نصب منطقی و به روزترین نسخه و راحت ترین روش هستش :)اگر به جای خوندن تمام روش های نصب روبی یک روش رو دنبال کنید خیلی راحت به نتیجه میرسید. نصب روبی و روبی آن ریلز در واقع پیچیدگی خاصی نداره دلیل اینکه سخت بنظر میرسه راه های مختلف نصب و آموزش های قدیمی که همخوانی با برنامه جدید ندارند هستش که کاربر رو سردر گم میکنه.اصلابه نظر خیلی ها قدیما نصب روبی روی ویندوز از خود روبی سخت تر بود.  پیش نیاز نصب :---- فقط روبی ! ----- قدم اول نصب روبی :اگر میخواین مثل یه حرفه ای رفتار کنید برنامه و پکیج های از پیش تعریف شده سایت هایی که سرچ کردین رو فراموش کنید. راحت ترین و مطمئن ترین راه نصب دستی روبی آن ریلز هستش.* سایت روبی آن ریلز اینستالر رو فراموش کنید چون از نسخه و کتابخانه های قدیمی روبی آن رلیز استفاده میکنه و ما این رو نمیخوایم.(اگر چه همه نیازمندی های ما در مورد گیت و هروکو و... رو رفع میکنه ولی ما خودمون میتونیم بر حسب نیاز بعدا نسخه به روزشون نصبشون کنیم)تنها فایل نصبی ما در این آموزش روبی هستش و باقی برنامه ها رو از کامند لاین روبی نصب میکنیمخوب تنها سایتی که برای دانلود و نصب روبی نیاز دارین سایت رسمی روبی هستش که در نهایت ارجاعتون میده به سایت روبی اینستالر، پس مستقیاً از همین لینک برنامه رو دانلود کنید.خوشبختانه پیچیدگی های نصب روبی با اومدن همه نیازمندی های نصب در یک پکیج رفع شده.شما لازم نیست جز این پکیج نصب شده چیز دیگه رو نصب کنید.البته منطقی تر اینه که از نسخه های مطمئن تر به جای نسخه آپدیت شده استفاده کنید ولی من همیشه این ریسک رو میپذیرم.اگرچه تمامی نسخه های قرار داده شده پایدار هستند.بعد از دانلود و هنگام نصب روبی حتما گزینه utf رو هم تیک بزنید.پس از اتمام نصب روبی اتوماتیک نیازمندی هاش رو نصب میکنه. در مورد این پکیج بدونین فقط بعد از اومدن این عکس ابتدا 3 و بعد از نصب 2 رو انتخاب کنید.همین.ابتدا گزینه 3 و بعد از آن گزینه 2 را تایپ کرده و اینتر بزنید- تعیین مسیر bash روبی برای ویندوزچون کاربر آماتور نیستین دیگه توضیح نمیدم چی توی استارت سرچ کنید و کجا برید.تصویر مشخصهباید پوشه bin روبی ای که نصب کردین رو به Path بدین.طبق تصویر مسیر فایل رو به پوشه نصب روبی و قسمت bin بدینخوب روبی نصب شد :) میتونید با دستور ruby -v  نسخه روبی رو چک کنید.برنامه CMD یا CLI روبی رو بالا میاریم و چک میکنیم که اجرا میشه یا نه اگر مشکلی بود احتمالا مشکل همون خوانا نبودن کاراکترهای utf8 هستش که با اینکه گفتم تیک شون رو نزدین.قدم دوم : نصب روبی آن ریلز :قلق کار اینه که خیلیا نمیدونن ریلز هم یکی از جم های روبی هستش و میتونن از همونجا نصبش کنن!کافیه دستور نصب جم رو با اسمش بزنید تا نصب شه !نصب GEM: نصب جم روبی کار خاصی نداره میتونید برید روش هاش رو در سایتش ببینید.سریع ترین روش شاید این دستور باشه:$ gem update --systemخوب بعد از نصب جم مثل همه جم ها با دستور در کامند لاین نصبش کنید.و با همان دستوری که روبی رو تست کردین ورژن و موجودیت روبی آن ریلز رو هم تست کنید.$ gem install railsکار تمومه!مشکل نصب mysql روی ویندوز برای روبی آن ریلز :فقط mysql به جای sqllite دیتابیس انتخابیتون هست طبیعیه که باید اون رو جدا از سایتش دانلود و نصب کنید.گهگاه روی ویندوز بازی درمیاره که طریقه نصب دستیش توی یوتوب هست.البته پیشنهاد من postgresql هستش.</description>
                <category>Ruby</category>
                <author>Mehrdad Khishtandar</author>
                <pubDate>Fri, 22 Feb 2019 21:51:40 +0330</pubDate>
            </item>
                    <item>
                <title>زبان برنامه نویسی روبی(Ruby)</title>
                <link>https://virgool.io/ruby-lang/ruby-programing-language-a1qvyjls5p3j</link>
                <description>یک زبان برنامه نویسی انعطاف پذیر و متن باز با تمرکز بر سادگی و بهره وری و شیء گرا است. روبی ویژگی‌های نگارشی پرل و شی گرایی اسمال‌تاک را با هم در خود دارد. زبان روبی در سال‌های میانی دهه ۱۹۹۰ توسط یوکیهیرو ماتسوموتو در ژاپن اختراع شد. ویژگی‌های گوناگون زبان‌های پرل، لیسپ، اسمال‌تاک و آیفل الهام‌بخش ماتسوموتو در ساخت روبی بودند.زبان برنامه نویسی روبی از پارادایم های(شیوه های) مختلف برنامه نویسی از جمله تابعی و شیءگرا و بازتابی پشتیبانی می کند.روبی یک زبان متن باز و رایگان است نه تنها رایگان، بلکه رایگان برای استفاده، کپی، تغییر و توزیع است.روبی در میان ۱۰ زبان برنامه نویسی برتر از دید شاخص های اندازه گیری مثل TIOBE است.ساختار کد(Syntax)ساختار کد در روبی بسیار شبیه Syntax پرل و پایتون است. اعلان کلاسها و متدها توسط کلمات کلیدی انجام می‌شود. در مقایسه با پرل متغیرها الزاماً با یک علامت خاص شروع نمی‌شوند. (وقتی از چنین علائمی استفاده شود علامت حوزه دید متغیر را تغییر می‌دهد) بارزترین تفاوت روبی از C و Perl آنست که کلمات کلیدی (بجای براکت) برای تعریف بلوکهای کد استفاده می‌شوند. سطر جدید به‌عنوان پایان یک جمله بکار برده می‌شود در عین حال که برای اینکار می‌توان از یک سمی کالون (;) نیز استفاده کرد. تورفتگیها معنی خاصی ندارند (برعکس پایتون). نمونه‌هایی از Syntax روبی:مثال کلاسیک Hello world:  puts &quot;Hello World!&quot;مقداری کد اساسی روبی: # Everything, including a literal, is an object, so this works:
 -199.abs                                       # 199
 &quot;ruby is cool&quot;.length                          # 12
 &quot;Rick&quot;.index(&quot;c&quot;)                              # 2
 &quot;Nice Day Isn&#039;t It?&quot;.split(//).uniq.sort.join  # &quot; &#039;?DINaceinsty&quot;
Collectionsایجاد و استفاده از یک آرایه: a = [1, &#039;hi&#039;, 3.14, 1, 2, [4, 5]]

 a[2]                      # 3.14
 a.reverse                 # [[4, 5], 2, 1, 3.14, &#039;hi&#039;, 1]
 a.flatten.uniq            # [1, &#039;hi&#039;, 3.14, 2, 4, 5]
ایجاد و استفاده از یک هش: hash = {:water =&gt; &#039;wet&#039;, :fire =&gt; &#039;hot&#039;}
 puts hash[:fire]                  # Prints:  hot

 hash.each_pair do |key, value|    # Or:  hash.each do |key, value|
   puts &quot;#{key} is #{value}&quot;
 end

 # Prints:  water is wet
 #          fire is hot

 hash.delete_if {|key, value| key == water}  
 ساخت یک کلاس:class Numeric
  def plus(x)
    self.+(x)
  end
end

y = 5.plus 6پیاده‌سازی‌هاروبی  پیاده‌سازی های مختلفی دارد: MRI (&quot;Matz’s Ruby Interpreter&quot;)
CRuby (since it is written in C)
JRuby (is Ruby atop the JVM (Java Virtual Machine))
MacRuby (is a Ruby that’s tightly integrated with Apple’s Cocoa libraries for Mac OS X)
Rubinius (Built on top of LLVM)
mruby (for embedded System)
IronRuby (is an implementation “tightly integrated with the .NET Framework)
MagLev is “a fast, stable, Ruby implementation with integrated object persistence and  distributed shared cache”.
Cardinal is a “Ruby compiler for Parrot Virtual Machine” (Perl 6).ویژگی ها:   روبی دارای ویژگی های مدیریت استثناءها مانند Java یا Python است تا بتواند کنترل خطاها را آسان کند.    روبی دارای یک جمع کننده زباله(garbage collector) برای همه اشیاء Ruby است.   بوسیله روبی نوشتن اکستنشن ها برای زبان C ساده تر از پرل یا پایتون است.    روبی بسیار قابل حمل است: بیشتر در گنو / لینوکس توسعه یافته است، اما در بسیاری از انواع UNIX، Mac OS X، ویندوز، DOS، BeOS، OS / 2 و غیره کار می کند.فریمورک‌ها۱-روبی آن ریلز فریمورک محبوب و مورد علاقه ی اکثر برنامه نویسان روبی است که در سال ۲۰۰۵ توسط آقای David Heinemeier Hansson یا به احتصار DHH بنیان‌گذاری شد ، به‌طور دیگر میتوان گفت اکثر برنامه نویسان توسط ریلز به روبی کشیده شده‌اند ! نام‌های «روبی» و «روبی آن ریلز» آنقدر با هم استفاده شده‌اند که برای بسیاری شاید تفاوت این دو روشن نباشد.۲-سیناترا یکی دیگر از فریمورک‌های قدرتمند روبی می‌باشد که ساختار بسیار سبک تری نسبت به روبی آن ریلز دارد و ساختار پایه‌ای آن شامل مدیریت کردن مسیرها می‌باشد ( نکته : اما در صورت نیاز میتوان پکیج‌های روبی آن ریلز را در آن وارد کرد ) ، سیناترا توسط Blake Mizerany و از معماری MVC برخوردار است.۳-پادرینو یک فریمورک کوچک با helper‌های بسیار کربردی است یکی از مهم‌ترین مزایای پادرینو داشتن generator می‌باشد که به توسعه نرم‌افزار کمک شایانی می کند .جامعه آماری(Community) و بررسی وب سایت های معروف:بررسی سایت TIOBEتعداد پروژه های گیت هابدرآمد ماهیانه سایت Indeed.com البته بیشتر سمت کانادا و آمریکاست آمارهاشدرآمد ماهیانه سایت StackOverflowجستجوی گوگلمنابع : سایت زبان برنامه نویسی روبیویکی پدیا</description>
                <category>Ruby</category>
                <author>مصطفی حسین زاده</author>
                <pubDate>Sun, 13 May 2018 20:21:53 +0430</pubDate>
            </item>
            </channel>
</rss>