Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Ruby

रूबी में Rake में महारत हासिल करें: टास्क ऑटोमेशन के लिए पूर्ण गाइड

Rake रूबी में एक लोकप्रिय टास्क रनर है।

टास्क क्या है?

  • अपने डेटाबेस का बैकअप बनाना
  • अपने टेस्ट्स चलाना
  • आंकड़े इकट्ठा करना और रिपोर्ट करना

ये छोटे टास्क हैं जो Rake के बिना आपकी प्रोजेक्ट पर अलग-अलग फाइलों में बिखरे होंगे।

Rake आपके टास्क्स तक पहुंच को केंद्रीकृत करता है।

Rake कुछ चीजों को आसान भी बनाता है, जैसे एक निश्चित पैटर्न से मेल खाने वाली फाइलें ढूंढना और जो हाल ही में संशोधित हुई हैं।

एक और बात:

Rake को Rack के साथ भ्रमित न करें, बहुत समान नाम, लेकिन पूरी तरह से अलग चीजें।

  • Rake एक टास्क रनर है।
  • Rack रूबी सर्वर्स और फ्रेमवर्क को एक साथ काम करने में मदद करता है।

अब:

आइए Rake को और विस्तार से एक्सप्लोर करें!

Rake का उपयोग कौन करता है?

Rails!

यदि आपने Rails के साथ कुछ भी किया है, तो आप शायद rake db:migrate कमांड से परिचित हैं।

या rake routes।

वहां Rake एक्शन में है।

ध्यान दें कि Rails, वर्जन 5.0 के बाद से, आपको अधिकांश rake कमांड्स को rails के साथ कॉल करने की अनुमति देता है।

दूसरे शब्दों में:

आप rails db:migrate कर सकते हैं, लेकिन Rake अभी भी काम कर रहा है।

Rake टास्क कैसे लिखें

यहाँ एक सरल Rake टास्क है:

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!"

टास्क के अंदर, आप सामान्य रूबी कोड लिख सकते हैं, लेकिन कुछ उपयोगी Rake मेथड्स हैं जिनका आप उपयोग कर सकते हैं।

उदाहरण के लिए:

  • ruby (रूबी फाइल चलाएं)
  • sh (सिस्टम कमांड्स चलाएं)
  • safe_ln (अपनी फाइल सिस्टम में एक सिम्बोलिक लिंक बनाएं)

Rake में FileUtils मॉड्यूल शामिल है।

इसका मतलब है कि आप cp से फाइल्स कॉपी कर सकते हैं, mkdir_p से डायरेक्टरीज बना सकते हैं, और यहां तक कि chown से फाइल परमिशन बदल सकते हैं।

यहाँ एक उदाहरण है:

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

rm_r (रीकर्सन के साथ हटाएं) से सावधान रहें क्योंकि यह बिना कन्फर्मेशन के फाइल्स डिलीट कर देगा, यदि आप एक कन्फर्मेशन स्टेप जोड़ना चाहते हैं तो आप एक डिपेंडेंट टास्क जोड़ सकते हैं (इस लेख में बाद में कवर किया गया) और यदि आप जारी नहीं रखना चाहते तो एक अपवाद उठा सकते हैं।

दूसरे डायरेक्टरी के अंदर Rake कमांड्स चलाना

आप एक विशिष्ट डायरेक्टरी के अंदर Rake कमांड चलाना चाह सकते हैं।

यहाँ बताया गया है:

task :import do
  puts "Importing data..."
  Dir.chdir(Rails.root.join("data")) { ruby "load-data.rb" }
end

इस उदाहरण में, मैं अपने Rails प्रोजेक्ट में data फोल्डर के अंदर एक रूबी स्क्रिप्ट चला रहा हूँ।

Rake में नेमस्पेसेस का उपयोग कैसे करें

क्योंकि टास्क्स के समान नाम हो सकते हैं, उसी नाम का दो बार उपयोग करना आसान है।

यही कारण है कि Rake में नेमस्पेसेस हैं।

उदाहरण के लिए:

आप अपने सभी बैकअप टास्क्स के लिए एक backup नेमस्पेस बना सकते हैं।

इस तरह:

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

नेमस्पेस्ड टास्क चलाने के लिए:

rake backup:create

डिपेंडेंट टास्क्स

Rake आपको अन्य टास्क्स की एक सूची परिभाषित करने की अनुमति देता है जो वर्तमान टास्क से पहले चलनी चाहिए।

इसके साथ, आप किसी भी सेटअप को कर सकते हैं जिसकी टास्क को आवश्यकता है।

उदाहरण:

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

इस उदाहरण में, load_database create_examples से पहले चलेगा।

डिपेंडेंट टास्क्स की सूची स्ट्रिंग्स की ऐरे या सिंबल्स की ऐरे भी हो सकती है।

दूसरे टास्क के अंदर Rake टास्क चलाना

यदि वर्तमान टास्क से पहले चलने वाले टास्क्स के सेट के बजाय, आप वर्तमान टास्क के अंदर एक और टास्क चलाना चाहते हैं, तो आप निम्नलिखित कोड का उपयोग कर सकते हैं।

उदाहरण:

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

यह टेस्ट कवरेज और अन्य विकल्पों को सक्षम करने वाले एनवायरनमेंट वेरिएबल्स सेट करने के लिए मददगार हो सकता है।

Rake रूल्स का उपयोग कैसे करें

रूल्स फाइल एक्सटेंशन ट्रांसफॉर्मेशन को परिभाषित करते हैं।

उदाहरण:

task compress: FileList["/tmp/*.txt"].ext(".txt.gz")
rule '.txt.gz' => '.txt' do |t|
  sh "gzip", "-k", "-f", t.source
end

रूल्स का उपयोग करने का लाभ यह है कि एक बार फाइल कंप्रेस हो जाने के बाद, इसे तब तक दोबारा कंप्रेस नहीं किया जाएगा जब तक कि सोर्स फाइल नहीं बदलती।

इस कोड में कुछ चीजें नोटिस करें:

  1. हम FileList क्लास का उपयोग करते हैं, जो Rake का हिस्सा है, उन फाइलों की सूची को परिभाषित करने के लिए जिनके साथ हम काम करना चाहते हैं।
  2. रूल टार्गेट एक्सटेंशन से शुरू होता है, रूल को मैच कराने के लिए हमें FileList पर .ext(".txt.gz") का उपयोग करना होगा।
  3. यह .txt.gz => .txt का मतलब यह नहीं है कि हम txt.gz से txt जाते हैं, यह दूसरा तरीका है। तीर हैश सिंटैक्स है।

Rake विकल्प और कमांड्स

यहाँ उपयोगी Rake विकल्पों की एक सूची है:

  • 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 अलग-अलग चीजें हैं।

रूबी में Rake में महारत हासिल करें: टास्क ऑटोमेशन के लिए पूर्ण गाइड

इस लेख को शेयर करना न भूलें ताकि अधिक लोग इसका आनंद ले सकें 🙂

पढ़ने के लिए धन्यवाद!

  1. डिस्क प्रबंधन समझाया गया: अपने ड्राइव का उपयोग और प्रबंधन कैसे करें डिस्क प्रबंधन समझाया गया: अपने ड्राइव का उपयोग और प्रबंधन कैसे करें

    आप सभी ने देखा होगा, जब आप फाइल एक्सप्लोरर खोलते हैं, तो वहां बहुत सारे फ़ोल्डर उपलब्ध होते हैं जैसे Windows (C:), रिकवरी (D:), नया वॉल्यूम (E:), नया वॉल्यूम (F:) और बहुत कुछ। क्या आपने कभी सोचा है, क्या ये सभी फ़ोल्डर PC या लैपटॉप में स्वचालित रूप से उपलब्ध होते हैं, या कोई उन्हें बनाता है। इन सभी

  1. गाइडेड एक्सेस क्या है? iPhone और iPad सुरक्षा के लिए इसका उपयोग कैसे करें गाइडेड एक्सेस क्या है? iPhone और iPad सुरक्षा के लिए इसका उपयोग कैसे करें

    लोगों में आपके फोन सौंपते ही झांकने की प्रवृत्ति होती है। उदाहरण के लिए, आप अपने दोस्त को एक मजेदार फोटो देखने के लिए अपना फोन देते हैं लेकिन वे स्क्रॉल करना शुरू कर देते हैं और अगली चीज़ जो आप जानते हैं, वे आपकी व्यक्तिगत चीजों को देखना शुरू कर देते हैं। इससे बचने के लिए, ऐप्पल में गाइडेड एक्सेस ना

  1. RSS फीड का उपयोग कैसे करें: अपनी पढ़ने की दक्षता बढ़ाएं RSS फीड का उपयोग कैसे करें: अपनी पढ़ने की दक्षता बढ़ाएं

    पढ़ना एक स्वस्थ आदत है जो न केवल आपको भरपूर ज्ञान देती है बल्कि आपके पारस्परिक कौशल में भी मदद करती है। अब चूंकि इंटरनेट के साथ आपके पास कागज बचाने और हरा-भरा होने का विकल्प है, यह सिरदर्द भी पैदा करता है, खासकर जब आप पढ़ने लायक कुछ खोजने की कोशिश करते हैं। पढ़ने योग्य कंटेंट का चयन इंटरनेट पढ़ने के