Sha256: 57ab45d891cd15cefe4aa32f2efec2a3a8d811724616a42bb07b9f3067a7549a

Contents?: true

Size: 961 Bytes

Versions: 33

Compression:

Stored size: 961 Bytes

Contents

SOLR_DOCUMENT_ID = "id" unless defined?(SOLR_DOCUMENT_ID)

module ActiveFedora
  # = ActiveFedora
  # This module mixes various methods into the including class,
  # much in the way ActiveRecord does.  
  module Model 

    # Takes a Fedora URI for a cModel, and returns a 
    # corresponding Model if available
    # This method should reverse ClassMethods#to_class_uri
    # @return [Class, False] the class of the model or false, if it does not exist
    def self.from_class_uri(model_value)

      unless class_exists?(model_value)
        ActiveFedora::Base.logger.warn "'#{model_value}' is not a real class" if ActiveFedora::Base.logger
        return nil
      end
      ActiveFedora.class_from_string(model_value)
    end

    private 
    
    def self.class_exists?(class_name)
      return false if class_name.empty?
      klass = class_name.constantize
      return klass.is_a?(Class)
    rescue NameError
      return false
    end
    
  end
end

Version data entries

33 entries across 33 versions & 1 rubygems

Version Path
active-fedora-9.0.8 lib/active_fedora/model.rb
active-fedora-9.5.0 lib/active_fedora/model.rb
active-fedora-9.4.3 lib/active_fedora/model.rb
active-fedora-9.4.2 lib/active_fedora/model.rb
active-fedora-9.4.1 lib/active_fedora/model.rb
active-fedora-9.4.0 lib/active_fedora/model.rb
active-fedora-9.3.0 lib/active_fedora/model.rb
active-fedora-9.2.1 lib/active_fedora/model.rb
active-fedora-9.2.0 lib/active_fedora/model.rb
active-fedora-9.2.0.rc2 lib/active_fedora/model.rb
active-fedora-9.2.0.rc1 lib/active_fedora/model.rb
active-fedora-9.1.2 lib/active_fedora/model.rb
active-fedora-9.1.1 lib/active_fedora/model.rb
active-fedora-9.1.0 lib/active_fedora/model.rb
active-fedora-9.1.0.rc1 lib/active_fedora/model.rb
active-fedora-9.0.6 lib/active_fedora/model.rb
active-fedora-9.0.5 lib/active_fedora/model.rb
active-fedora-9.0.4 lib/active_fedora/model.rb
active-fedora-9.0.3 lib/active_fedora/model.rb
active-fedora-9.0.2 lib/active_fedora/model.rb