1 つの名前空間だけで各 Faker メソッドにアクセスするにはどうすればよいですか。
any.sentence
any.name
... other methods from Faker::xxx classes
書く代わりに:
Faker::Lorem.sentence
Faker::Name.name
...
RSpec と Rails を使用しています。
1 つの名前空間だけで各 Faker メソッドにアクセスするにはどうすればよいですか。
any.sentence
any.name
... other methods from Faker::xxx classes
書く代わりに:
Faker::Lorem.sentence
Faker::Name.name
...
RSpec と Rails を使用しています。
これを行うには、any
呼び出したい名前空間クラスと等しい変数を定義できます。
lorem = Faker::Lorem
lorem.sentence
#=> "Dignissimos eos qui doloribus quaerat sequi est corrupti error."
name = Faker::Name
name.name
#=> "Dr. Percival Ernser"
ただし、これはハックであり、コードで行うべきことではないと考えてください。実際、誰かがあなたのコードを読むとき (または数か月後にあなたのコードを読むとき)、見るFaker::Namespace
ことは当然のことのように見えます。一方、読むname.name
ことは混乱につながります。それが何をするのかを理解するには、その定義を探す必要があるからです。名前空間には存在する理由があり、いくつかのキーストロークを節約するために上書きすべきではありません。これがあなたの質問に答えてくれることを願っています!
編集:「すべての名前空間を1つに統合する」というコメントから。これは不可能です (少なくとも の場合Faker
)。実際、異なるメソッドは同じ名前ですが、名前空間は異なります。たとえば、との両方にFaker
メソッドの実装があります (異なる結果が得られます)。name
Faker::Name
Faker::Company
結果として、一部のメソッドが失われるため、名前空間を統一することはできません。