module Sunrise::Models::Asset
Public Instance Methods
as_json(options = nil)
click to toggle source
Calls superclass method
# File lib/sunrise/models/asset.rb, line 58 def as_json(options = nil) options = { root: 'asset', only: [:id, :guid, :assetable_id, :assetable_type, :user_id, :public_token], methods: [:filename, :url, :thumb_url, :size, :content_type] }.merge(options || {}) super(options) end
content_type()
click to toggle source
# File lib/sunrise/models/asset.rb, line 38 def content_type data_content_type end
cropper_geometry=(value)
click to toggle source
# File lib/sunrise/models/asset.rb, line 76 def cropper_geometry=(value) geometry = (value || '').to_s.split(',') unless geometry.map(&:blank?).any? @cropper_geometry_changed = true @cropper_geometry = geometry end end
cropper_geometry_changed?()
click to toggle source
# File lib/sunrise/models/asset.rb, line 85 def cropper_geometry_changed? @cropper_geometry_changed === true end
filename()
click to toggle source
# File lib/sunrise/models/asset.rb, line 30 def filename data_file_name end
format_created_at()
click to toggle source
# File lib/sunrise/models/asset.rb, line 42 def format_created_at I18n.l(created_at, format: '%d.%m.%Y %H:%M') end
has_dimensions?()
click to toggle source
# File lib/sunrise/models/asset.rb, line 68 def has_dimensions? respond_to?(:width) && respond_to?(:height) end
image?()
click to toggle source
# File lib/sunrise/models/asset.rb, line 72 def image? Sunrise::Utils::IMAGE_TYPES.include?(data_content_type) end
rotate_degrees=(value)
click to toggle source
# File lib/sunrise/models/asset.rb, line 89 def rotate_degrees=(value) if value.present? @rotate_degrees_changed = true @rotate_degrees = value.to_s end end
rotate_degrees_changed?()
click to toggle source
# File lib/sunrise/models/asset.rb, line 96 def rotate_degrees_changed? @rotate_degrees_changed === true end
size()
click to toggle source
# File lib/sunrise/models/asset.rb, line 34 def size data_file_size end
thumb_url()
click to toggle source
# File lib/sunrise/models/asset.rb, line 26 def thumb_url data.thumb.url end
to_xml(options = {}, &block)
click to toggle source
Calls superclass method
# File lib/sunrise/models/asset.rb, line 46 def to_xml(options = {}, &block) options = { only: [:id], root: 'asset' }.merge(options) options[:procs] ||= proc do |options, _record| options[:builder].tag!('filename', filename) options[:builder].tag!('path', url) options[:builder].tag!('size', data_file_size) end super end
uploader_can?(action, request)
click to toggle source
# File lib/sunrise/models/asset.rb, line 123 def uploader_can?(action, request) ability = ::Ability.new(uploader_user(request)) ability.can? action.to_sym, self end
uploader_create(params, request = nil)
click to toggle source
Calls superclass method
# File lib/sunrise/models/asset.rb, line 104 def uploader_create(params, request = nil) if uploader_can?(:create, request) self.user_id = uploader_user(request).try(:id) params[:assetable_type] = 'Noname' if params[:assetable_type].blank? params[:assetable_id] = 0 if params[:assetable_id].blank? super else errors.add(:id, :access_denied) end end
uploader_destroy(params, request = nil)
click to toggle source
Calls superclass method
# File lib/sunrise/models/asset.rb, line 115 def uploader_destroy(params, request = nil) if uploader_can?(:delete, request) super else errors.add(:id, :access_denied) end end
uploader_user(request)
click to toggle source
# File lib/sunrise/models/asset.rb, line 100 def uploader_user(request) request.env['warden'].user end
Protected Instance Methods
reprocess()
click to toggle source
# File lib/sunrise/models/asset.rb, line 130 def reprocess data.cache_stored_file! if cropper_geometry_changed? || rotate_degrees_changed? end