Class: MediaFile

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/media_file.rb

Overview


Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.find_by_name(name) ⇒ Object

Given a name in the form ‘folder/filename.ext’, return the correct media file




66
67
68
69
70
71
# File 'app/models/media_file.rb', line 66

def self.find_by_name(name)
  components  = name.split('/')
  filename    = components[-1]
  folder      = components[-2] || ''
  asset       = MediaFile.where(folder: folder, media: filename).first
end

.tag_list_allObject

return a list of tags for all media objects




36
37
38
# File 'app/models/media_file.rb', line 36

def self.tag_list_all
  MediaFile.tag_counts_on(:tags).map(&:name).sort
end

.url_by_name(name, options = {version: :original}) ⇒ Object

Given a name in the form ‘folder/filename.ext’, grab the url with the correct version Use ‘version: :original’ to allow the original version to be pulled




43
44
45
46
47
48
49
50
# File 'app/models/media_file.rb', line 43

def self.url_by_name(name, options = {version: :original})
  asset = MediaFile.find_by_name(name)
  if asset
    options[:version] == :original ? asset.media.url : asset.media.url(options[:version])
  else
    nil
  end
end

.version_exists?(name, options = {version: :original}) ⇒ Boolean

Given a name in the form ‘folder/filename.ext’, check if the version exists. Use ‘version: :original’ to allow the original version to be pulled


Returns:

  • (Boolean)


55
56
57
58
59
60
61
62
# File 'app/models/media_file.rb', line 55

def self.version_exists?(name, options = {version: :original})
  asset = MediaFile.find_by_name(name)
  if asset
    options[:version] == :original ? true : asset.media.version_exists?(options[:version])
  else
    false
  end
end

Instance Method Details

#image?Boolean


Returns:

  • (Boolean)


19
20
21
# File 'app/models/media_file.rb', line 19

def image?
  self.media_content_type.start_with? 'image'
end

#pdf?Boolean


Returns:

  • (Boolean)


24
25
26
# File 'app/models/media_file.rb', line 24

def pdf?
  self.media_content_type.end_with? 'pdf'
end

#short_location(version = nil) ⇒ Object




29
30
31
32
# File 'app/models/media_file.rb', line 29

def short_location(version = nil)
  filename = version ? self.media.versions[version].file.filename : self.media.file.filename
  folder.blank? ? filename : "#{folder}/#{filename}"
end