我使用Class.new
方法创建动态类。但有时我用参数调用该方法来创建一个继承的类 - 有时没有。
选项1:
newclass = Class.new do
...
end
选项2:
newClass = Class.new(p) do
...
end
新课程的主体是相同的。但我无法使用未定义Class.new(p)
来呼叫p
。所以我必须创建一个if语句然后用参数调用Class.new
或者没有这意味着我有重复创建类的代码,这是不理想的,因为我的代码中的每次更改都要做两次。我怎么能绕过这个?
答案 0 :(得分:1)
您可以抽象Class.new
电话,并将该区域留在一个位置。像这样:
def create_me_a_class(superklass = Object, &block)
Class.new(superklass, &block)
end
newclass = create_me_a_class(p) do
def my_method
# whatever
end
end