Class: JekyllFaviconGenerator::Icon
- Inherits:
-
Jekyll::StaticFile
- Object
- Jekyll::StaticFile
- JekyllFaviconGenerator::Icon
show all
- Includes:
- Utilities
- Defined in:
- lib/jekyll-favicon-generator/icon.rb
Constant Summary
Constants included
from Utilities
Utilities::LOGGER_PREFIX
Instance Method Summary
collapse
Methods included from Utilities
#abort_with, #config, #debug, #error, #file_exists?, #find_source, #info, #source, #warn
Constructor Details
#initialize(site, icon) ⇒ Icon
Returns a new instance of Icon.
15
16
17
18
19
20
|
# File 'lib/jekyll-favicon-generator/icon.rb', line 15
def initialize(site, icon)
@site = site
@icon = icon
super site, site.source, dest_dir, @icon["file"]
end
|
Instance Method Details
#mime ⇒ Object
60
61
62
|
# File 'lib/jekyll-favicon-generator/icon.rb', line 60
def mime
@mime ||= MIMES[type]
end
|
#ref ⇒ Object
68
69
70
|
# File 'lib/jekyll-favicon-generator/icon.rb', line 68
def ref
@ref ||= REFS[@icon["ref"]&.downcase]
end
|
#render_tag(url) ⇒ Object
42
43
44
45
46
47
48
49
50
51
52
53
54
|
# File 'lib/jekyll-favicon-generator/icon.rb', line 42
def render_tag(url)
return if ref.nil? || ref == :manifest
attrs = attributes(url)
unless tag_name && attrs
warn "Unknown ref type for #{File.basename @icon["file"]}, skipping"
return
end
attrs = attrs.map { |k, v| "#{k}=#{v.to_s.encode(:xml => :attr)}" }
"<#{tag_name} #{attrs.join(" ")}>"
end
|
#size ⇒ Object
64
65
66
|
# File 'lib/jekyll-favicon-generator/icon.rb', line 64
def size
@size ||= Size.new @icon["size"]
end
|
#type ⇒ Object
56
57
58
|
# File 'lib/jekyll-favicon-generator/icon.rb', line 56
def type
@type ||= TYPES[File.extname(name).downcase] || :unknown
end
|
#write(dest) ⇒ Object
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
# File 'lib/jekyll-favicon-generator/icon.rb', line 22
def write(dest)
dest = destination dest
src = @site.in_source_dir source
FileUtils.mkdir_p(File.dirname(dest))
debug "Writing #{File.basename dest}"
case type
when :png
Vips.img_to_png src, dest, size.to_i
when :ico
Ico.img_to_ico src, dest, size.to_a
when :svg
Svg.optimize src, dest
else
warn "Unknown format for #{File.basename dest}, skipping"
false
end
end
|