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)


121
122
123
# File 'lib/ddr/models/has_content.rb', line 121

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

#content_human_sizeObject



77
78
79
# File 'lib/ddr/models/has_content.rb', line 77

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

#content_major_typeObject



85
86
87
# File 'lib/ddr/models/has_content.rb', line 85

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

#content_sizeObject



73
74
75
# File 'lib/ddr/models/has_content.rb', line 73

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

#content_sub_typeObject



89
90
91
# File 'lib/ddr/models/has_content.rb', line 89

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

#content_typeObject



81
82
83
# File 'lib/ddr/models/has_content.rb', line 81

def content_type
  content.mimeType
end

#content_type=(mime_type) ⇒ Object



93
94
95
# File 'lib/ddr/models/has_content.rb', line 93

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

#derivativesObject



65
66
67
# File 'lib/ddr/models/has_content.rb', line 65

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

#has_extracted_text?Boolean

Returns:

  • (Boolean)


125
126
127
# File 'lib/ddr/models/has_content.rb', line 125

def has_extracted_text?
  extractedText.has_content?
end

#image?Boolean

Returns:

  • (Boolean)


97
98
99
# File 'lib/ddr/models/has_content.rb', line 97

def image?
  content_major_type == "image"
end

#last_virus_checkObject



109
110
111
# File 'lib/ddr/models/has_content.rb', line 109

def last_virus_check
  virus_checks.last
end

#last_virus_check_onObject



113
114
115
# File 'lib/ddr/models/has_content.rb', line 113

def last_virus_check_on
  last_virus_check && last_virus_check.event_date_time
end

#last_virus_check_outcomeObject



117
118
119
# File 'lib/ddr/models/has_content.rb', line 117

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)


101
102
103
# File 'lib/ddr/models/has_content.rb', line 101

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

#techmdObject



69
70
71
# File 'lib/ddr/models/has_content.rb', line 69

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

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

Convenience method wrapping FileManagement#add_file



55
56
57
# File 'lib/ddr/models/has_content.rb', line 55

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

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

Set content to file and save



60
61
62
63
# File 'lib/ddr/models/has_content.rb', line 60

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

#virus_checksObject



105
106
107
# File 'lib/ddr/models/has_content.rb', line 105

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

#with_content_file(&block) ⇒ Object



129
130
131
# File 'lib/ddr/models/has_content.rb', line 129

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