Sha256: 8062c653fb1f4c1580fab816b67b0c84465d2b321b708025b6e8ef4102abd0f8

Contents?: true

Size: 1.71 KB

Versions: 9

Compression:

Stored size: 1.71 KB

Contents

module Ddr
  module Models
    module Indexing

      include Ddr::IndexFields

      def to_solr(solr_doc=Hash.new, opts={})
        solr_doc = super(solr_doc, opts)
        solr_doc.merge index_fields
      end

      def index_fields
        fields = {
          TITLE => title_display,
          INTERNAL_URI => internal_uri,
          IDENTIFIER => identifier_sort,
          WORKFLOW_STATE => workflow_state
        }
        if permanent_id.present?
          fields[PERMANENT_ID] = permanent_id
        end
        if permanent_url.present?
          fields[PERMANENT_URL] = permanent_url
        end
        if respond_to? :fixity_checks
          last_fixity_check = fixity_checks.last
          fields.merge!(last_fixity_check.to_solr) if last_fixity_check
        end
        if respond_to? :virus_checks
          last_virus_check = virus_checks.last
          fields.merge!(last_virus_check.to_solr) if last_virus_check
        end
        if has_content?
          fields[CONTENT_CONTROL_GROUP] = content.controlGroup
          fields[CONTENT_SIZE] = content_size
          fields[CONTENT_SIZE_HUMAN] = content_human_size
          fields[MEDIA_TYPE] = content_type
          fields[MEDIA_MAJOR_TYPE] = content_major_type
          fields[MEDIA_SUB_TYPE] = content_sub_type
        end
        if is_a? Component
          fields[COLLECTION_URI] = collection_uri
        end
        fields
      end

      def title_display
        return title.first if title.present?
        return identifier.first if identifier.present?
        return original_filename if respond_to?(:original_filename) && original_filename.present?
        "[#{pid}]"
      end

      def identifier_sort
        identifier.first
      end

    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
ddr-models-1.12.0 lib/ddr/models/indexing.rb
ddr-models-1.11.4 lib/ddr/models/indexing.rb
ddr-models-1.11.3 lib/ddr/models/indexing.rb
ddr-models-1.11.2 lib/ddr/models/indexing.rb
ddr-models-1.11.1 lib/ddr/models/indexing.rb
ddr-models-1.11.0 lib/ddr/models/indexing.rb
ddr-models-1.10.0 lib/ddr/models/indexing.rb
ddr-models-1.9.0 lib/ddr/models/indexing.rb
ddr-models-1.8.1 lib/ddr/models/indexing.rb