Revert "Move generator code to it's own class"

This reverts commit dbe2f9e845.

Reason: dbe2f9e845 (r1585347137)
This commit is contained in:
Fawaz Farid 2024-04-30 21:52:45 +03:00
parent d7b8ebf5bf
commit 11bb58a4e5
2 changed files with 19 additions and 40 deletions

View File

@ -1,35 +0,0 @@
# frozen_string_literal: true
module IconGenerator
extend self
def generate_favicons(source_path, output_dest, sizes)
favicons = generate_icons(source_path, output_dest, sizes, 'favicon')
convert.run(input: favicons, output: Rails.public_path.join('favicon.ico'))
end
def generate_app_icons(source_path, output_dest, sizes, prefix)
generate_icons(source_path, output_dest, sizes, prefix)
end
private
def generate_icons(source_path, output_dest, sizes, prefix)
icon_paths = []
sizes.each do |size|
output_path = output_dest.join("#{prefix}-#{size}x#{size}.png")
icon_paths << output_path
rsvg_convert.run(size: size, input: source_path, output: output_path)
end
icon_paths
end
def rsvg_convert
@rsvg_convert ||= Terrapin::CommandLine.new('rsvg-convert', '-w :size -h :size --keep-aspect-ratio :input -o :output')
end
def convert
@convert ||= Terrapin::CommandLine.new('convert', ':input :output', environment: { 'MAGICK_CONFIGURE_PATH' => nil })
end
end

View File

@ -41,16 +41,30 @@ namespace :branding do
app_icon_source = Rails.root.join('app', 'javascript', 'images', 'app-icon.svg')
output_dest = Rails.root.join('app', 'javascript', 'icons')
rsvg_convert = Terrapin::CommandLine.new('rsvg-convert', '-w :size -h :size --keep-aspect-ratio :input -o :output')
convert = Terrapin::CommandLine.new('convert', ':input :output', environment: { 'MAGICK_CONFIGURE_PATH' => nil })
favicon_sizes = [16, 32, 48]
apple_icon_sizes = [57, 60, 72, 76, 114, 120, 144, 152, 167, 180, 1024]
android_icon_sizes = [36, 48, 72, 96, 144, 192, 256, 384, 512]
# Generate favicons
IconGenerator.generate_favicons(favicon_source, output_dest, favicon_sizes)
favicons = []
# Generate app icons
IconGenerator.generate_app_icons(app_icon_source, output_dest, apple_icon_sizes, 'apple-touch-icon')
IconGenerator.generate_app_icons(app_icon_source, output_dest, android_icon_sizes, 'android-chrome')
favicon_sizes.each do |size|
output_path = output_dest.join("favicon-#{size}x#{size}.png")
favicons << output_path
rsvg_convert.run(size: size, input: favicon_source, output: output_path)
end
convert.run(input: favicons, output: Rails.public_path.join('favicon.ico'))
apple_icon_sizes.each do |size|
rsvg_convert.run(size: size, input: app_icon_source, output: output_dest.join("apple-touch-icon-#{size}x#{size}.png"))
end
android_icon_sizes.each do |size|
rsvg_convert.run(size: size, input: app_icon_source, output: output_dest.join("android-chrome-#{size}x#{size}.png"))
end
end
desc 'Generate badge icon from SVG source files'