Module: Ddr::Models::HasContent

Extended by:
ActiveSupport::Concern
Included in:
Attachment, Component, Target
Defined in:
lib/ddr/models/has_content.rb

Constant Summary collapse

MASTER_FILE_TYPES =
[ "image/tiff" ]

Instance Method Summary collapse

Instance Method Details

#content_changed?Boolean

Returns:

  • (Boolean)


123
124
125
# File 'lib/ddr/models/has_content.rb', line 123

def content_changed?
  content.external? ? content.dsLocation_changed? : content.content_changed?
end

#content_human_sizeObject



79
80
81
# File 'lib/ddr/models/has_content.rb', line 79

def content_human_size
  ActiveSupport::NumberHelper.number_to_human_size(content_size) if content_size
end

#content_major_typeObject



87
88
89
# File 'lib/ddr/models/has_content.rb', line 87

def content_major_type
  content_type.split("/").first
end

#content_sizeObject



75
76
77
# File 'lib/ddr/models/has_content.rb', line 75

def content_size
  content.external? ? content.file_size : content.dsSize
end

#content_sub_typeObject



91
92
93
# File 'lib/ddr/models/has_content.rb', line 91

def content_sub_type
  content_type.split("/").last
end

#content_typeObject



83
84
85
# File 'lib/ddr/models/has_content.rb', line 83

def content_type
  content.mimeType
end

#content_type=(mime_type) ⇒ Object



95
96
97
# File 'lib/ddr/models/has_content.rb', line 95

def content_type= mime_type
  self.content.mimeType = mime_type
end

#derivativesObject



67
68
69
# File 'lib/ddr/models/has_content.rb', line 67

def derivatives
  @derivatives ||= Ddr::Managers::DerivativesManager.new(self)
end

#has_extracted_text?Boolean

Returns:

  • (Boolean)


127
128
129
# File 'lib/ddr/models/has_content.rb', line 127

def has_extracted_text?
  extractedText.has_content?
end

#image?Boolean

Returns:

  • (Boolean)


99
100
101
# File 'lib/ddr/models/has_content.rb', line 99

def image?
  content_major_type == "image"
end

#last_virus_checkObject



111
112
113
# File 'lib/ddr/models/has_content.rb', line 111

def last_virus_check
  virus_checks.last
end

#last_virus_check_onObject



115
116
117
# File 'lib/ddr/models/has_content.rb', line 115

def last_virus_check_on
  last_virus_check && last_virus_check.event_date_time
end

#last_virus_check_outcomeObject



119
120
121
# File 'lib/ddr/models/has_content.rb', line 119

def last_virus_check_outcome
  last_virus_check && last_virus_check.outcome
end

#master_file?Boolean

Returns:

  • (Boolean)


8
9
10
11
12
13
14
# File 'lib/ddr/models/has_content.rb', line 8

def master_file?
  if respond_to?(:file_use) && file_use.present?
    file_use == Ddr::Models::HasStructMetadata::FILE_USE_MASTER
  else
    MASTER_FILE_TYPES.include?(content_type)
  end
end

#pdf?Boolean

Returns:

  • (Boolean)


103
104
105
# File 'lib/ddr/models/has_content.rb', line 103

def pdf?
  content_type == "application/pdf"
end

#techmdObject



71
72
73
# File 'lib/ddr/models/has_content.rb', line 71

def techmd
  @techmd ||= Ddr::Managers::TechnicalMetadataManager.new(self)
end

#upload(file, opts = {}) ⇒ Object

Convenience method wrapping FileManagement#add_file



57
58
59
# File 'lib/ddr/models/has_content.rb', line 57

def upload file, opts={}
  add_file(file, Ddr::Datastreams::CONTENT, opts)
end

#upload!(file, opts = {}) ⇒ Object

Set content to file and save



62
63
64
65
# File 'lib/ddr/models/has_content.rb', line 62

def upload! file, opts={}
  upload(file, opts)
  save
end

#virus_checksObject



107
108
109
# File 'lib/ddr/models/has_content.rb', line 107

def virus_checks
  Ddr::Events::VirusCheckEvent.for_object(self)
end

#with_content_file(&block) ⇒ Object



131
132
133
# File 'lib/ddr/models/has_content.rb', line 131

def with_content_file(&block)
  WithContentFile.new(self, &block)
end