Sha256: 9c4b3abdf917e7c3322ccadc02dbf4cfc4263e742eabfd2e56e80b90a36e5ff7
Contents?: true
Size: 1.03 KB
Versions: 4
Compression:
Stored size: 1.03 KB
Contents
module ActiveFedora module Inheritance extend ActiveSupport::Concern module ClassMethods # Returns the class descending directly from ActiveFedora::Base, or # an abstract class, if any, in the inheritance hierarchy. # # If A extends ActiveFedora::Base, A.base_class will return A. If B descends from A # through some arbitrarily deep hierarchy, B.base_class will return A. # # If B < A and C < B and if A is an abstract_class then both B.base_class # and C.base_class would return B as the answer since A is an abstract_class. def base_class return File if self <= File raise ActiveFedoraError, "#{name} doesn't belong in a hierarchy descending from ActiveFedora" unless self <= Base if self == Base || superclass == Base || superclass.abstract_class? self else superclass.base_class end end # Abstract classes can't have default scopes. def abstract_class? self == Base end end end end
Version data entries
4 entries across 4 versions & 1 rubygems