Псевдоним attr_reader в Ruby - PullRequest
       1

Псевдоним attr_reader в Ruby

3 голосов
/ 16 января 2010

Возможно ли псевдоним метода attr_reader в Ruby? У меня есть класс со свойством favourites, которое я хочу присвоить псевдониму favorites для американских пользователей. Какой идиоматический способ Ruby сделать это?

Ответы [ 2 ]

13 голосов
/ 16 января 2010

Да, вы можете просто использовать метод псевдонима. Очень неряшливый пример:

class X
  attr_accessor :favourites
  alias :favorites :favourites
end
6 голосов
/ 16 января 2010

attr_reader просто генерирует соответствующие методы экземпляра. Это:

class Foo
  attr_reader :bar
end

идентично:

class Foo
  def bar
    @bar
  end
end

поэтому alias_method работает так, как вы ожидаете:

class Foo
  attr_reader :favourites
  alias_method :favorites, :favourites

  # and if you also need to provide writers
  attr_writer :favourites
  alias_method :favorites=, :favourites=
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...