Modules in Ruby
ruby में एक module, methods की collection होता है। module को others classes में भी use किया जा सकता है। module को define करने के लिए "module" keyword use होता है और module के नाम का पहला letter capital होना चाहिए। module में बहुत से method होते हैं। module उस समय useful हो जाता है, जब बहुत ही classes को एक ही तरह के function की जरुरत हो। modules से object नहीं create हो सकते।
#syntax define module
module module_Name
#methods
end
#Define Module
module License
def lmv
puts "This car comes under Lignt Moter Vehicle License"
end
end
class Car
end
class Swift < Car
include License
end
class Alto < Car
include License
end
obj = Alto.new
obj.lmv
#Outputs
This car comes under the Lignt Moter Vehicle License
Mixins in Ruby
ruby में एक class multiple class से inherit नहीं हो सकती। मतलब एक sub class की सिर्फ एक ही super class हो सकती है, इस में ज्यादा नहीं। लेकिन ruby में multiple modules include हो सकते हैं। जब एक class multiple modules के साथ mix हो जाती है use mixins कहा जाता है। mixins के साथ आप classes में अच्छी functionality use कर सकते हैं। ruby में predefined mixins भी हैं।
#syntax mixins in Ruby
class Vehicle
include Lincense
include Type
include make
end
Namespacing
ruby में namespacing का मतलब है, एक module जिस में similar classes का group है। namespacing में एक ही तरह की classes के group को organizing किया जाता है। इस से हम एक ही name की अलग अलग classes बना सकते हैं और उन्हें अलग अलग modules में रख सकते हैं। जिस से नाम की problem नही होती और न ही कोई error आता है।
#Syntax namespacing
module Module_Name
class ClassName1
#statements
end
class ClassName2
#statements
end
class ClassName3
#statement
end
end
#Define Namespacing
module Car
class Swift
def color
puts "White Swift"
end
end
class Alto
def color
puts "Silver Alto"
end
end
end
a = Car::Swift.new
b = Car::Alto.new
a.color
b.color
#Outputs
White Swift
Silver Alto
- Alto, Swift class के नाम हैं, जो Car नाम के module में हैं।
- Alto class को call करने के लिए, Car module के साथ दो colon "::" फिर class name Alto type करना है। eg. Car::Alto
- इस तरह b=Car::Alto.new का मतलब है। Car module में से Alto class को call किया, साथ ही Alto class का object create किया, और b नाम के variable में store कर दिया।
- फिर Alto class के object b से, Alto class के method color को call किया।
0 comments:
Post a Comment