lib/frameit/config_parser.rb in frameit-2.0.1 vs lib/frameit/config_parser.rb in frameit-2.1.0

- old
+ new

@@ -39,15 +39,18 @@ # Use absolute paths instead of relative def change_paths_to_absolutes!(values) values.each do |key, value| if value.kind_of?Hash change_paths_to_absolutes!(value) # recursive call + elsif value.kind_of?Array + value.each do |current| + change_paths_to_absolutes!(current) if current.kind_of?Hash # recursive call + end else if ['font', 'background'].include?key # Change the paths to relative ones # `replace`: to change the content of the string, so it's actually stored - if @path # where is the config file. We don't have a config file in tests containing_folder = File.expand_path('..', @path) value.replace File.join(containing_folder, value) end end @@ -61,9 +64,19 @@ if value.kind_of?Hash validate_values(value) # recursive call else if key == 'font' raise "Could not find font at path '#{File.expand_path(value)}'" unless File.exists?value + end + + if key == 'fonts' + raise "`fonts` must be an array" unless value.kind_of?Array + + value.each do |current| + raise "You must specify a font path" if current.fetch('font', '').length == 0 + raise "Could not find font at path '#{File.expand_path(current.fetch('font'))}'" unless File.exists?current.fetch('font') + raise "`supported` must be an array" unless current.fetch('supported', []).kind_of?Array + end end if key == 'background' raise "Could not find background image at path '#{File.expand_path(value)}'" unless File.exists?value end \ No newline at end of file