module Everything::Piece::Find
Constants
- VERSION
Public Instance Methods
find_by_name(piece_name)
click to toggle source
# File lib/everything/piece/find.rb, line 7 def find_by_name(piece_name) piece_path = File.join(Everything.path, piece_name) raise_no_piece_error(piece_name) unless File.exist?(piece_path) raise_not_directory_error(piece_name, piece_path) unless Dir.exist?(piece_path) Piece.new(piece_path) end
find_by_name_recursive(piece_name)
click to toggle source
# File lib/everything/piece/find.rb, line 16 def find_by_name_recursive(piece_name) glob_path = File.join(Everything.path, '**', piece_name) possible_dirs = Dir.glob(glob_path) full_piece_path = possible_dirs.first raise_no_piece_recursive_error(piece_name) unless full_piece_path raise_not_directory_error(piece_name, full_piece_path) unless Dir.exist?(full_piece_path) Piece.new(full_piece_path) end
Private Instance Methods
raise_no_piece_error(piece_name)
click to toggle source
# File lib/everything/piece/find.rb, line 29 def raise_no_piece_error(piece_name) error_message = %Q{Could not find directory for piece "#{piece_name}" in #{Everything.path}} raise ArgumentError, error_message end
raise_no_piece_recursive_error(piece_name)
click to toggle source
# File lib/everything/piece/find.rb, line 36 def raise_no_piece_recursive_error(piece_name) error_message = %Q{Could not find directory for piece "#{piece_name}" in #{Everything.path} or subdirectories} raise ArgumentError, error_message end
raise_not_directory_error(piece_name, piece_path)
click to toggle source
# File lib/everything/piece/find.rb, line 42 def raise_not_directory_error(piece_name, piece_path) error_message = %Q{Found file at #{piece_path}, but was expecting a directory for piece "#{piece_name}"} raise ArgumentError, error_message end