Module: AbAdmin::Models::Asset
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary collapse
- #as_json(options = nil) ⇒ Object
- #crop!(geometry) ⇒ Object
- #cropper_geometry=(value) ⇒ Object
- #cropper_geometry_changed? ⇒ Boolean
- #format_created_at ⇒ Object
- #full_url(*args) ⇒ Object
- #has_dimensions? ⇒ Boolean
- #human_name ⇒ Object
- #image? ⇒ Boolean
- #main! ⇒ Object
- #refresh_assetable ⇒ Object
- #rename ⇒ Object
- #rename! ⇒ Object
- #rotate! ⇒ Object
- #rotate_degrees=(value) ⇒ Object
- #rotate_degrees_changed? ⇒ Boolean
- #thumb_url ⇒ Object
Instance Method Details
#as_json(options = nil) ⇒ Object
53 54 55 56 57 58 59 60 61 62 |
# File 'lib/ab_admin/models/asset.rb', line 53 def as_json( = nil) = { only: [:id, :guid, :assetable_id, :assetable_type, :user_id, :data_file_size, :data_content_type, :is_main, :original_name], root: 'asset', methods: [:filename, :url, :thumb_url, :width, :height] }.merge( || {}) super end |
#crop!(geometry) ⇒ Object
87 88 89 90 91 92 93 |
# File 'lib/ab_admin/models/asset.rb', line 87 def crop!(geometry) rename! self.cropper_geometry = geometry save! refresh_assetable self end |
#cropper_geometry=(value) ⇒ Object
121 122 123 124 125 126 127 128 |
# File 'lib/ab_admin/models/asset.rb', line 121 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
130 131 132 |
# File 'lib/ab_admin/models/asset.rb', line 130 def cropper_geometry_changed? @cropper_geometry_changed === true end |
#format_created_at ⇒ Object
45 46 47 |
# File 'lib/ab_admin/models/asset.rb', line 45 def format_created_at I18n.l(created_at, format: '%d.%m.%Y %H:%M') end |
#full_url(*args) ⇒ Object
116 117 118 119 |
# File 'lib/ab_admin/models/asset.rb', line 116 def full_url(*args) host = Rails.application.config.action_mailer.[:host] || 'www.example.com' "//#{host}#{data.url(*args)}" end |
#has_dimensions? ⇒ Boolean
64 65 66 |
# File 'lib/ab_admin/models/asset.rb', line 64 def has_dimensions? respond_to?(:width) && respond_to?(:height) end |
#human_name ⇒ Object
49 50 51 |
# File 'lib/ab_admin/models/asset.rb', line 49 def human_name original_name.presence || data_file_name end |
#image? ⇒ Boolean
68 69 70 |
# File 'lib/ab_admin/models/asset.rb', line 68 def image? AbAdmin.image_types.include?(self.data_content_type) end |
#main! ⇒ Object
72 73 74 75 76 77 |
# File 'lib/ab_admin/models/asset.rb', line 72 def main! self.class.update_all('is_main=0', ['assetable_type=? AND assetable_id=? AND type=?', assetable_type, assetable_id, type]) update_column(:is_main, true) refresh_assetable self end |
#refresh_assetable ⇒ Object
109 110 111 112 113 114 |
# File 'lib/ab_admin/models/asset.rb', line 109 def refresh_assetable return unless assetable.try(:persisted?) assetable.touch assetable.tire.update_index if assetable.respond_to?(:tire) true end |
#rename ⇒ Object
100 101 102 103 104 105 106 107 |
# File 'lib/ab_admin/models/asset.rb', line 100 def rename file = data.file path = data.path ext = File.extname(path) new_path = File.join(File.dirname(path), "#{File.basename(path).chomp(ext)}_#{rand(99)}#{ext}") new_file = ::CarrierWave::SanitizedFile.new file.move_to(new_path) data.cache!(new_file) end |
#rename! ⇒ Object
95 96 97 98 |
# File 'lib/ab_admin/models/asset.rb', line 95 def rename! rename save! end |
#rotate! ⇒ Object
79 80 81 82 83 84 85 |
# File 'lib/ab_admin/models/asset.rb', line 79 def rotate! rename! self.rotate_degrees = 90 save! refresh_assetable self end |
#rotate_degrees=(value) ⇒ Object
134 135 136 137 138 139 |
# File 'lib/ab_admin/models/asset.rb', line 134 def rotate_degrees=(value) unless value.blank? @rotate_degrees_changed = true @rotate_degrees = value.to_s end end |
#rotate_degrees_changed? ⇒ Boolean
141 142 143 |
# File 'lib/ab_admin/models/asset.rb', line 141 def rotate_degrees_changed? @rotate_degrees_changed === true end |
#thumb_url ⇒ Object
41 42 43 |
# File 'lib/ab_admin/models/asset.rb', line 41 def thumb_url data.url(self.thumb_size) if image? end |