Class: PictureTag::Srcsets::Basic

Inherits:
Object
  • Object
show all
Defined in:
lib/jekyll_picture_tag/srcsets/basic.rb

Overview

Basic functionality for a srcset, which also handles file generation. Classes including this module must implement the to_a method, which accomplishes the following:

  • Return an array of srcset entries.

  • Call generate_file for each entry, giving it the desired width in pixels.

Direct Known Subclasses

PixelRatio, Width

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(source_image, input_format) ⇒ Basic



14
15
16
17
18
# File 'lib/jekyll_picture_tag/srcsets/basic.rb', line 14

def initialize(source_image, input_format)
  @source_image = source_image
  @input_format = input_format
  @media = source_image.media_preset
end

Instance Attribute Details

#mediaObject (readonly)

Returns the value of attribute media.



12
13
14
# File 'lib/jekyll_picture_tag/srcsets/basic.rb', line 12

def media
  @media
end

#source_imageObject (readonly)

Returns the value of attribute source_image.



12
13
14
# File 'lib/jekyll_picture_tag/srcsets/basic.rb', line 12

def source_image
  @source_image
end

Instance Method Details

#filesObject

GeneratedImage class



27
28
29
# File 'lib/jekyll_picture_tag/srcsets/basic.rb', line 27

def files
  @files ||= build_files
end

#formatObject



20
21
22
23
24
# File 'lib/jekyll_picture_tag/srcsets/basic.rb', line 20

def format
  # Input format might be 'original', which is handled by the generated
  # image.
  @format ||= files.first.format
end

#height_attributeObject



59
60
61
# File 'lib/jekyll_picture_tag/srcsets/basic.rb', line 59

def height_attribute
  files.first.source_height.to_s
end

#media_attributeObject

Generates an HTML attribute



51
52
53
# File 'lib/jekyll_picture_tag/srcsets/basic.rb', line 51

def media_attribute
  "(#{PictureTag.media_presets[@media]})"
end

#mime_typeObject

Allows us to add a type attribute to whichever element contains this srcset.



41
42
43
# File 'lib/jekyll_picture_tag/srcsets/basic.rb', line 41

def mime_type
  MIME::Types.type_for(format).first.to_s
end

#sizesObject

Some srcsets have them, for those that don’t return nil.



46
47
48
# File 'lib/jekyll_picture_tag/srcsets/basic.rb', line 46

def sizes
  nil
end

#to_aObject



31
32
33
# File 'lib/jekyll_picture_tag/srcsets/basic.rb', line 31

def to_a
  files.collect { |f| build_srcset_entry(f) }
end

#to_sObject



35
36
37
# File 'lib/jekyll_picture_tag/srcsets/basic.rb', line 35

def to_s
  to_a.join(', ')
end

#width_attributeObject



55
56
57
# File 'lib/jekyll_picture_tag/srcsets/basic.rb', line 55

def width_attribute
  files.first.source_width.to_s
end