我有模块
module M
def self.included(base)
base.extend ClassMethods
end
module ClassMethods
def m(val)
# todo
end
end
end
我上课了
class A
include M
end
来自m
的方法module M
必须在我调用它时在类变量val
中推送arr
。
A.m(1)
A.m(2)
A.m(3)
A.arr # => [1, 2, 3]
我该怎么做呢?
我有下面的解决方案,但我不确定它是最好的。
module M
def self.included(base)
base.extend ClassMethods
end
module ClassMethods
attr_accessor :arr
def m (val)
self.arr ||= []
arr << val
end
end
end