खोज…


फ़ाइलों को केवल एक बार लोड करने की आवश्यकता होती है

कर्नेल # आवश्यकता विधि केवल एक बार फ़ाइलों को लोड करेगी ( 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


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow