Ruby의 네임 스페이스 함수에 대한 모범 사례? (초보자 질문)
내가 도우미 메서드 잔뜩 쓰고 있어요 (StackOverflow의 잘, 나는 그것을 상관없이 기회를 줄 것이다 ...이 질문은 "주관적이고 폐쇄 될 가능성"이라고 말해됩니다) (TextMate 번들의 경우), 네임 스페이스를 깔끔하게 사용하고 싶습니다.
이 메소드는 실제로는 기능 만 수행합니다. 즉, 해당 메소드는 자체 범위 외부의 아무 것도 작동하지 않으므로 실제로 클래스에 속하지 않습니다. 인스턴스화가 필요한 것은 없습니다.
지금까지, 나는이 일을 봤는데 그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 이전에는 일명 자기. –
좋은 지적. 그러나 실제로는 모든 것이 도우미 기능 외에는 아무것도 포함하지 않은 모듈이기 때문에 'self.'가 제 코드에서 중요성을 잃을 까봐 두렵습니다. _everything_은'self '로 정의 될 것입니다. 어떤 경우에는'self'로 아무것도 정의하지 않고 대신'module_function'을 사용합니다. – Flambino
나는이 상황에 선호하는 세 번째 옵션을 포함하도록 대답을 업데이트 할 것이다. –