یک پروژه نمونه

همانگونه که در فصل پیش گفته شد، یکی از بزرگترین کاربرد های روبی، کاربرد آن در وب است. همچنین، در این بخش، مدیریت بسته ها و همچنین چگونگی هندل کردن پیش نیاز های پروژه را بررسی خواهیم کرد. همچنین چگونگی جست و جو و مطرح نمودن سوالات نیز در این فصل بررسی می گردد. پس از یادگیری این فصل، شما قادر خواهید بود یک پروژه روبی را با استفاده از تکنولوژی های مطرح شده، ایجاد و مدیریت کنید.

آشنایی با جم ها

روبی، برای اینکه بتواند کتابخانه ها و چارچوب های مورد نیاز خود را نصب کند، از یک سیستم مدیریت بسته به نام gem استفاده میکند. هر جم، شامل یک یا چند کتابخانه یا قطعه کد است که در هر کدام، تعدادی تابع و کلاس و ماژول نوشته شده است.

استفاده از کتابخانه های اضافی

برای نصب کتابخانه های اضافی، ابتدا نیاز داریم که جم مورد نیاز را نصب کنیم. برای مثال در اینجا نیاز داریم جم sinatra را برای ران کردن پروژه خود استفاده کنیم. به این شکل آن را نصب میکنیم :

gem install sinatra

سپس، این بسته و پیش نیاز و وابستگی های آن، روی سیستم نصب می شود. اکنون نیاز داریم در کد خود، با استفاده از این قطعه کد، آن را استفاده کنیم :

require 'sinatra'

با استفاده از این خط، مفسر ملزوم می شود که کد هایی که در کتابخانه sinatra وجود دارد را بررسی کند و در صورت فراخوانی در کد اصلی، آنها را در خروجی قرار دهد.

هندل کردن پیش نیاز ها و وابستگی ها با استفاده از Bundler

از آنجایی که نمیتوان همیشه کاربر را مجبور به نصب دستی پیش نیاز ها و وابستگی ها کرد، نیاز داریم تا به شکلی، پیش نیاز ها و وابستگی های پروژه را، در یک محیط ایزوله نصب کنیم. برای این کار، در روبی بسته ای به نام bundler در نظر گرفته شده است. بسته باندلر، اطلاعات خود را از فایلی به اسم Gemfile خوانده و سپس یکی یکی آنها را در فولدر پروژه نصب میکند.

ایجاد پروژه سیناترای جدید

خب، در اینجا تصمیم داریم که با استفاده از سیناترا، یک پروژه ایجاد کنیم. ابتدا، فولدری به اسم sinatra-project ایجاد میکنیم. درون این فولدر، باید دو فولدر دیگر، به نام های views و public هم ایجاد کنیم. فولدر views برای کدهای HTML و فولدر public را برای css و جاوااسکریپت خود استفاده میکنیم (البته میتوان بسته به شرایط، تغییراتی ایجاد نموده و این فولدر ها را جابجا استفاده کرد). اکنون، یک فایل منبع روبی خالی، به اسم app.rb ایجاد کرده، سپس اقدام به ایجاد ایندکس خواهیم کرد. در کل، باید فولدر ما به این شکل باشد :

sinatra-project/
├── app.rb
├── pubic
└── views
    └── index.erb

نوشتن برنامه Hello World

برای نوشتن این برنامه، تنها کافیست app.rb را باز کرده، سپس این محتوا را به آن بیافزایید :

require 'sinatra'

get '/' do
 "Hello, World"
end

اضافه کردن صفحه ایندکس

بسیار خوب، ما در قسمت قبلی، یک «سلام دنیا» مختصر و مفید را نوشتیم. در اینجا، میخواهیم کمی بهتر کار کنیم، پس فایل ایندکس را ویرایش میکنیم. فایل views/index.erb را باز میکنیم و این خطوط را به آن می افزاییم :

<head>
<title>Hello, World</title>
</head>
<body>
<h1> Hello, World!</h1>
</body>

پس از این که خطوط بالا را به پروژه اضافه کردیم، نوبت آن است که در app.rb تغییراتی ایجاد کنیم. خطوط زیر باید به app.rb افزوده شوند :

get '/' do
 erb :index
end

توجه : در اینجا، خط اول که شامل عبارت require بود آورده نشده، اما برای همه پروژه های سیناترا لازم است که این خط را در کد خود داشته باشیم.

بسیار عالی، اکنون چیزی که داریم، یک پروژه سیناترا است که میتواند اجرا شود و به ما پیامی نشان دهد. این پروژه، صرفا یک نمونه است، در ادامه یک نمونه از استفاده مستقیم از روبی در ERB هم به شما نشان داده خواهد شد :

برنامه نمایش ساعت و تاریخ

برای نمایش ساعت و تاریخ در یک صفحه HTML ، معمولا از کتابخانه های جاوااسکریپتی استفاده می شود. در اینجا، ما این کار را با استفاده از خود روبی انجام میدهیم. فقط کافیست با استفاده از کلاس Time و ERB این کار را انجام دهیم. فایل views/index.erb را باز کرده و سپس این کد را درون آن اضافه میکنیم:

<h1> <%= Time.now() %></h1>

نوشتن استایل و css

از آنجایی که در این کتاب، صرفا مباحث مربوط به روبی را تحت پوشش قرار دادیم، از css و js های اضافی، چشم پوشی کردیم. اما چنانچه مایل هستید که از این محتوا استفاده کنید، میتوانید با اضافه کردن این خط در تگ head در فایل erb خود، و قرار دادن استایل های مورد نظرتان در پوشه public پروژه خود را زیبا تر کنید.

<link rel="stylesheet" href="/style.css" />

اجرای پروژه

بعد از این که پروژه را نوشتیم، نوبت اجرای فایل app.rb میرسد. برای اجرای این پروژه کافیست در محیط خط فرمان تایپ کنیم :

:~$ ruby app.rb

و سپس با وارد کردن آدرس localhost:4567 در نوار آدرس مرورگر، نتیجه کار خود را ببینیم.

تغییر پورت

پورت پیشفرض سیناترا 4567 است. اما میتوانیم آن را عوض کنیم. کافیست در محیط ریشه فولدر sinatra-project یک فایل به اسم config.ru ایجاد کرده و سپس این محتوا را به آن بیافزاییم :

require 'sinatra'
load 'app.rb'

app = Sinatra::Application

run app

و برای اجرای پروژه کافیست که این دستور را در خط فرمان وارد کنیم :

:~$ rackup -p 8000

اکنون برنامه از پورت ۸۰۰۰ اجرا می شود. البته فولدر پروژه نیز به این شکل تغییر میکند :

sinatra-project/
├── app.rb
├── config.ru
├── pubic
└── views
    └── index.erb

جمع بندی

در فصول گذشته، از ابتدا تا انتهای برنامه نویسی در روبی را بررسی کردیم. در این فصل، یکی از ابزارهای روبی را مورد بحث و بررسی قرار دادیم و یک پروژه خیلی ساده را با استفاده از آن لانچ کردیم. این پروژه، نشان داد که با وقت گذاشتن و مطالعه زبان، و راهنمای ابزارهای آن، میتوان ابزارهای بیشتر و گسترده تری را توسعه داد و به ثمر رساند و از آن استفاده کرد. اگر قسمتی از این فصل برایتان مبهم بود، توصیه می شود که دوباره از ابتدا تا اینجا را مطالعه و تمرین کنید، و سپس به این فصل بیایید و سعی کنید بدون این که کد ها را بخوانید، پروژه را برای خود بازنویسی کنید. می توان گفت که دیگر، مباحث کتاب تمام شده و دیگر بحثی پیرامون برنامه نویسی در روبی، جایز نیست.

results matching ""

    No results matching ""