কম্পিউটার

রুবিতে রেক কী এবং এটি কীভাবে ব্যবহার করবেন

রেক রুবিতে একজন জনপ্রিয় টাস্ক রানার।

টাস্ক কি?

  • আপনার ডাটাবেসের একটি ব্যাকআপ তৈরি করা হচ্ছে
  • আপনার পরীক্ষা চলছে
  • পরিসংখ্যান সংগ্রহ ও প্রতিবেদন করা

এগুলি এমন ছোট কাজ যা রেক ছাড়া আপনার সমস্ত প্রকল্পে বিভিন্ন ফাইলে ছড়িয়ে ছিটিয়ে থাকবে৷

রেক আপনার কাজগুলিতে অ্যাক্সেসকে কেন্দ্রীভূত করে৷

রেক কিছু জিনিসকে আরও সহজ করে তোলে, যেমন একটি নির্দিষ্ট প্যাটার্নের সাথে মেলে এমন ফাইলগুলি খুঁজে পাওয়া এবং যেগুলি সম্প্রতি সংশোধন করা হয়েছে৷

আরো একটি জিনিস :

Rake কে Rack এর সাথে গুলিয়ে ফেলবেন না, খুব একই নাম, কিন্তু সম্পূর্ণ ভিন্ন জিনিস।

  • রেক একজন টাস্ক রানার।
  • র্যাক রুবি সার্ভার এবং ফ্রেমওয়ার্ক একসাথে কাজ করতে সাহায্য করে।

এখন:

আসুন রেককে আরও বিস্তারিতভাবে অন্বেষণ করি!

কে রেক ব্যবহার করে?

রেল!

আপনি যদি রেলের সাথে আদৌ কিছু করে থাকেন তবে আপনি সম্ভবত rake db:migrate এর সাথে পরিচিত আদেশ৷

অথবা rake routes .

এটা ঠিক সেখানেই কাজ করছে।

লক্ষ্য করুন যে Rails, সংস্করণ 5.0 থেকে, আপনাকে সর্বাধিক rake কল করতে দেয় rails সহ কমান্ড পরিবর্তে।

অন্য কথায় :

আপনি rails db:migrate করতে পারেন , কিন্তু রেক এখনও কাজ করছে৷

কিভাবে একটি রেক টাস্ক লিখতে হয়

এখানে একটি সহজ রেক টাস্ক:

desc "Print reminder about eating more fruit."

task :apple do
  puts "Eat more apples!"
end

আপনি এই কোডটি Rakefile নামের একটি ফাইলের ভিতরে রাখতে পারেন , অথবা আপনি যদি Rails ব্যবহার করেন, আপনি এটি lib/tasks/apple.rake এর অধীনে সংরক্ষণ করতে পারেন .

এই কাজটি চালানোর জন্য :

rake apple

# "Eat more apples!"

টাস্কের ভিতরে, আপনি সাধারণ রুবি কোড লিখতে পারেন, তবে কিছু সহায়ক রেক পদ্ধতি রয়েছে যা আপনি ব্যবহার করতে পারেন।

উদাহরণস্বরূপ :

  • রুবি (একটি রুবি ফাইল চালান)
  • sh (সিস্টেম কমান্ড চালান)
  • safe_ln (আপনার ফাইল সিস্টেমে একটি প্রতীকী লিঙ্ক তৈরি করুন)

রেকের মধ্যে রয়েছে FileUtils মডিউল।

তার মানে আপনি cp দিয়ে ফাইল কপি করতে পারেন , mkdir_p দিয়ে ডিরেক্টরি তৈরি করুন , এবং এমনকি chown দিয়ে ফাইলের অনুমতি পরিবর্তন করুন .

এখানে একটি উদাহরণ আছে :

task :clean_cache do
  rm_r FileList["tmp/cache/*"]
end

rm_r এর সাথে সাবধান (পুনরাবৃত্তি সহ সরান) কারণ এটি নিশ্চিতকরণ ছাড়াই ফাইলগুলি মুছে ফেলবে, আপনি যদি একটি নিশ্চিতকরণ পদক্ষেপ যোগ করতে চান তবে আপনি একটি নির্ভর কাজ যোগ করতে পারেন (পরে এই নিবন্ধে কভার করুন) এবং আপনি যদি চালিয়ে যেতে না চান তবে একটি ব্যতিক্রম উত্থাপন করুন।

অন্য ডিরেক্টরির ভিতরে রেক কমান্ড চালানো হচ্ছে

আপনি একটি নির্দিষ্ট ডিরেক্টরির মধ্যে একটি রেক কমান্ড চালাতে চাইতে পারেন।

এখানে কিভাবে :

task :import do
  puts "Importing data..."

  Dir.chdir(Rails.root.join("data")) { ruby "load-data.rb" }
end

এই উদাহরণে, আমি data এর ভিতরে একটি রুবি স্ক্রিপ্ট চালাচ্ছি আমার রেল প্রকল্পের ফোল্ডার।

কিভাবে রেকে নেমস্পেস ব্যবহার করবেন

যেহেতু কাজের একই নাম থাকতে পারে, একই নাম দুবার ব্যবহার করা সহজ।

তাই রেকের নামস্থান রয়েছে৷

উদাহরণস্বরূপ :

আপনি একটি backup তৈরি করতে পারেন আপনার সমস্ত ব্যাকআপ কাজের জন্য নামস্থান৷

এরকম :

namespace :backup do
  task :create do
    # ...
  end

  task :list do
    # ...
  end

  task :restore do
    # ...
  end
end

একটি নেমস্পেস টাস্ক চালানোর জন্য :

rake backup:create

নির্ভরশীল কাজ

রেক আপনাকে অন্যান্য কাজের একটি তালিকা সংজ্ঞায়িত করতে দেয় যা বর্তমান টাস্কের আগে চলতে হবে।

এটির সাহায্যে, আপনি যে কোনও সেটআপ করতে পারেন যা টাস্কের প্রয়োজন।

উদাহরণ:

task create_examples: "load_database" do
  # ...
end

এই উদাহরণে, load_database create_examples এর আগে চলবে .

নির্ভরশীল কাজের তালিকাও স্ট্রিং বা চিহ্নের অ্যারে হতে পারে।

অন্য টাস্কের মধ্যে একটি রেক টাস্ক চালান

যদি বর্তমান টাস্কের আগে চালানো টাস্কের একটি সেট থাকার পরিবর্তে, আপনি বর্তমান টাস্কের মধ্যে অন্য টাস্ক চালাতে চান, তাহলে আপনি নিম্নলিখিত কোডটি ব্যবহার করতে পারেন।

উদাহরণ :

task :coverage do
  ENV['COVERAGE'] = 'true'
  Rake::Task["test"].execute
end

এটি পরিবেশের ভেরিয়েবল সেট করতে সহায়ক হতে পারে যা পরীক্ষা কভারেজ এবং অন্যান্য বিকল্পগুলি সক্ষম করে।

কিভাবে রেক নিয়ম ব্যবহার করবেন

নিয়ম ফাইল এক্সটেনশন রূপান্তর সংজ্ঞায়িত করে।

উদাহরণ :

task compress: FileList["/tmp/*.txt"].ext(".txt.gz")

rule '.txt.gz' => '.txt' do |t|
  sh "gzip", "-k", "-f", t.source
end

নিয়মগুলি ব্যবহার করার সুবিধা হল যে একবার একটি ফাইল সংকুচিত হয়ে গেলে, সোর্স ফাইলটি পরিবর্তন না হওয়া পর্যন্ত এটি আবার সংকুচিত হবে না৷

এই কোডে কিছু জিনিস লক্ষ্য করুন :

  1. আমরা FileList ব্যবহার করি ক্লাস, যা রেকের অংশ, আমরা যে ফাইলগুলির সাথে কাজ করতে চাই তার একটি তালিকা নির্ধারণ করতে৷
  2. নিয়মটি টার্গেট এক্সটেনশন দিয়ে শুরু হয়, নিয়মের সাথে মিল রাখতে আমাদের .ext(".txt.gz") ব্যবহার করতে হবে। FileList-এ .
  3. এই .txt.gz => .txt এর মানে এই নয় যে আমরা txt.gz থেকে যাই txt-এ , এটা অন্য উপায় কাছাকাছি. তীরটি হ্যাশ সিনট্যাক্স।

রেক অপশন এবং কমান্ড

এখানে দরকারী রেক বিকল্পগুলির একটি তালিকা :

  • rake -T (উপলভ্য কাজের তালিকা)
  • rake -P (তালিকা কার্য এবং তাদের নির্ভরতা)
  • rake -W (তালিকা টাস্ক এবং যেখানে তারা সংজ্ঞায়িত করা হয়)
  • rake -V (ভার্বোজ মোড, ইকো সিস্টেম কমান্ড)
  • rake -t (ডিবাগিং মোড)
  • rake -f (একটি নির্দিষ্ট Rakefile ব্যবহার করুন)

উদাহরণস্বরূপ, একটি Rails অ্যাপে :

> rake -T test

rake test         # Runs all tests in test folder except system ones
rake test:db      # Run tests quickly, but also reset db
rake test:system  # Run system tests only

সারাংশ

আপনি Rake সম্পর্কে শিখেছেন, রুবির জন্য একটি জনপ্রিয় টাস্ক রানার।

rake -T ব্যবহার করুন কোন কাজগুলি উপলব্ধ তা খুঁজে বের করতে, আপনার নিজের কাজগুলি তৈরি করুন এবং সেগুলিকে Rakefile-এ যোগ করুন , অথবা lib/tasks-এর ভিতরে ফোল্ডার, এবং মনে রাখবেন যে Rake &Rack ভিন্ন জিনিস।

রুবিতে রেক কী এবং এটি কীভাবে ব্যবহার করবেন

এই নিবন্ধটি শেয়ার করতে ভুলবেন না যাতে আরও লোকেরা এটি উপভোগ করতে পারে 🙂

পড়ার জন্য ধন্যবাদ!


  1. রুবিতে স্ট্রাকট এবং ওপেনস্ট্রাক্ট কীভাবে ব্যবহার করবেন

  2. ডিস্ক ম্যানেজমেন্ট কী এবং এটি কীভাবে ব্যবহার করবেন?

  3. গাইডেড অ্যাক্সেস কী এবং এটি কীভাবে ব্যবহার করবেন?

  4. আরএসএস ফিড কী এবং এটি কীভাবে ব্যবহার করবেন