در دنیای توسعه ی نرم افزار استفاده از سیستم‌های مدیریت تسک‌های تکراری روشی برای اتوماتیک کردن کارهای تکراری و پیچیده و خسته‌کننده است است. مثال کلاسیک آن گنو make است که در بیشتر پروژه‌هایی که از زبان‌های c و ++c و بیشتر کتابخانه‌ها و ابزارهای لینوکسی دیده‌اید از آن استفاده شده است.

اگر توسعه دهنده ی ruby هستید، rake یکی از بهترین ابزارها برای اتوماتیک کردن عملیات‌ها و دستورات است که برای توسعه دهندگان این زبان ساخته شده است و به وفور در پروژه‌های این زبان مانند rails و .. استفاده شده است.

برای استفاده از rake ابتدا جم مربوط به آن را نصب کنید :

gem install rake

برای انجام هرکار بصورت خودکار، یک تسک برای آن تعریف میکنیم. ساختار کلی تسک ها در rake بصورت زیر است :
task :taskname do
    jobs
end

که به جای taskname یک نام برای تسک مورد نظر گذاشته و بجای jobs عملیات‌هایی که تسک مورد نظر ما باید انجام دهد را مینویسیم. ساختار ریک همانند روبی است و از دستورات روبی میتوان در لابه‌لای تسک‌ها استفاده نمود.

برای مثال تسکی به نام sayhi که عبارت `Hello, rake` را روی صفحه نمایش میدهد را بصورت زیر مینویسیم :
task :sayhi do
    puts "Hello, rake"
end

کدهای نوشته شده در rake را در فایلی بنام Rakefile در پروژه ذخیره میکنند. کد بالا را در یک دایرکتوری ذخیره کنید و پس از ورود به ان دایرکتوری، برای اجرای این تسک دستور rake sayhi را بزنید. اگر مراحل را درست انجام داده باشید باید عبارت `Hello, rake` روی ترمینال شما نمایش داده شود.

یک مثال کاربردی تر اجرای یک فایل روبی است. دستورات خط فرمان را میتوان  با متد درونی rake بنام sh  فراخوانی،اجرا و استفاده کرد.
task :run do
    sh('echo "puts \"hi\"" > hi.rb')  
    sh("ruby","hi.rb")
do

کد بالا اگر درست نوشته و اجرا شود مقدار `puts "hi"` را در فایلی به نام `hi.rb` میریزد و سپس دستور `ruby hi.rb` این فایل را اجرا میکند.

میتوان از تسک‌ها را وابسته به تسک‌های دیگر کرد، یعنی اجرای تسک منوط به اجرای چند تسک مشخص شده ی دیگر باشد.  در مورد دیپندینسی ها بخوانید...
task :createfile do
    sh('echo "puts \"hi\"" > hi.rb')
end

task :run => [:createfile] do
    sh("ruby","hi.rb")
end

به ساختار تسک run در کد بالا دقت کنید. این ساختار بیان میکند که با اجرای run ابتدا createfile بصورت خودکار اجرا شده و سپس این تسک اجرا میشود.

 تسک پیش‌فرض

برای اجرای تسک های نوشته شده از دستور `rake taskname` استفاده میکنیم. اما یک حالت ویژه و پرکاربرد هم داریم که تنها با دستور `rake` اجرا میشود، تسک default. مانند مثال زیر :
task :default do
    puts "Hellllllooooooooo:)"
end

که با اجرای دستور rake این تسک اجرا میشود.

فضاهای نام

ریک از فضاهای نام پشتیبانی میکند. ساختار آن بصورت زیر است :

namespace :jobs do
    task :hi do
        puts "hi"
    end
end

که برای اجرای تسک hi از فضای‌نام jobs از دستور `rake jobs:hi‍` استفاده میکنیم.

توصیف تسک ها

میتوانید توضیحات کوتاهی درمورد هرتسک بنویسید که در هنگام اجرای دستورات نمایش داده شوند. برای اینکار قبل از هر تسک توضیحات را در متد desc مینویسیم و موقع اجرای دستور rake سوییچ `-T` را به آن اضافه میکنیم. به عنوان نمونه :
desc 'create hi.rb'
task :createfile do
    sh('echo "puts \"hi\"" > hi.rb')
end

desc 'run hi.rb'
task :run => [:createfile] do
    sh("ruby","hi.rb")
end
که برای نمایش توضیحات دستور rake را بصورت زیر استفاده میکنیم :
rake run -T
که خروجی در صفحه ی نمایش بصورت زیر است :
rake createfile  # create hi.rb
rake run         # run hi.rb