गुरुवार, फेब्रुवारी २३, २०१२

Ruby Require vs Load

ही पोस्ट दिग्गज हितेश रावल यांच्या personal blog Hello World मधून घेतली आहे.

Load व Require methods चा वापर अतिरिक्त source files चा समावेश करण्याकरिता होतो. या दोन्ही methods चा वापर तेव्हा केला जातो जेव्हा तुम्ही load करत असलेल्या library चे definition वेगळ्या file मध्ये केले गेलेले असते. हे दोन्ही methods Ruby च्या Kernel module मध्ये define केलेले आहेत.

Require: Require method तुम्हाला library load करून देतं आणि त्याला परत load होण्यापास्न रोखतं. जर तुम्ही तीच library परत load करायचा प्रयत्न केला तर Require method 'false' return करतं. या वरून आपल्याला कळते कि Require method एखादी library load झाली आहे कि नाही याची पाहणी करतं. तुम्हाला त्या library file च्या नावाचे '.rb' extension चा उल्लेख करायची गरज नाही.
उदाहरणार्थ,
'boot.rb' चा code:
require 'rubygems'

# Set up gems listed in the Gemfile.
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)

require 'bundler/setup' if File.exists?(ENV['BUNDLE_GEMFILE'])

Load: Load method व Require method मध्ये बरेचसे साम्य आहे, पण Load हा एखादी library load झाली आहे कि नाही याची पाहणी करत नाही. याचा वापर तेव्हाच केला गेला पाहिजे जेव्हा module मध्ये वारंवार बदल केले जात अस्तील आणि आपल्याला एखादी library प्रत्येक वेळेला load करायची गरज पडत असेल. Load मध्ये तुम्हाला file extension चा उल्लेख करावा लागेल.
load(File.dirname(__FILE__) + "/schema.rb")

The original post can be viewed on Hitesh Rawal's personal blog Hello World! as Ruby Require vs Load

२ टिप्पण्या: