Module: Picturesque::ApplicationHelper

Defined in:
app/helpers/picturesque/application_helper.rb

Instance Method Summary collapse

Instance Method Details

#picturesque_image_tag(image, size:, slug:, alt:, scales: (1..3)) ⇒ Object


4
5
6
7
8
9
10
11
12
13
14
# File 'app/helpers/picturesque/application_helper.rb', line 4

def picturesque_image_tag(image, size:, slug:, alt:, scales: (1..3))
  matches = size.match(/(?<width>\d+)\D(?<height>\d+)/)
  width = Integer(matches[:width])
  height = Integer(matches[:height])

  image_tag(
    picturesque_src(image, width: width, height: height, slug: slug),
    srcset: picturesque_srcset(image, scales: scales, width: width, height: height, slug: slug),
    size: "#{width}×#{height}", alt: alt
  )
end

#picturesque_src(image, width:, height:, slug:) ⇒ Object


26
27
28
# File 'app/helpers/picturesque/application_helper.rb', line 26

def picturesque_src(image, width:, height:, slug:)
  picturesque.image_url(image, size: "#{width}×#{height}", slug: slug)
end

#picturesque_srcs(image, scales:, width:, height:, slug:) ⇒ Object


20
21
22
23
24
# File 'app/helpers/picturesque/application_helper.rb', line 20

def picturesque_srcs(image, scales:, width:, height:, slug:)
  scales.map do |scale|
    "#{picturesque_src(image, width: width * scale, height: height * scale, slug: slug)} #{scale}x"
  end
end

#picturesque_srcset(image, scales:, width:, height:, slug:) ⇒ Object


16
17
18
# File 'app/helpers/picturesque/application_helper.rb', line 16

def picturesque_srcset(image, scales:, width:, height:, slug:)
  picturesque_srcs(image, scales: scales, width: width, height: height, slug: slug).join(',')
end