Class: Imgix::Rails::PictureTag

Inherits:
Tag
  • Object
show all
Includes:
ActionView::Context
Defined in:
lib/imgix/rails/picture_tag.rb

Instance Method Summary collapse

Methods included from UrlHelper

#ix_image_url

Constructor Details

#initialize(path, source: nil, tag_options: {}, img_tag_options: {}, url_params: {}, breakpoints: {}, srcset_options: {}) ⇒ PictureTag

Returns a new instance of PictureTag.



8
9
10
11
12
13
14
15
16
# File 'lib/imgix/rails/picture_tag.rb', line 8

def initialize(path, source: nil, tag_options: {}, img_tag_options: {}, url_params: {}, breakpoints: {}, srcset_options: {})
  @path = path
  @source = source
  @tag_options = tag_options
  @img_tag_options = img_tag_options
  @url_params = url_params
  @breakpoints = breakpoints
  @srcset_options = srcset_options
end

Instance Method Details

#renderObject



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/imgix/rails/picture_tag.rb', line 18

def render
  (:picture, @tag_options) do
    @breakpoints.each do |media, opts|
      validate_opts(opts)

      source_tag_opts = opts[:tag_options] || {}
      source_tag_url_params = opts[:url_params] || {}
      srcset_options = opts[:srcset_options] || {}
      source_tag_opts[:media] ||= media
      source_tag_opts[:srcset] ||= srcset(url_params: @url_params.clone.merge(source_tag_url_params), srcset_options: srcset_options)

      concat((:source, nil, source_tag_opts))
    end

    concat Imgix::Rails::ImageTag.new(@path, source: @source, tag_options: @img_tag_options, url_params: @url_params, srcset_options: @srcset_options).render
  end
end