आपका दिन शुभ हो!
सिग्नल बनाम शोर ब्लॉग को फिर से पढ़ते हुए, मैं एक दिलचस्प
लेख भर आया
इसने एक रेक कार्य बनाने की सिफारिश की जो रिपॉजिटरी से क्लोनिंग के बाद विकास के लिए आपके आवेदन को पूरी तरह से तैयार करेगा।
> `रेक सेटअप`
> हमारे सभी एप्स में एक रेक सेटअप टास्क है जो बंडलर चलाएगा,
> डेटाबेस बनाएं, बीज आयात करें, और किसी भी सहायक को स्थापित करें
> सॉफ्टवेयर (इन दिनों थोड़ा) या कोई अन्य सेटअप करें। तो जब आप git
> एक नया ऐप क्लोन करें, आप जानते हैं कि "रेक सेटअप" आपका ख्याल रखेगा।
मैं रूबी ऑन रेल एप्लिकेशन में एक समान कार्य करने के बारे में बात करूंगा।
चलो एप्लिकेशन फ़ोल्डर में जाएं और चलाएं
rake -T
यह कमांड रेक के लिए उपलब्ध सभी कार्यों को सूचीबद्ध करेगा।
rake about
अपने कार्य को जोड़ने के बाद, यह इस सूची में भी दिखाई देगा।
एक नया रेक कार्य बनाएँ
यदि आप अपना स्वयं का रेक निर्देश बनाना चाहते हैं, तो आपके पास ऐसा करने के लिए 3 विकल्प हैं:
- इसे स्वयं लिखो।
- कोड को किसी अन्य मौजूदा कार्य से कॉपी करें और उसका कोड बदलें।
- रेल्स जनरेटर का उपयोग करें।
हम तीसरे बिंदु का उपयोग करते हैं।
$ rails g task setup hello_world
वह हमारे नए निर्देश के लिए एक कंकाल बनाएगा:
lib / कार्य / setup.rake namespace :setup do desc "TODO" task :hello_world => :environment do end end
नमस्ते दुनिया
आइए नव निर्मित कार्य के टोकन के माध्यम से जाएं
namespace :setup
नामस्थान, यह नाम स्थान है - यह वह वातावरण है जिसके तहत कार्यों को समूहीकृत किया जाएगा।
RoR का एक उदाहरण
rake db:migrate
, जहाँ
db
भी एक नामस्थान है
desc "TODO"
हमारे कार्य का विवरण। यह एक वैकल्पिक घटक है, लेकिन यदि आप इसे छोड़ देते हैं, तो
rake -T
द्वारा आउटपुट को सामान्य सूची में प्रदर्शित नहीं किया जाएगा।
task :hello_world => :environment
:hello_world
कार्य का नाम है।
=> :environment
- निर्भरता। मुख्य कार्य शुरू करने से पहले, रेक सभी निर्भर कार्यों को शुरू करता है। इस मामले में, रेक पर्यावरण निर्देश लॉन्च किया जाएगा, जो आरओआर विधानसभा में शामिल है और आपको पर्यावरण-निर्भर संचालन के साथ काम करने की अनुमति देता है, उदाहरण के लिए, डेटाबेस का उपयोग करके।
रेक के माध्यम से दुनिया को अभिवादन करना आसान होगा। टास्क बॉडी में
puts 'Hello from rake!'
जोड़ें
puts 'Hello from rake!'
और इसे चलाएं
$ rake setup:hello_world Hello from rake!
आह्वान
रेक आपको
invoke
विधि का उपयोग करके दूसरे से एक कार्य को कॉल करने की अनुमति देता है, उदाहरण के लिए:
Rake::Task['db:drop'].invoke
इससे निर्देशों की एक श्रृंखला बनाना संभव हो जाता है, जो अंतर्निहित रेल कार्यों का उपयोग करते हुए, हमारे डेटाबेस को काम के लिए तैयार करेगा:
task :drop_database do puts "*** Drop old database ***" Rake::Task['db:drop'].invoke end task :create_database do puts "*** Create new database ***" Rake::Task['db:create'].invoke end task :migrate_database do puts "*** Do migrations ***" Rake::Task['db:migrate'].invoke end task :seed_database do puts "*** Seeding database ***" Rake::Task['db:seed'].invoke end task :create_test_database do puts "*** Setup test database ***" Rake::Task['db:test:prepare'].invoke end
हम पुराने डेटाबेस को हटाते हैं, एक नया बनाते हैं, सभी माइग्रेशन करते हैं, प्रारंभिक डेटा जोड़ते हैं, और परीक्षणों के लिए आधार बनाते हैं। ये मानक क्रियाएं हैं जो हर डेवलपर एप्लिकेशन इंस्टॉल करते समय करता है।
मॉडल के साथ काम करें
कार्य के अंदर, हम मॉडल के साथ उसी तरह काम कर सकते हैं जैसे कि रेल एप्लिकेशन में कहीं भी।
मेरे आवेदन में, एक
User
मॉडल है जिसमें एक व्यवस्थापक भूमिका जोड़ने के लिए एक विधि है। डेटाबेस में एक उपयोगकर्ता बनाने के लिए
seeds.rb
फ़ाइल में एक प्रविष्टि भी है। मुझे इस निर्मित उपयोगकर्ता को तुरंत बनाने की आवश्यकता है
मैं एक प्रशासक था, और मुझे रेल कंसोल के माध्यम से मैन्युअल रूप से उसके लिए विधि को कॉल करने की आवश्यकता नहीं थी। इसे लागू करना सरल है:
task :set_admin_user do puts "*** Add admin role to first user ***" User.first.become_admin! end
यह सब एक साथ रखना
फ़ाइल के अंत में (नेमस्पेस: सेटअप ब्लॉक के बाहर) निम्न विवरण जोड़ें:
desc 'Configure the application for development.' task :setup => :environment do Rake::Task['setup:drop_database'].invoke Rake::Task['setup:create_database'].invoke Rake::Task['setup:migrate_database'].invoke Rake::Task['setup:seed_database'].invoke Rake::Task['setup:set_admin_user'].invoke Rake::Task['setup:create_test_database'].invoke end
चल रहा है!
$ rake setup *** Drop old database *** *** Create new database *** *** Do migrations *** ... ... *** Seeding database *** *** Add admin role to first user *** *** Setup test database ***
सब कुछ योजना के अनुसार हुआ! बधाई!
निष्कर्ष
इस रेक कार्य को बनाने के बाद, आपके पास एक और जिम्मेदारी है - इस फ़ाइल को अद्यतित रखने के लिए, इसके बारे में मत भूलना।
और याद रखें - आप केवल डेवलपर नहीं हैं। यदि कुछ विवरण आपको स्पष्ट लगता है, तो इससे पहले कि आप समझें कि इसके साथ काम करने का समय बहुत कम हो सकता है। न केवल अपने लिए बल्कि अपने सहयोगियों के लिए भी विकास को आसान बनाने की कोशिश करें।