जब रन टाइम आत्मनिरीक्षण और गतिशील कोड पीढ़ी की बात आती है तो मुझे नहीं लगता कि रूबी के पास कुछ लिस्पी बोलीभाषाओं को छोड़कर संभवतः कोई प्रतिद्वंद्वियों है। दूसरे दिन मैं रूबी की गतिशील सुविधाओं का पता लगाने के लिए कुछ कोड अभ्यास कर रहा था और मैंने मौजूदा वस्तुओं के तरीकों को जोड़ने के तरीकों के बारे में आश्चर्यचकित होना शुरू कर दिया।रूबी ऑब्जेक्ट में विधियों को कितने तरीकों से जोड़ा जा सकता है?
obj = Object.new
# add a method directly
def obj.new_method
...
end
# add a method indirectly with the singleton class
class << obj
def new_method
...
end
end
# add a method by opening up the class
obj.class.class_eval do
def new_method
...
end
end
यह तो केवल शुरुआत भर है, क्योंकि मैं अभी भी instance_eval
, module_eval
और define_method
के विभिन्न संयोजनों छानबीन नहीं की है: यहाँ 3 तरीके मैं के बारे में सोच सकते हैं। क्या कोई ऑनलाइन/ऑफ़लाइन संसाधन है जहां मैं ऐसी गतिशील चाल के बारे में अधिक जानकारी प्राप्त कर सकता हूं?