Module: DynamicImage::Helper

Defined in:
lib/dynamic_image/helper.rb

Overview

DynamicImage Helper

Provides helper methods for rendering and linking to images.

Instance Method Summary collapse

Instance Method Details

#download_dynamic_image_path(record_or_array, options = {}) ⇒ Object

Returns a path to the original uploaded file for download, without any processing applied. Sizing options are not supported.


76
77
78
# File 'lib/dynamic_image/helper.rb', line 76

def download_dynamic_image_path(record_or_array, options = {})
  dynamic_image_path(record_or_array, { action: :download }.merge(options))
end

#download_dynamic_image_url(record_or_array, options = {}) ⇒ Object

Returns a URL to the original uploaded file for download, without any processing applied. Sizing options are not supported.


83
84
85
# File 'lib/dynamic_image/helper.rb', line 83

def download_dynamic_image_url(record_or_array, options = {})
  dynamic_image_url(record_or_array, { action: :download }.merge(options))
end

#dynamic_image_path(record_or_array, options = {}) ⇒ Object

Returns the path for a DynamicImage::Model record. Takes the same options as dynamic_image_url


10
11
12
# File 'lib/dynamic_image/helper.rb', line 10

def dynamic_image_path(record_or_array, options = {})
  dynamic_image_url(record_or_array, { routing_type: :path }.merge(options))
end

#dynamic_image_tag(record_or_array, options = {}) ⇒ Object

Returns an HTML image tag for the record. If no size is given, it will render at the original size.

Options

  • :alt: If no alt text is given, it will default to the filename of the uploaded image.

See dynamic_image_url for info on how to size and cropping. Options supported by polymorphic_url will be passed to the router. Any other options will be added as HTML attributes.

Examples

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" />

32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/dynamic_image/helper.rb', line 32

def dynamic_image_tag(record_or_array, options = {})
  record = extract_dynamic_image_record(record_or_array)
  options = { alt: filename_to_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)
end

#dynamic_image_url(record_or_array, options = {}) ⇒ Object

Returns the URL for a DynamicImage::Model record.

Options

  • :size - Desired image size, supplied as “widthxheight”. The image will be scaled to fit. A partial size like “100x” or “x100” can be given, if you want a fixed width or height.

  • :crop - If true, the image will be cropped to the given size.

  • :upscale - By default, DynamicImage only scale images down, never up. Pass upscale: true to force upscaling.

Any options supported by polymorphic_url are also accepted.

Examples

image = Image.find(params[:id])
dynamic_image_url(image)
# => "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"

68
69
70
71
# File 'lib/dynamic_image/helper.rb', line 68

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

#original_dynamic_image_path(record_or_array, options = {}) ⇒ Object

Returns a path to the original uploaded file, without any processing applied. Sizing options are not supported.


89
90
91
# File 'lib/dynamic_image/helper.rb', line 89

def original_dynamic_image_path(record_or_array, options = {})
  dynamic_image_path(record_or_array, { action: :original }.merge(options))
end

#original_dynamic_image_url(record_or_array, options = {}) ⇒ Object

Returns a URL to the original uploaded file, without any processing applied. Sizing options are not supported.


95
96
97
# File 'lib/dynamic_image/helper.rb', line 95

def original_dynamic_image_url(record_or_array, options = {})
  dynamic_image_url(record_or_array, { action: :original }.merge(options))
end

#uncropped_dynamic_image_path(record_or_array, options = {}) ⇒ Object

Same as dynamic_image_path, but points to an image with any pre-cropping disabled.


101
102
103
# File 'lib/dynamic_image/helper.rb', line 101

def uncropped_dynamic_image_path(record_or_array, options = {})
  dynamic_image_path(record_or_array, { action: :uncropped }.merge(options))
end

#uncropped_dynamic_image_tag(record_or_array, options = {}) ⇒ Object

Same as dynamic_image_tag, but renders an image with any pre-cropping disabled.


107
108
109
# File 'lib/dynamic_image/helper.rb', line 107

def uncropped_dynamic_image_tag(record_or_array, options = {})
  dynamic_image_tag(record_or_array, { action: :uncropped }.merge(options))
end

#uncropped_dynamic_image_url(record_or_array, options = {}) ⇒ Object

Same as dynamic_image_url, but points to an image with any pre-cropping disabled.


113
114
115
# File 'lib/dynamic_image/helper.rb', line 113

def uncropped_dynamic_image_url(record_or_array, options = {})
  dynamic_image_url(record_or_array, { action: :uncropped }.merge(options))
end