यदि आप यह देखने के लिए जाँच कर रहे हैं कि क्या कोई ऑब्जेक्ट कई तरीकों से जवाब दे सकता है, तो आप कुछ ऐसा कर सकते हैं:
methods = [:valid?, :chase, :test]
def has_methods?(something, methods)
methods & something.methods == methods
end
methods & something.methodsउनकी आम / मिलान तत्वों पर दो सरणियों में शामिल हो जाएगा। some.methods में वे सभी विधियाँ शामिल हैं जिनकी आप जाँच कर रहे हैं, यह समान विधियाँ हैं। उदाहरण के लिए:
[1,2] & [1,2,3,4,5]
==> [1,2]
इसलिए
[1,2] & [1,2,3,4,5] == [1,2]
==> true
इस स्थिति में, आप प्रतीकों का उपयोग करना चाहते हैं, क्योंकि जब आप .methods कहते हैं, तो यह प्रतीकों की एक सरणी देता है और यदि आप उपयोग करते हैं ["my", "methods"], तो यह गलत होगा।