From ef53bf0495ce3b4fa3d585ae89fba1913b7e58fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Eduardo=20Rodrigues=20Di=C3=B3genes?= Date: Mon, 9 Feb 2015 22:00:49 -0200 Subject: [PATCH] interpret symlinks as alias --- lib/fontcustom/generator/font.rb | 12 ++++++++++++ lib/fontcustom/generator/template.rb | 12 ++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/lib/fontcustom/generator/font.rb b/lib/fontcustom/generator/font.rb index d9ffd213..402516fd 100644 --- a/lib/fontcustom/generator/font.rb +++ b/lib/fontcustom/generator/font.rb @@ -50,6 +50,7 @@ def set_glyph_info files = Dir.glob File.join(@options[:input][:vectors], "*.svg") glyphs = {} files.each do |file| + next if File.symlink?(file) name = File.basename file, ".svg" name = name.strip.gsub(/\W/, "-") glyphs[name.to_sym] = { :source => file } @@ -58,6 +59,17 @@ def set_glyph_info end end + files.each do |file| + next unless File.symlink?(file) + linked_name = File.readlink(file) + linked_name = File.basename linked_name, ".svg" + linked_name = linked_name.strip.gsub(/\W/, "-") + glyphs[linked_name.to_sym][:aliases] ||= [] + alias_name = File.basename file, ".svg" + alias_name = alias_name.strip.gsub(/\W/, "-") + glyphs[linked_name.to_sym][:aliases] << alias_name + end + # Dir.glob returns a different order depending on ruby # version/platform, so we have to sort it first glyphs = Hash[glyphs.sort_by { |key, val| key.to_s }] diff --git a/lib/fontcustom/generator/template.rb b/lib/fontcustom/generator/template.rb index 0e39c177..4c31035e 100644 --- a/lib/fontcustom/generator/template.rb +++ b/lib/fontcustom/generator/template.rb @@ -183,7 +183,11 @@ def woff_base64 def glyph_selectors output = @glyphs.map do |name, value| - @options[:css_selector].sub("{{glyph}}", name.to_s) + ":before" + aliases = [] + aliases = @glyphs[name][:aliases].map do |alias_name| + @options[:css_selector].sub("{{glyph}}", alias_name.to_s) + ":before,\n" + end if @glyphs[name][:aliases] + aliases.join + @options[:css_selector].sub("{{glyph}}", name.to_s) + ":before" end output.join ",\n" end @@ -205,7 +209,11 @@ def glyph_properties def glyphs output = @glyphs.map do |name, value| - %Q|#{@options[:css_selector].sub('{{glyph}}', name.to_s)}:before { content: "\\#{value[:codepoint].to_s(16)}"; }| + aliases = [] + aliases = @glyphs[name][:aliases].map do |alias_name| + %Q|#{@options[:css_selector].sub('{{glyph}}', alias_name.to_s)}:before, | + end if @glyphs[name][:aliases] + aliases.join + %Q|#{@options[:css_selector].sub('{{glyph}}', name.to_s)}:before { content: "\\#{value[:codepoint].to_s(16)}"; }| end output.join "\n" end