Ruby Language
लोड हो रहा है स्रोत फ़ाइलें
खोज…
फ़ाइलों को केवल एक बार लोड करने की आवश्यकता होती है
कर्नेल # आवश्यकता विधि केवल एक बार फ़ाइलों को लोड करेगी ( require
लिए कई कॉल का परिणाम उस फ़ाइल में कोड में केवल एक बार मूल्यांकन किया जाएगा)। यदि पैरामीटर एक पूर्ण पथ नहीं है, तो आवश्यक फ़ाइल खोजने के लिए यह आपके रूबी $LOAD_PATH
को $LOAD_PATH
। .rb
, .so
, .o
या .dll
जैसे एक्सटेंशन वैकल्पिक हैं। सापेक्ष पथ प्रक्रिया की वर्तमान कार्यशील निर्देशिका में हल हो जाएंगे।
require 'awesome_print'
कर्नेल # requirement_relative आपको उस फाइल के सापेक्ष फाइल लोड करने की अनुमति देता है जिसमें require_relative
कहा जाता है।
# will search in directory myproj relative to current source file.
#
require_relative 'myproj/version'
स्रोत फ़ाइलों को स्वचालित रूप से लोड करना
विधि Kernel#autoload
फ़ाइल नाम को लोड करने के लिए पंजीकृत करता है ( Kernel::require
का उपयोग करते हुए Kernel::require
) पहली बार उस मॉड्यूल (जो एक स्ट्रिंग या प्रतीक हो सकता है) तक पहुँचा जाता है।
autoload :MyModule, '/usr/local/lib/modules/my_module.rb'
विधि कर्नेल # ऑटोलॉड? यदि नाम autoload
रूप में पंजीकृत है, तो फ़ाइल नाम लौटाया जाना चाहिए।
autoload? :MyModule #=> '/usr/local/lib/modules/my_module.rb'
वैकल्पिक फ़ाइलों को लोड कर रहा है
जब फाइलें उपलब्ध नहीं require
, तो परिवार को LoadError
की require
होगी। यह एक उदाहरण है जो केवल वैकल्पिक मॉड्यूल लोड करने को दिखाता है यदि वे मौजूद हैं।
module TidBits
@@unavailableModules = []
[
{ name: 'CoreExtend', file: 'core_extend/lib/core_extend' } \
, { name: 'Fs' , file: 'fs/lib/fs' } \
, { name: 'Options' , file: 'options/lib/options' } \
, { name: 'Susu' , file: 'susu/lib/susu' } \
].each do |lib|
begin
require_relative lib[ :file ]
rescue LoadError
@@unavailableModules.push lib
end
end
end # module TidBits
बार-बार फाइलें लोड हो रही हैं
कर्नेल # लोड विधि दी गई फ़ाइल में कोड का मूल्यांकन करेगी। खोज पथ के साथ के रूप में निर्माण किया जाएगा require
। यह require
विपरीत हर बाद की कॉल पर उस कोड का पुनर्मूल्यांकन करेगा। कोई load_relative
नहीं है।
load `somefile`
कई फाइलें लोड हो रही हैं
आप लोड करने के लिए फ़ाइलों की सूची बनाने के लिए गतिशील रूप से किसी भी माणिक तकनीक का उपयोग कर सकते हैं। test
साथ शुरू होने वाली फ़ाइलों के लिए ग्लोबिंग का चित्रण, वर्णमाला क्रम में लोड किया गया।
Dir[ "#{ __dir__ }**/test*.rb" ) ].sort.each do |source|
require_relative source
end