कहो, मेरे पास एक वर्ग मैं शामिल करें और फिर स्पष्ट रूप से सभी शामिल विधियों को निजी बनायें? आप ए और एक मॉड्यूल
बी है। मैं
B को
A में शामिल करना चाहता / चाहूंगा / लेकिन चिह्न शामिल / विस्तारित तरीके निजी के रूप में (इसलिए वे
A पर क्लिक करें, लेकिन
ए के तरीकों के भीतर उपलब्ध होगा।
B को
A में कैसे शामिल कर सकता हूं लेकिन सभी को चिह्नित कर सकता हूँ निजी तरीके के रूप में शामिल विधियां?
वर्ग ए में शामिल हैं बी निजी * B.instance_methods बी वर्ग का विस्तार & lt; & lt; स्वयं निजी * B.instance_methods एंड एंड
private_include को जोड़ने के लिए बंदर पैच
मॉड्यूल और
private_extend कर सकते हैं :
वर्ग मॉड्यूल def private_include * मॉड्यूल class_eval self.send करें (: शामिल करें, * मॉड्यूल) modules.each do | mod | Self.send (: निजी, * mod.instance_methods) अंत अंत अंत def private_extend * मॉड्यूल सिंगलटन = वर्ग & lt; & lt; स्वयं; स्वयं अंत singleton.instance_eval self.send करें (: शामिल करें, * मॉड्यूल) modules.each do | mod | Self.send (: निजी, * mod.instance_methods) अंत अंत एंड एंड
No comments:
Post a Comment