lib/qiniu/abstract.rb
# -*- encoding: utf-8 -*-
module Qiniu
module Abstract
def self.included(base)
base.extend(ClassMethods)
end
module ClassMethods
def abstract_methods(*args)
args.each do |name|
class_eval <<-END
def #{name}(*args)
errmsg = %Q(class \#{self.class.name} must implement abstract method #{self.name}##{name}().)
raise NotImplementedError.new(errmsg)
end
END
end
end
end
end # module Abstract
end # module Qiniu