मैं सिंगलटन एलियाज्ड विधि को परिभाषित करने की कोशिश कर रहा हूं। के रूप में:उपनाम एक ऑब्जेक्ट के लिए एक विधि
name = 'Bob'
# I want something similar to this to work
name.define_singleton_method(:add_cuteness, :+)
name = name.add_cuteness 'by'
मुझे यकीन है कि मैं एक दूसरे पैरामीटर के रूप में एक विधि वस्तु पारित कर सकते हैं कर रहा हूँ।
मैं इस
name.define_singleton_method(:add_cuteness) { |val| self + val }
मैं इसका इस्तेमाल नहीं String#+
विधि अन्य नाम पर चाहते हैं की तरह यह करने के लिए नहीं करना चाहते। उपनाम पर जोर, लेकिन वास्तविक पैरामीटर ऑब्जेक्ट को दूसरे पैरामीटर के रूप में भेजना भी अच्छा होगा।
आप नहीं कर सकते हैं 'define_singleton_method' एक पूर्णांक पर यह अपरिवर्तनीय है – bjhaid
@bjhaid सच। मैंने इसे 'स्ट्रिंग' –
'name =' Bob 'में बदल दिया; name.define_singleton_method (: add_cuteness, और name.method (: +)); नाम = name.add_cuteness 'द्वारा' # => 'बॉबी' यह वही है जो आप चाहते हैं? – bjhaid