class ActiveFedora::IndexingService

def self.profile_solr_name

def self.profile_solr_name
  @profile_solr_name ||= ActiveFedora::SolrQueryBuilder.solr_name("object_profile", :displayable)
end

def c_time

def c_time
  c_time = object.create_date.present? ? object.create_date : DateTime.now
  c_time = DateTime.parse(c_time) unless c_time.is_a?(DateTime)
  c_time
end

def generate_solr_document

Returns:
  • (Hash) - the solr document

Other tags:
    Yield: - yields the solr document
def generate_solr_document
  solr_doc = {}
  Solrizer.set_field(solr_doc, 'system_create', c_time, :stored_sortable)
  Solrizer.set_field(solr_doc, 'system_modified', m_time, :stored_sortable)
  Solrizer.set_field(solr_doc, 'active_fedora_model', object.class.inspect, :stored_sortable)
  solr_doc.merge!(QueryResultBuilder::HAS_MODEL_SOLR_FIELD => object.has_model)
  solr_doc.merge!(SOLR_DOCUMENT_ID.to_sym => object.id)
  solr_doc.merge!(self.class.profile_solr_name => profile_service.new(object).export)
  object.attached_files.each do |name, file|
    solr_doc.merge! file.to_solr(solr_doc, name: name.to_s)
  end
  solr_doc = solrize_relationships(solr_doc)
  solr_doc = solrize_rdf_assertions(solr_doc)
  yield(solr_doc) if block_given?
  solr_doc
end

def initialize(obj)

outgoing_reflections
inspect
and it's class must respond to
[]
attached_files
to_json
id
has_model
modified_date
create_date
Object must respond to
def initialize(obj)
  @object = obj
end

def m_time

def m_time
  m_time = object.modified_date.present? ? object.modified_date : DateTime.now
  m_time = DateTime.parse(m_time) unless m_time.is_a?(DateTime)
  m_time
end

def profile_service

def profile_service
  ProfileIndexingService
end

def rdf_service

def rdf_service
  RDF::IndexingService
end

def solrize_rdf_assertions(solr_doc = Hash.new)

Parameters:
  • solr_doc (Hash) -- @deafult an empty Hash
def solrize_rdf_assertions(solr_doc = Hash.new)
  solr_doc.merge rdf_service.new(object).generate_solr_document
end

def solrize_relationships(solr_doc = Hash.new)

Parameters:
  • solr_doc (Hash) -- @deafult an empty Hash
def solrize_relationships(solr_doc = Hash.new)
  object.class.outgoing_reflections.values.each do |reflection|
    solr_key = reflection.solr_key
    Array(object[reflection.foreign_key]).compact.each do |v|
      ::Solrizer::Extractor.insert_solr_field_value(solr_doc, solr_key, v )
    end
  end
  solr_doc
end