Sha256: c338053b5e6ead8f0053ed1dd5894fd0b1a51216387731f9af80a9a302a181cc
Contents?: true
Size: 1.4 KB
Versions: 21
Compression:
Stored size: 1.4 KB
Contents
require 'fileutils' require 'ceedling/constants' # for Verbosity enumeration class FileFinderHelper constructor :streaminator def find_file_in_collection(file_name, file_list, complain, extra_message="") file_to_find = nil file_list.each do |item| base_file = File.basename(item) # case insensitive comparison if (base_file.casecmp(file_name) == 0) # case sensitive check if (base_file == file_name) file_to_find = item break else blow_up(file_name, "However, a filename having different capitalization was found: '#{item}'.") end end end case (complain) when :error then blow_up(file_name, extra_message) if (file_to_find.nil?) when :warn then gripe(file_name, extra_message) if (file_to_find.nil?) #when :ignore then end return file_to_find end private def blow_up(file_name, extra_message="") error = "ERROR: Found no file '#{file_name}' in search paths." error += ' ' if (extra_message.length > 0) @streaminator.stderr_puts(error + extra_message, Verbosity::ERRORS) raise end def gripe(file_name, extra_message="") warning = "WARNING: Found no file '#{file_name}' in search paths." warning += ' ' if (extra_message.length > 0) @streaminator.stderr_puts(warning + extra_message, Verbosity::COMPLAIN) end end
Version data entries
21 entries across 21 versions & 1 rubygems