module Alchemy::Picture::CloudinaryUrl
Public Instance Methods
url(options = {})
click to toggle source
# File lib/alchemy/picture/cloudinary_url.rb, line 5 def url(options = {}) @options = options image_file.remote_url(transformation: transformations, secure: !!options[:secure]) end
Private Instance Methods
crop_coordinates()
click to toggle source
# File lib/alchemy/picture/cloudinary_url.rb, line 38 def crop_coordinates x, y = @options[:crop_from].to_s.split('x') size_x, size_y = @options[:crop_size].to_s.split('x') { x: (x.to_i + size_x.to_f / 2).round, y: (y.to_i + size_y.to_f / 2).round } end
crop_transformation()
click to toggle source
# File lib/alchemy/picture/cloudinary_url.rb, line 16 def crop_transformation if @options[:crop] && @options[:crop_from].present? { crop: 'crop', gravity: 'xy_center', x: crop_coordinates[:x], y: crop_coordinates[:y], size: @options[:crop_size] } end end
resize_transformation()
click to toggle source
# File lib/alchemy/picture/cloudinary_url.rb, line 28 def resize_transformation crop_mode = @options[:crop] ? 'fill' : @options[:upsample] ? 'fit' : 'limit' if @options[:size] { crop: crop_mode, size: @options[:size] } end end
transformations()
click to toggle source
# File lib/alchemy/picture/cloudinary_url.rb, line 12 def transformations [crop_transformation, resize_transformation].compact end