Я пытаюсь создать набор методов, доступных, просто запустив Name.method
, где имя одинаково для всех методов. Мне также нужны методы для доступа к переменным, из которых они были вызваны.Как создать модуль, который также имеет доступ к локальным переменным?
Вот что я в настоящее время:
module Name
def self.method1
p "method1 called"
end
def self.accessLocalVariables
p localVariable
end
end
Name.method1 #=> method1 called
localVariable = "test"
Name.accessLocalVariables #=> NameError: undefined local variable or method `localvariable' for Name:Module
Я хотел бы, чтобы Name.accessLocalVariables
вернулись test
. Как я могу создать что-то, что будет работать таким образом?
Причина, по которой он должен обращаться к локальным переменным, и я не могу использовать другой тип переменной, потому что эта переменная является частью драгоценного камня, и мне нужно будет войти в драгоценный камень и найти каждый экземпляр и изменить его. Это было бы невозможно.
Почему вы хотите сделать это? Это очень анти-инкапсуляция, плотная связь и склонность к ошибкам. – Aetherus
@Aetherus Я пытаюсь объединить эти методы вместе, поэтому я использую модуль. Должен ли я использовать модуль? – thesecretmaster
Короче говоря, метод не может получить доступ к локальной переменной, определенной в другом месте. Это не только в Ruby, но и во всех серьезных языках программирования. – Aetherus