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