lib/dynamic_image/helper.rb in dynamic_image-2.0.0 vs lib/dynamic_image/helper.rb in dynamic_image-2.0.1

- old
+ new

@@ -5,11 +5,11 @@ # # Provides helper methods for rendering and linking to images. module Helper # Returns the path for a DynamicImage::Model record. # Takes the same options as +dynamic_image_url+ - def dynamic_image_path(record_or_array, options={}) + def dynamic_image_path(record_or_array, options = {}) dynamic_image_url(record_or_array, { routing_type: :path }.merge(options)) end # Returns an HTML image tag for the record. If no size is given, it will # render at the original size. @@ -27,28 +27,22 @@ # image = Image.find(params[:id]) # dynamic_image_tag(image) # # => <img alt="My file" height="200" src="..." width="320" /> # dynamic_image_tag(image, size: "100x100", alt="Avatar") # # => <img alt="Avatar" height="62" src="..." width="100" /> - def dynamic_image_tag(record_or_array, options={}) + def dynamic_image_tag(record_or_array, options = {}) record = extract_dynamic_image_record(record_or_array) - options = { - alt: image_alt(record.filename) - }.merge(options) + options = { alt: image_alt(record.filename) }.merge(options) size = fit_size!(record_or_array, options) url_options = options.extract!(*allowed_dynamic_image_url_options) html_options = { size: size }.merge(options) - image_tag( - dynamic_image_path_with_size( - record_or_array, - size, - url_options - ), - html_options - ) + image_tag(dynamic_image_path_with_size(record_or_array, + size, + url_options), + html_options) end # Returns the URL for a DynamicImage::Model record. # # ==== Options @@ -69,42 +63,42 @@ # # => "http://example.com/images/96...d1/300x187/1-2014062020...00.jpg" # dynamic_image_url(image, size: '100x100') # # => "http://example.com/images/72...c2/100x62/1-2014062020...00.jpg" # dynamic_image_url(image, size: '100x100', crop: true) # # => "http://example.com/images/a4...6b/100x100/1-2014062020...00.jpg" - def dynamic_image_url(record_or_array, options={}) + def dynamic_image_url(record_or_array, options = {}) size = fit_size!(record_or_array, options) dynamic_image_url_with_size(record_or_array, size, options) end # Returns a path to the original uploaded file, without any processing # applied. Sizing options are not supported. - def original_dynamic_image_path(record_or_array, options={}) + def original_dynamic_image_path(record_or_array, options = {}) dynamic_image_path(record_or_array, { action: :original }.merge(options)) end # Returns a URL to the original uploaded file, without any processing # applied. Sizing options are not supported. - def original_dynamic_image_url(record_or_array, options={}) + def original_dynamic_image_url(record_or_array, options = {}) dynamic_image_url(record_or_array, { action: :original }.merge(options)) end # Same as +dynamic_image_path+, but points to an image with any # pre-cropping disabled. - def uncropped_dynamic_image_path(record_or_array, options={}) + def uncropped_dynamic_image_path(record_or_array, options = {}) dynamic_image_path(record_or_array, { action: :uncropped }.merge(options)) end # Same as +dynamic_image_tag+, but renders an image with any # pre-cropping disabled. - def uncropped_dynamic_image_tag(record_or_array, options={}) + def uncropped_dynamic_image_tag(record_or_array, options = {}) dynamic_image_tag(record_or_array, { action: :uncropped }.merge(options)) end # Same as +dynamic_image_url+, but points to an image with any # pre-cropping disabled. - def uncropped_dynamic_image_url(record_or_array, options={}) + def uncropped_dynamic_image_url(record_or_array, options = {}) dynamic_image_url(record_or_array, { action: :uncropped }.merge(options)) end private @@ -118,28 +112,31 @@ def default_format_for_image(record) Mime::Type.lookup(record.safe_content_type).to_sym end - def dynamic_image_digest(record, action, size=nil) + def dynamic_image_digest(record, action, size = nil) key = [action || 'show', record.id, size].compact.join('-') DynamicImage.digest_verifier.generate(key) end - def dynamic_image_path_with_size(record_or_array, size=nil, options={}) - dynamic_image_url_with_size(record_or_array, size, { routing_type: :path }.merge(options)) + def dynamic_image_path_with_size(record_or_array, size = nil, options = {}) + dynamic_image_url_with_size(record_or_array, + size, + { routing_type: :path }.merge(options)) end - def dynamic_image_url_with_size(record_or_array, size=nil, options={}) + def dynamic_image_url_with_size(record_or_array, size = nil, options = {}) record = extract_dynamic_image_record(record_or_array) options = { routing_type: :url, action: nil, format: default_format_for_image(record), size: size }.merge(options) - options[:digest] = dynamic_image_digest(record, options[:action], options[:size]) + options[:digest] = + dynamic_image_digest(record, options[:action], options[:size]) polymorphic_url(record_or_array, options) end def extract_dynamic_image_record(record_or_array) case record_or_array @@ -152,19 +149,19 @@ def fit_size!(record_or_array, options) record = extract_dynamic_image_record(record_or_array) action = options[:action].try(:to_s) size_opts = options.extract!(:size, :crop, :upscale) - if size_opts[:size] - DynamicImage::ImageSizing.new( - record, - uncropped: (action == "uncropped") - ).fit(size_opts[:size], size_opts).floor.to_s - elsif action == "original" - record.real_size.floor.to_s + image_sizing(record, size_opts, (action == 'uncropped')) else - record.size.floor.to_s + (action == 'original' ? record.real_size : record.size).floor.to_s end + end + + def image_sizing(record, size_opts, uncropped) + ImageSizing + .new(record, uncropped: uncropped) + .fit(size_opts[:size], size_opts).floor.to_s end end end