Module: Jekyll::Favicon::StaticFile::Convertible

Includes:
Configuration::Defaults
Included in:
Jekyll::Favicon::StaticGraphicFile
Defined in:
lib/jekyll/favicon/static_file/convertible.rb

Overview

Create static file based on a source file

Instance Method Summary collapse

Methods included from Configuration::Defaults

base_name_to_parts, camelcase_to_snakecase, define_defaults, included, load_defaults, load_file

Instance Method Details

#convertObject



17
18
19
20
21
22
# File 'lib/jekyll/favicon/static_file/convertible.rb', line 17

def convert
  convert_defaults = convertible_defaults.dig File.extname(path), @extname
  convert_normalized = convert_normalize convert_spec
  convert_consolidated = Utils.merge convert_defaults, convert_normalized
  patch convert_patch(convert_consolidated || {})
end

#convert_odd_source?Boolean

Returns:

  • (Boolean)


33
34
35
36
# File 'lib/jekyll/favicon/static_file/convertible.rb', line 33

def convert_odd_source?
  img = MiniMagick::Image.open path
  Utils.odd? img.dimensions
end

#convert_size(size, separator = "x") ⇒ Object



38
39
40
41
42
# File 'lib/jekyll/favicon/static_file/convertible.rb', line 38

def convert_size(size, separator = "x")
  return size unless convert_odd_source? || Utils.odd?(size)
  min_dimension = size.split(separator).min
  [min_dimension, min_dimension].join(separator)
end

#convertible?Boolean

Returns:

  • (Boolean)


13
14
15
# File 'lib/jekyll/favicon/static_file/convertible.rb', line 13

def convertible?
  convert.any? || convert_allow_empty?
end

#convertible_patch(configuration) ⇒ Object



24
25
26
27
28
29
30
31
# File 'lib/jekyll/favicon/static_file/convertible.rb', line 24

def convertible_patch(configuration)
  Utils.patch configuration do |value|
    case value
    when :sizes then sizes.join " "
    else value
    end
  end
end

#modified?Boolean

Jekyll::StaticFile method asks if dest mtime is older than source mtime after original modified?

Returns:

  • (Boolean)


54
55
56
# File 'lib/jekyll/favicon/static_file/convertible.rb', line 54

def modified?
  super || self.class.mtimes.fetch(href, -1) < mtime
end

#sizesObject



44
45
46
47
48
49
50
# File 'lib/jekyll/favicon/static_file/convertible.rb', line 44

def sizes
  if (match = Utils.name_to_size(name)) then [match[1]]
  elsif (define = Utils.define_to_size(convert_spec["define"])) then define
  elsif (resize = convert_spec["resize"]) then [resize]
  elsif (size = convert_spec["size"]) then [size]
  end
end

#write(dest) ⇒ Object

Jekyll::StaticFile method adds dest mtime to list after original write



60
61
62
# File 'lib/jekyll/favicon/static_file/convertible.rb', line 60

def write(dest)
  super(dest) && self.class.mtimes[href] = mtime
end