class ActiveFedora::SolrHit
def self.for(hit)
def self.for(hit) return hit if hit.is_a? ActiveFedora::SolrHit SolrHit.new(hit) end
def __getobj__
def __getobj__ @document # return object we are delegating to, required end
def __setobj__(obj)
def __setobj__(obj) @document = obj end
def classifier
def classifier ActiveFedora.model_mapper.classifier(document) end
def id
def id document[ActiveFedora.id_field] end
def initialize(document)
def initialize(document) document = document.with_indifferent_access super @document = document end
def instantiate_with_json
def instantiate_with_json model.allocate.init_with_json(profile_json) do |allocated_object| create_key = allocated_object.indexing_service.class.create_time_solr_name modified_key = allocated_object.indexing_service.class.modified_time_solr_name allocated_object.resource.set_value(:create_date, DateTime.parse(document[create_key])) if document[create_key] allocated_object.resource.set_value(:modified_date, DateTime.parse(document[modified_key])) if document[modified_key] end end
def model(opts = {})
def model(opts = {}) best_model_match = classifier.best_model(opts) ActiveFedora::Base.logger.warn "Could not find a model for #{id}, defaulting to ActiveFedora::Base" if ActiveFedora::Base.logger && best_model_match == ActiveFedora::Base best_model_match end
def model?(model_to_check)
def model?(model_to_check) models.any? do |model| model_to_check >= model end end
def profile_json
def profile_json Array(document[ActiveFedora::IndexingService.profile_solr_name]).first end
def rdf_uri
def rdf_uri ::RDF::URI.new(ActiveFedora::Base.id_to_uri(id)) end
def reify(opts = {})
def reify(opts = {}) model(opts).find(id, cast: true) end