Module: ImageSizable
- Extended by:
- ActiveSupport::Concern
- Defined in:
- app/models/concerns/image_sizable.rb
Instance Method Summary collapse
Instance Method Details
#default_sizes ⇒ Object
50 51 52 53 54 55 56 57 |
# File 'app/models/concerns/image_sizable.rb', line 50 def default_sizes @default_sizes ||= %w[ original small medium large ] end |
#generate_urls(blob, *selected_sizes) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'app/models/concerns/image_sizable.rb', line 17 def generate_urls(blob, *selected_sizes) selected_sizes = default_sizes if selected_sizes.empty? selected_sizes.map!(&:to_s) urls = {} if blob.image? selected_sizes.each do |size| if size == 'original' urls[size] = Rails.application.routes.url_helpers.rails_blob_url(blob) else variant = blob.variant(resize_to_limit: size_detail(size)) urls[size] = Rails.application.routes.url_helpers.rails_representation_url(variant) end end else urls['original'] = Rails.application.routes.url_helpers.rails_blob_url(blob) end urls end |
#size_detail(size) ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'app/models/concerns/image_sizable.rb', line 37 def size_detail(size) case size when 'small' [600, 600] when 'medium' [1200, 1200] when 'large' [1920, 1920] else 'original' end end |