یکی از امور متداول کاربران حرفه‌ای سیستم‌های عامل شبه یونیکس ( همچون لینوکس و macOs ) نوشتن اسکریپت‌هایی برای انجام امور مورد انتظار آنهاست. شاید استفاده از زبان‌های اسکریپتی وابسته به پوسته‌ی مورد استفاده‌ی کاربر همچون bash مرسوم‌ترین شیوه باشد اما این قبیل زبانها کار را برای پروژه‌ای بزرگتر دشوار میکنند و از طرفی برای برنامه‌نویسانی که با زبانهایی همچون روبی و پایتون آشنایی دارد قدری نوشتن اسکریپتهای بش ملال آور است.
از مدتها پیش راهنماهایی را برای آموزش زبان روبی در این وبلاگ منتشر میکنیم و در این پست میخواهم یک ابزار ساده و کاربردی را برای ساختن برنامه‌های تحت خط فرمان به زبان روبی را معرفی کنم. ابزاری به نام Thor.
استفاده از thor ساده است. thor یک جم روبی است پس باید ابتدا آن را از مدیربسته‌ی روبی‌جمز نصب کنید :
gem install thor
پس از نصب thor یک فایل روبی با نام دلخواه خود ( مثلا thortest.rb ) ایجاد کنید و فایل را با ویرایشگر مورد علاقه‌ی خود باز کنید.
در بالای فایل جم‌ِ thor را در برنامه با کد زیر فراخوانی کنید :
require 'thor'
و سپس یک کلاس با نام دلخواه بسازید که کلاس Thor را به ارث میبرد. مثلا کلاسی به نام Thoring:
class Thoring < Thor
  # body of app
end
و بعد در درون کلاس دستورات مورد نظر خود را میتوانید تعریف کنید.

به عنوان یک مثال ما یک دستور به نام hi تعریف میکنیم که یک نام به آن بفرستیم و به آن نام سلام کند. در این صورت کد ما بصورت زیر می شود :



class Thoring < Thor
	desc 'hi name', 'say hi to name'
	def hi(name)
		puts "Hi #{name}"
	end
end
در Thor هر دستور از دو قسمت تشکیل می‌شود : توضیحات و متد. توضیحات همان خطی است که با desc شروع شده و برای یک دستور با دو آرگومان توضیح میدهد که دستور چطور کار میکند. مثلا در اینجا hi Name میگوید که اگر دستور hi name را بزنید در آرگومان دوم یعنی say hi to name  به name سلام میکند. دقت کنید که این توضیحات ربطی به نحوه ی اجرای برنامه ندارند و صرفا راهنماهایی برای کاربران هست. بخش دوم هم یک تابع است با نام دستور که در اینجا hi است و یک آرگومان به نام name میگیرد و آن را چاپ می‌کند.

به این روش میتوانید دستورات بیشتری بسازید.

در مرحله ی آخر که همه‌ی این کارها را کردید باید کلاس ساخته شده را اجرا کنید و ARGV که همان آرگومان‌های خط فرمان هستند را به آن بفرستید. مثلا برای کلاس Thoring بصورت زیر میشود :



Thoring.start(ARGV)
حالا میتوانید برنامه ی خود را اجرا کنید. برنامه تان را در یک فایل به نام دلخواه با پسوند .rb ذخیره کنید و با دستور روبی آن را اجرا کنید. مثلا برای برنامه‌ی من که با نام thoring.rb است دستور به صورت زیر است :

ruby thoring.rb
که خروجی این دستور متن زیر است :

Commands:
  thoring.rb help [COMMAND]  # Describe available commands or one specific command
  thoring.rb hi name         # say hi to name

همانطور که میبینید متن نوشته شده در بخش desc بصورت یک راهنما در این قسمت نمایش داده میشود. حال برای اجرای دستور hi با نامی مثل نام من یعنی Dariush دستور بصورت زیر خواهد بود :

ruby thoring.rb hi Dariush
که خروجی آن متن زیر است :

ruby thoring.rb hi Dariush
همین :)

ساختن اپلیکیشن های خط فرمان با thor همواره کاری ساده است که چه برای کارهای جدی و چه برای فان میتوانید روزانه از آن استفاده کنید. اگر سوال یا ابهامی بود میتوانید در نظرات بپرسید.