Module: AbAdmin::Models::Asset
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary collapse
- #as_json(options = nil) ⇒ Object
- #base_filename ⇒ Object
- #base_filename=(value) ⇒ Object
-
#build_filename(base_filename, record = nil) ⇒ Object
allow to build custom human file name.
- #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!(name = nil) ⇒ Object
- #rotate! ⇒ Object
- #rotate_degrees=(value) ⇒ Object
- #rotate_degrees_changed? ⇒ Boolean
- #store_model_filename(record) ⇒ Object
- #thumb_url ⇒ Object
- #url_on_fly(version) ⇒ Object
Instance Method Details
#as_json(options = nil) ⇒ Object
62 63 64 65 66 67 68 69 70 71 |
# File 'lib/ab_admin/models/asset.rb', line 62 def as_json( = nil) = { only: [:id, :guid, :assetable_id, :assetable_type, :user_id, :data_file_size, :data_content_type, :is_main, :original_name, :cached_alt, :cached_title], root: 'asset', methods: [:filename, :url, :thumb_url, :width, :height] }.merge( || {}) super end |
#base_filename ⇒ Object
81 82 83 84 |
# File 'lib/ab_admin/models/asset.rb', line 81 def base_filename base = File.basename(data_file_name, '.*') base == data_secure_token ? File.basename(original_name, '.*') : base end |
#base_filename=(value) ⇒ Object
86 87 88 89 90 |
# File 'lib/ab_admin/models/asset.rb', line 86 def base_filename=(value) return false if value.blank? || File.basename(data_file_name, '.*') == value self.original_name = value + File.extname(data_file_name) rename!(value) end |
#build_filename(base_filename, record = nil) ⇒ Object
allow to build custom human file name
46 47 48 |
# File 'lib/ab_admin/models/asset.rb', line 46 def build_filename(base_filename, record=nil) nil end |
#crop!(geometry) ⇒ Object
107 108 109 110 111 112 113 |
# File 'lib/ab_admin/models/asset.rb', line 107 def crop!(geometry) rename! self.cropper_geometry = geometry save! refresh_assetable self end |
#cropper_geometry=(value) ⇒ Object
138 139 140 141 142 143 144 145 |
# File 'lib/ab_admin/models/asset.rb', line 138 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
147 148 149 |
# File 'lib/ab_admin/models/asset.rb', line 147 def cropper_geometry_changed? @cropper_geometry_changed === true end |
#format_created_at ⇒ Object
54 55 56 |
# File 'lib/ab_admin/models/asset.rb', line 54 def format_created_at I18n.l(created_at, format: '%d.%m.%Y %H:%M') end |
#full_url(*args) ⇒ Object
128 129 130 |
# File 'lib/ab_admin/models/asset.rb', line 128 def full_url(*args) AbAdmin.full_url data.url(*args) end |
#has_dimensions? ⇒ Boolean
73 74 75 |
# File 'lib/ab_admin/models/asset.rb', line 73 def has_dimensions? respond_to?(:width) && respond_to?(:height) end |
#human_name ⇒ Object
58 59 60 |
# File 'lib/ab_admin/models/asset.rb', line 58 def human_name original_name.presence || data_file_name end |
#image? ⇒ Boolean
77 78 79 |
# File 'lib/ab_admin/models/asset.rb', line 77 def image? AbAdmin.image_types.include?(self.data_content_type) end |
#main! ⇒ Object
92 93 94 95 96 97 |
# File 'lib/ab_admin/models/asset.rb', line 92 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
121 122 123 124 125 126 |
# File 'lib/ab_admin/models/asset.rb', line 121 def refresh_assetable return unless assetable.try(:persisted?) assetable.touch assetable.tire.update_index if assetable.respond_to?(:tire) true end |
#rename!(name = nil) ⇒ Object
115 116 117 118 119 |
# File 'lib/ab_admin/models/asset.rb', line 115 def rename!(name=nil) normalized_name = name ? data.normalize_filename(name) : rand(9999) return false if normalized_name.blank? data.rename_via_move "#{normalized_name}#{File.extname(data_file_name)}" end |
#rotate! ⇒ Object
99 100 101 102 103 104 105 |
# File 'lib/ab_admin/models/asset.rb', line 99 def rotate! rename! self.rotate_degrees = 90 save! refresh_assetable self end |
#rotate_degrees=(value) ⇒ Object
151 152 153 154 155 156 |
# File 'lib/ab_admin/models/asset.rb', line 151 def rotate_degrees=(value) unless value.blank? @rotate_degrees_changed = true @rotate_degrees = value.to_s end end |
#rotate_degrees_changed? ⇒ Boolean
158 159 160 |
# File 'lib/ab_admin/models/asset.rb', line 158 def rotate_degrees_changed? @rotate_degrees_changed === true end |
#store_model_filename(record) ⇒ Object
41 42 43 |
# File 'lib/ab_admin/models/asset.rb', line 41 def store_model_filename(record) data.store_model_filename(record) and save!(validate: false) end |
#thumb_url ⇒ Object
50 51 52 |
# File 'lib/ab_admin/models/asset.rb', line 50 def thumb_url data.url(self.thumb_size) if image? end |
#url_on_fly(version) ⇒ Object
132 133 134 135 136 |
# File 'lib/ab_admin/models/asset.rb', line 132 def url_on_fly(version) file_url = url(version) data.recreate_versions!(version) unless Rails.root.join("public/#{file_url}").exist? file_url end |