Я действительно новичок в Ruby. И до нового - менее 16 часов, но мой начальник дал мне немного кода на Ruby, чтобы добавить к нему. Однако, я обнаружил, что это был один гигантский файл, а не модульный, поэтому я решил его почистить. Теперь, когда я разбил его на несколько файлов / классов (вообще говоря, по 1 классу на файл), у меня возникли проблемы с объединением его воедино, чтобы он снова заработал. Изначально все были частью одного класса, поэтому звонки работали, но это выглядело ужасно, и потребовался целый рабочий день, чтобы понять это. Я хочу избежать этого в будущем, так как этот код будет намного больше, прежде чем это будет сделано.
Моя основная проблема выглядит следующим образом (очевидно, упрощенно):
class TestDevice
def initialize
@loghash = { }
....
end
end
class Log
def self.msg(identifier, level, section, message)
...
@loghash[identifier] = { level => { section => message }}
...
end
end
device = TestDevice.new
После этого он вызывает другие методы класса, и эти методы класса возвращаются к классу Log для своих нужд регистрации. Конечно, Log должен получить доступ к «device.loghash» для записи информации в этот хэш. Но я не могу понять, как это сделать, не передавая содержимое «loghash» каждому методу, чтобы они, в свою очередь, могли передать его, а затем вернуть значение обратно в точку происхождения и затем зарегистрировать его в конце, но это кажется действительно неуклюжим и неловким.
Я надеюсь, что я действительно что-то упускаю.