Module: Sufia::Collection

Extended by:
ActiveSupport::Concern
Includes:
Hydra::Collection, GenericFile::Permissions, GenericFile::WebForm, ModelMethods, Noid
Included in:
Collection
Defined in:
app/models/concerns/sufia/collection.rb

Instance Method Summary collapse

Methods included from GenericFile::WebForm

#initialize_fields, #remove_blank_assertions, #to_jq_upload

Methods included from GenericFile::AccessibleAttributes

#accessible_attributes, #sanitize_attributes

Methods included from Permissions::Readable

#private?, #public?, #registered?

Methods included from Permissions::Writable

#paranoid_permissions, #permissions, #permissions=

Methods included from Noid

namespaceize, #noid, noidify

Methods included from ModelMethods

#apply_depositor_metadata, #to_s

Instance Method Details

#bytesObject

Compute the sum of each file in the collection Return an integer of the result



50
51
52
# File 'app/models/concerns/sufia/collection.rb', line 50

def bytes
  members.reduce(0) { |sum, gf| sum + gf.file_size.first.to_i }
end

#required?(key) ⇒ Boolean

Test to see if the given field is required

Parameters:

  • key (Symbol)

    a field

Returns:

  • (Boolean)

    is it required or not



30
31
32
# File 'app/models/concerns/sufia/collection.rb', line 30

def required?(key)
  self.class.validators_on(key).any?{|v| v.kind_of? ActiveModel::Validations::PresenceValidator}
end

#terms_for_displayObject



17
18
19
# File 'app/models/concerns/sufia/collection.rb', line 17

def terms_for_display
  terms_for_editing - [:title, :description]
end

#terms_for_editingObject



21
22
23
24
25
# File 'app/models/concerns/sufia/collection.rb', line 21

def terms_for_editing
  [:resource_type, :title, :creator, :contributor, :description, :tag,
    :rights, :publisher, :date_created, :subject, :language, :identifier,
    :based_near, :related_url]
end

#to_paramObject



34
35
36
# File 'app/models/concerns/sufia/collection.rb', line 34

def to_param
  noid
end

#to_solr(solr_doc = {}, opts = {}) ⇒ Object



38
39
40
41
42
# File 'app/models/concerns/sufia/collection.rb', line 38

def to_solr(solr_doc={}, opts={})
  super(solr_doc, opts)
  solr_doc[Solrizer.solr_name("noid", Sufia::GenericFile.noid_indexer)] = noid
  return solr_doc
end

#update_permissionsObject



44
45
46
# File 'app/models/concerns/sufia/collection.rb', line 44

def update_permissions
  self.visibility = "open"
end