我对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”的内容传递给每个方法之外实现这一点,以便他们反过来可以传递它,然后将值返回到起始点,然后记录它最后,但这似乎真的很笨拙和尴尬。
我希望我真的只是错过了一些东西。