сокращение от configatron для пространств имен - PullRequest
1 голос
/ 15 ноября 2011

Есть ли способ избежать ввода пространства имен каждый раз при использовании gem configatron?Скажем, у вас есть

  configatron.email.pop.address = 1
  configatron.email.pop.port = 2

Можно ли настроить порт и адрес, набрав configatron.email.pop только один раз?

1 Ответ

1 голос
/ 15 ноября 2011

Одна простая вещь, которую вы можете сделать, - это.

configatron.email.pop.tap do|pop|
  pop.address = 'localhost'
  pop.port = 22
end

Или даже это.

pop = configatron.email.pop
pop.address = 'localhost'
pop.port = 22

Вы также можете попробовать добавить одноэлементные методы к объекту configatron.

class << configatron
  def pop; email.pop; end
end

configatron.pop.address = 'localhost'
configatron.pop.port = 22

Или даже это.

class << configatron
  def pop_address; email.pop.address; end
  def pop_address=(addr); email.pop.address = addr; end
end

configatron.pop_address = 'address'

Но это может привести к поломке (я предполагаю, что configatron работает над method_missing).И это не экономит много времени на наборе текста, но может позволить вам сделать несколько удобных ярлыков для вещей, спрятанных в глубине нескольких пространств имен.

Возможно, вам следует просто выложить это с многословием здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...