class S3Assets::Model
Public Class Methods
from_s3_params(bucket, key)
click to toggle source
# File lib/s3_assets/model.rb, line 52 def self.from_s3_params(bucket, key) return nil if bucket.blank? || key.blank? key = URI.encode(key, "!@#$%^&*()+=[]{} ") url = "https://s3.amazonaws.com/#{bucket}/#{key}" self.new(absolute_url: url) end
Public Instance Methods
dj_priority()
click to toggle source
# File lib/s3_assets/model.rb, line 49 def dj_priority end
download()
click to toggle source
# File lib/s3_assets/model.rb, line 25 def download ::S3Assets::Utility.download(self.asset.url) end
fetch_and_store_from_url!()
click to toggle source
# File lib/s3_assets/model.rb, line 60 def fetch_and_store_from_url! return unless self.processable? begin self.remote_asset_url = self.absolute_url self.save! rescue CarrierWave::DownloadError => ex if ex.message.include?("Invalid Location URI") # "http://www.hiretale.com/files/resize_logo/13126logo original.png" # is not working without doing this due to redirect URL not encoded properly page = Mechanize.new.head(self.absolute_url) self.remote_asset_url = page.uri.to_s self.save! else raise ex end end end
filename()
click to toggle source
# File lib/s3_assets/model.rb, line 42 def filename return nil if self.asset.url.blank? file_name = self.asset.url.split("?").first file_name = file_name.split("/").last file_name end
image?()
click to toggle source
# File lib/s3_assets/model.rb, line 21 def image? self.content_type.to_s.downcase.include? "image" unless self.content_type.nil? end
original_filename()
click to toggle source
# File lib/s3_assets/model.rb, line 29 def original_filename return nil if filename.blank? URI.unescape(filename) end
processable?()
click to toggle source
# File lib/s3_assets/model.rb, line 34 def processable? self.absolute_url.present? && self.asset.blank? end
processed?()
click to toggle source
# File lib/s3_assets/model.rb, line 38 def processed? !(processable?) end