सबसे सरल शब्दों में एक सिंगलटन वर्ग एक विशेष वर्ग रूबी है जो व्यक्तिगत वस्तुओं पर परिभाषित तरीकों की मेजबानी करने के लिए सचेतक है। रूबी में, व्यक्तिगत वस्तुओं पर तरीकों को परिभाषित करना संभव है जो अकेले उस वस्तु के लिए अद्वितीय हैं। उदाहरण के लिए निम्नलिखित पर विचार करें
class User; end
user = User.new
def user.age
"i'm a unique method"
end
user1 = User.new
user.age
user1.age
जैसा कि आप ऊपर देख सकते हैं, उपयोगकर्ता 1 ऑब्जेक्ट 'उम्र' पद्धति का जवाब नहीं देता है क्योंकि यह एक सिंगलटन विधि है, एक विधि विशिष्ट रूप से उपयोगकर्ता ऑब्जेक्ट पर परिभाषित की जाती है। ऐसा होने के लिए, रूबी एक विशेष वर्ग बनाता है, जिसे सिंगलटन क्लास, या ईजेनक्लस कहा जाता है, इस अनूठी पद्धति की मेजबानी करने के लिए। आप निम्न कार्य करके इसे सत्यापित कर सकते हैं:
user.singleton_class
आप रूबी से यह भी पूछ सकते हैं कि क्या विधि 'ऑब्जेक्ट' का उपयोग करके यह पता लगाया जाता है कि विधि 'आयु' कहां है। जब आप ऐसा करेंगे तो आप देखेंगे कि सिंगलटन क्लास के पास वह तरीका है।
user_singleton_class = user.method(:age).owner
user.method(:age).owner == user.singleton_class
user_singleton_class.instance_methods(false)
यह भी ध्यान दें कि, जहाँ तक एक सिंगलटन वर्ग जाता है, सिंगलटन तरीके वास्तव में यह उदाहरण के तरीके हैं।
user.singleton_methods == user_singleton_class.instance_methods(false)