Module: Sunrise::Models::Asset
- Extended by:
- ActiveSupport::Concern
- Includes:
- Uploader::Asset
- Included in:
- Asset
- Defined in:
- lib/sunrise/models/asset.rb
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary collapse
- #as_json(options = nil) ⇒ Object
- #content_type ⇒ Object
- #cropper_geometry=(value) ⇒ Object
- #cropper_geometry_changed? ⇒ Boolean
- #filename ⇒ Object
- #format_created_at ⇒ Object
- #has_dimensions? ⇒ Boolean
- #image? ⇒ Boolean
- #rotate_degrees=(value) ⇒ Object
- #rotate_degrees_changed? ⇒ Boolean
- #size ⇒ Object
- #thumb_url ⇒ Object
- #to_xml(options = {}, &block) ⇒ Object
- #uploader_can?(action, request) ⇒ Boolean
- #uploader_create(params, request = nil) ⇒ Object
- #uploader_destroy(params, request = nil) ⇒ Object
- #uploader_user(request) ⇒ Object
Instance Method Details
#as_json(options = nil) ⇒ Object
59 60 61 62 63 64 65 66 67 |
# File 'lib/sunrise/models/asset.rb', line 59 def as_json( = nil) = { :only => [:id, :guid, :assetable_id, :assetable_type, :user_id], :root => 'asset', :methods => [:filename, :url, :thumb_url, :size, :content_type] }.merge( || {}) super() end |
#content_type ⇒ Object
39 40 41 |
# File 'lib/sunrise/models/asset.rb', line 39 def content_type data_content_type end |
#cropper_geometry=(value) ⇒ Object
77 78 79 80 81 82 83 84 |
# File 'lib/sunrise/models/asset.rb', line 77 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? ⇒ Boolean
86 87 88 |
# File 'lib/sunrise/models/asset.rb', line 86 def cropper_geometry_changed? @cropper_geometry_changed === true end |
#filename ⇒ Object
31 32 33 |
# File 'lib/sunrise/models/asset.rb', line 31 def filename data_file_name end |
#format_created_at ⇒ Object
43 44 45 |
# File 'lib/sunrise/models/asset.rb', line 43 def format_created_at I18n.l(created_at, :format => "%d.%m.%Y %H:%M") end |
#has_dimensions? ⇒ Boolean
69 70 71 |
# File 'lib/sunrise/models/asset.rb', line 69 def has_dimensions? respond_to?(:width) && respond_to?(:height) end |
#image? ⇒ Boolean
73 74 75 |
# File 'lib/sunrise/models/asset.rb', line 73 def image? Sunrise::Utils::IMAGE_TYPES.include?(data_content_type) end |
#rotate_degrees=(value) ⇒ Object
90 91 92 93 94 95 |
# File 'lib/sunrise/models/asset.rb', line 90 def rotate_degrees=(value) unless value.blank? @rotate_degrees_changed = true @rotate_degrees = value.to_s end end |
#rotate_degrees_changed? ⇒ Boolean
97 98 99 |
# File 'lib/sunrise/models/asset.rb', line 97 def rotate_degrees_changed? @rotate_degrees_changed === true end |
#size ⇒ Object
35 36 37 |
# File 'lib/sunrise/models/asset.rb', line 35 def size data_file_size end |
#thumb_url ⇒ Object
27 28 29 |
# File 'lib/sunrise/models/asset.rb', line 27 def thumb_url data.thumb.url end |
#to_xml(options = {}, &block) ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/sunrise/models/asset.rb', line 47 def to_xml( = {}, &block) = {:only => [:id], :root => 'asset'}.merge() [:procs] ||= Proc.new do |, record| [:builder].tag!('filename', filename) [:builder].tag!('path', url) [:builder].tag!('size', data_file_size) end super end |
#uploader_can?(action, request) ⇒ Boolean
124 125 126 127 |
# File 'lib/sunrise/models/asset.rb', line 124 def uploader_can?(action, request) ability = ::Ability.new(uploader_user(request)) ability.can? action.to_sym, self end |
#uploader_create(params, request = nil) ⇒ Object
105 106 107 108 109 110 111 112 113 114 |
# File 'lib/sunrise/models/asset.rb', line 105 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) ⇒ Object
116 117 118 119 120 121 122 |
# File 'lib/sunrise/models/asset.rb', line 116 def uploader_destroy(params, request = nil) if uploader_can?(:delete, request) super else errors.add(:id, :access_denied) end end |
#uploader_user(request) ⇒ Object
101 102 103 |
# File 'lib/sunrise/models/asset.rb', line 101 def uploader_user(request) request.env['warden'].user end |