Sha256: 2830c706cb182311dc363859deffb90986f9d80db6735d33b075204d3399f721

Contents?: true

Size: 959 Bytes

Versions: 3

Compression:

Stored size: 959 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

3 entries across 3 versions & 1 rubygems

Version Path
active-fedora-9.7.0 lib/active_fedora/model.rb
active-fedora-9.6.2 lib/active_fedora/model.rb
active-fedora-9.6.1 lib/active_fedora/model.rb