(StackOverflow कह रहा है कि इस सवाल का "व्यक्तिपरक और बंद होने की संभावना" है ... अच्छी तरह से, मैं इसे एक शॉट परवाह किए बिना दे देंगे)रुबी में नामस्थान कार्यों के लिए सर्वश्रेष्ठ अभ्यास? (नौसिखिया सवाल)
मैं सहायक तरीकों में से एक गुच्छा लिख रहा हूँ (टेक्स्टमैट बंडल के लिए), और मैं उन्हें अच्छी तरह से नामित रखने के लिए (और मुझे चाहिए) चाहूंगा।
ये विधियां वास्तव में केवल कार्य हैं, यानी वे अपने दायरे से बाहर किसी भी चीज़ पर काम नहीं करते हैं, और इस प्रकार वास्तव में कक्षा में नहीं हैं। ऐसा कुछ भी नहीं है जिसके लिए तत्काल आवश्यकता है।
अब तक, मैं यह कर दिया गया है और कहा कि ठीक
module Helpers::Foo
module_function
def bar
# ...
end
end
Helpers::Foo.bar # this is how I'd like to call the method/function
काम करता है लेकिन यह बेहतर होगा:
1. छोड़ें module_function
और self.*
तरीके के रूप में/कार्य की घोषणा?
2. या मॉड्यूल के बजाय कक्षा घोषित करना बेहतर होगा?
3. या class << self
(मॉड्यूल या कक्षा के अंदर) का उपयोग करें?
4. या कुछ और पूरी तरह से?
मुझे एहसास है कि यह एक सुंदर खुला-अंत प्रश्न है, लेकिन मैं वास्तव में यह सुन रहा हूं कि लोग क्या कर रहे हैं।
पूर्व, उर्फ स्वयं के लिए +1। –
अच्छा बिंदु। लेकिन मुझे डर है कि 'स्वयं' 'मेरे कोड में इसका महत्व खो जाएगा, क्योंकि व्यावहारिक रूप से सब कुछ एक मॉड्यूल है जिसमें सहायक काम नहीं है। तो _everything_ को 'self.' के रूप में परिभाषित किया जाएगा - इस मामले में मैं कुछ भी' स्वयं 'के रूप में परिभाषित नहीं कर सकता हूं और इसके बजाय 'module_function' का उपयोग कर सकता हूं। – Flambino
मैं देखता हूं, मैं इस स्थिति के लिए एक तीसरा विकल्प शामिल करने के लिए उत्तर अपडेट कर दूंगा। –