私はヘルパーメソッドの束を書いて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
私は、私がこの状況のために好む第3の選択肢を含めるように答えを更新します。 –