Sha256: 487110470cfaff309f0978b10e0e2f37c40226d3c241033c308eb7029a24fdc4
Contents?: true
Size: 608 Bytes
Versions: 25
Compression:
Stored size: 608 Bytes
Contents
module Exlibris module Primo # # If a class is abstract, it can't be instantiated. # module Abstract def self.included(klass) klass.class_eval do extend ClassAttributes end end module ClassAttributes def abstract @abstract ||= false end alias :abstract? :abstract attr_writer :abstract protected :abstract= end def initialize *args raise NotImplementedError.new("Cannot instantiate #{self.class.name}. It is abstract") if self.class.abstract? end end end end
Version data entries
25 entries across 25 versions & 1 rubygems