Module: CurationConcerns::SolrDocumentBehavior

Extended by:
ActiveSupport::Concern
Includes:
CurationConcerns::SolrBehavior::Characterization, Hydra::Works::MimeTypes
Defined in:
app/models/concerns/curation_concerns/solr_document_behavior.rb

Defined Under Namespace

Classes: ModelWrapper

Instance Method Summary collapse

Methods included from CurationConcerns::SolrBehavior::Characterization

#byte_order, #capture_device, #color_map, #color_space, #compression, #duration, #file_size, #file_title, #filename, #format_label, #gps_timestamp, #height, #image_producer, #last_modified, #latitude, #longitude, #orientation, #original_checksum, #page_count, #profile_name, #profile_version, #sample_rate, #scanning_software, #well_formed, #width

Instance Method Details

#collection?Boolean

Returns:

  • (Boolean)


51
52
53
# File 'app/models/concerns/curation_concerns/solr_document_behavior.rb', line 51

def collection?
  hydra_model == ::Collection
end

#contributorObject



111
112
113
# File 'app/models/concerns/curation_concerns/solr_document_behavior.rb', line 111

def contributor
  fetch(Solrizer.solr_name('contributor'), [])
end

#creatorObject



106
107
108
109
# File 'app/models/concerns/curation_concerns/solr_document_behavior.rb', line 106

def creator
  descriptor = hydra_model.index_config[:creator].behaviors.first
  fetch(Solrizer.solr_name('creator', descriptor), [])
end

#date_createdObject

Date created is indexed as a string. This allows users to enter values like: ‘Circa 1840-1844’



73
74
75
# File 'app/models/concerns/curation_concerns/solr_document_behavior.rb', line 73

def date_created
  first(Solrizer.solr_name("date_created"))
end

#date_modifiedObject



77
78
79
# File 'app/models/concerns/curation_concerns/solr_document_behavior.rb', line 77

def date_modified
  date_field('date_modified')
end

#date_uploadedObject



81
82
83
# File 'app/models/concerns/curation_concerns/solr_document_behavior.rb', line 81

def date_uploaded
  date_field('date_uploaded')
end

#depositor(default = '') ⇒ Object



85
86
87
88
# File 'app/models/concerns/curation_concerns/solr_document_behavior.rb', line 85

def depositor(default = '')
  val = first(Solrizer.solr_name('depositor'))
  val.present? ? val : default
end

#descriptionObject



94
95
96
# File 'app/models/concerns/curation_concerns/solr_document_behavior.rb', line 94

def description
  Array.wrap(self[Solrizer.solr_name('description')])
end

#embargo_release_dateObject



131
132
133
# File 'app/models/concerns/curation_concerns/solr_document_behavior.rb', line 131

def embargo_release_date
  self[Hydra.config.permissions.embargo.release_date]
end

#file_formatObject



102
103
104
# File 'app/models/concerns/curation_concerns/solr_document_behavior.rb', line 102

def file_format
  first(Solrizer.solr_name('file_format'))
end

#human_readable_typeObject



60
61
62
# File 'app/models/concerns/curation_concerns/solr_document_behavior.rb', line 60

def human_readable_type
  first(Solrizer.solr_name('human_readable_type', :stored_searchable))
end

#hydra_modelObject

Method to return the ActiveFedora model



56
57
58
# File 'app/models/concerns/curation_concerns/solr_document_behavior.rb', line 56

def hydra_model
  first(Solrizer.solr_name('has_model', :symbol)).constantize
end

#keywordObject



127
128
129
# File 'app/models/concerns/curation_concerns/solr_document_behavior.rb', line 127

def keyword
  fetch(Solrizer.solr_name('keyword'), [])
end

#labelObject



98
99
100
# File 'app/models/concerns/curation_concerns/solr_document_behavior.rb', line 98

def label
  first(Solrizer.solr_name('label'))
end

#languageObject



123
124
125
# File 'app/models/concerns/curation_concerns/solr_document_behavior.rb', line 123

def language
  fetch(Solrizer.solr_name('language'), [])
end

#lease_expiration_dateObject



135
136
137
# File 'app/models/concerns/curation_concerns/solr_document_behavior.rb', line 135

def lease_expiration_date
  self[Hydra.config.permissions.lease.expiration_date]
end

#mime_typeObject



143
144
145
# File 'app/models/concerns/curation_concerns/solr_document_behavior.rb', line 143

def mime_type
  self[Solrizer.solr_name('mime_type', :stored_sortable)]
end

#publisherObject



119
120
121
# File 'app/models/concerns/curation_concerns/solr_document_behavior.rb', line 119

def publisher
  fetch(Solrizer.solr_name('publisher'), [])
end

#read_groupsObject



147
148
149
# File 'app/models/concerns/curation_concerns/solr_document_behavior.rb', line 147

def read_groups
  fetch(Hydra.config.permissions.read.group, [])
end

#representative_idObject



64
65
66
# File 'app/models/concerns/curation_concerns/solr_document_behavior.rb', line 64

def representative_id
  first(Solrizer.solr_name('hasRelatedMediaFragment', :symbol))
end

#rightsObject



139
140
141
# File 'app/models/concerns/curation_concerns/solr_document_behavior.rb', line 139

def rights
  fetch(Solrizer.solr_name('rights'), [])
end

#sourceObject



151
152
153
# File 'app/models/concerns/curation_concerns/solr_document_behavior.rb', line 151

def source
  fetch(Solrizer.solr_name('source'), [])
end

#subjectObject



115
116
117
# File 'app/models/concerns/curation_concerns/solr_document_behavior.rb', line 115

def subject
  fetch(Solrizer.solr_name('subject'), [])
end

#thumbnail_idObject



68
69
70
# File 'app/models/concerns/curation_concerns/solr_document_behavior.rb', line 68

def thumbnail_id
  first(Solrizer.solr_name('hasRelatedImage', :symbol))
end

#titleObject



90
91
92
# File 'app/models/concerns/curation_concerns/solr_document_behavior.rb', line 90

def title
  Array.wrap(self[Solrizer.solr_name('title')])
end

#title_or_labelObject



7
8
9
10
# File 'app/models/concerns/curation_concerns/solr_document_behavior.rb', line 7

def title_or_label
  return label if title.blank?
  title.join(', ')
end

#to_modelObject

Offer the source (ActiveFedora-based) model to Rails for some of the Rails methods (e.g. link_to).

Examples:

link_to '...', SolrDocument(:id => 'bXXXXXX5').new => <a href="/dams_object/bXXXXXX5">...</a>


47
48
49
# File 'app/models/concerns/curation_concerns/solr_document_behavior.rb', line 47

def to_model
  @model ||= ModelWrapper.new(hydra_model, id)
end

#to_paramObject



12
13
14
# File 'app/models/concerns/curation_concerns/solr_document_behavior.rb', line 12

def to_param
  id
end

#to_sObject



16
17
18
# File 'app/models/concerns/curation_concerns/solr_document_behavior.rb', line 16

def to_s
  title_or_label
end

#visibilityObject



155
156
157
158
159
160
161
162
163
# File 'app/models/concerns/curation_concerns/solr_document_behavior.rb', line 155

def visibility
  @visibility ||= if read_groups.include? Hydra::AccessControls::AccessRight::PERMISSION_TEXT_VALUE_PUBLIC
                    Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PUBLIC
                  elsif read_groups.include? Hydra::AccessControls::AccessRight::PERMISSION_TEXT_VALUE_AUTHENTICATED
                    Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_AUTHENTICATED
                  else
                    Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PRIVATE
                  end
end