デザパタ + Python/Ruby/Smalltalk part2
■ このスレッドは過去ログ倉庫に格納されています
0025デフォルトの名無しさん
2007/04/10(火) 23:38:09class Module
def abstract(*names)
if class_variables.size > 0 then
class_variable_get(:@@ABSTRACT_METHODS).push *names
else
class_variable_set :@@ABSTRACT_METHODS, names
end
end
end
module AbstractClass
def new(*args)
obj = super(*args)
class_variable_get(:@@ABSTRACT_METHODS).each do |m|
unless obj.methods.include?(m.to_s) then
raise format("Abstract method `%s' not defined", m.to_s)
end
end
return obj
end
end
■ このスレッドは過去ログ倉庫に格納されています