From c589621083feeea7ec280e84595f18e9301e28d8 Mon Sep 17 00:00:00 2001 From: Oded Niv Date: Thu, 11 Aug 2016 14:33:42 +0300 Subject: [PATCH] allow sub-directories in input vectors --- lib/fontcustom/base.rb | 2 +- lib/fontcustom/generator/font.rb | 4 ++-- lib/fontcustom/options.rb | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/fontcustom/base.rb b/lib/fontcustom/base.rb index e52f4fff..4b4a7e9c 100644 --- a/lib/fontcustom/base.rb +++ b/lib/fontcustom/base.rb @@ -50,7 +50,7 @@ def check_woff2 # Calculates a hash of vectors, options, and templates (content and filenames) def checksum - files = Dir.glob(File.join(@options[:input][:vectors], "*.svg")).select { |fn| File.file?(fn) } + files = Dir.glob(File.join(@options[:input][:vectors], "**/*.svg")).select { |fn| File.file?(fn) } files += Dir.glob(File.join(@options[:input][:templates], "*")).select { |fn| File.file?(fn) } content = files.map { |file| File.read(file) }.join content << files.join diff --git a/lib/fontcustom/generator/font.rb b/lib/fontcustom/generator/font.rb index d9ffd213..485e1f78 100644 --- a/lib/fontcustom/generator/font.rb +++ b/lib/fontcustom/generator/font.rb @@ -47,10 +47,10 @@ def set_glyph_info 0xf100 end - files = Dir.glob File.join(@options[:input][:vectors], "*.svg") + files = Dir.glob File.join(@options[:input][:vectors], "**/*.svg") glyphs = {} files.each do |file| - name = File.basename file, ".svg" + name = file.sub(/^#{@options[:input][:vectors]}\/?/, '').sub(/\.svg$/, '') name = name.strip.gsub(/\W/, "-") glyphs[name.to_sym] = { :source => file } if File.read(file).include? "rgba" diff --git a/lib/fontcustom/options.rb b/lib/fontcustom/options.rb index 6a2b29df..4c691e9d 100644 --- a/lib/fontcustom/options.rb +++ b/lib/fontcustom/options.rb @@ -119,7 +119,7 @@ def set_input_paths @options[:input] = { :vectors => input, :templates => input } end - if Dir[File.join(@options[:input][:vectors], "*.svg")].empty? + if Dir.glob(File.join(@options[:input][:vectors], "**/*.svg")).empty? raise Fontcustom::Error, "`#{@options[:input][:vectors]}` doesn't contain any SVGs." end end