A small Ruby project is easier to navigate when files have clear roles.

Project Layout

project_layout.rb
files = 
source_files = files.select { |path| path.start_with?("lib/") }
test_files = files.select { |path| path.include?("test") }
bin_files = files.select { |path| path.start_with?("bin/") }
has_readme = files.include?("README.md")

puts "files=#{files.join(',')}"
puts "source_count=#{source_files.length}"
puts "test_count=#{test_files.length}"
puts "bin_count=#{bin_files.length}"
puts "has_readme=#{has_readme}"
files = 
source_files = files.select { |path| path.start_with?("lib/") }
test_files = files.select { |path| path.include?("test") }
bin_files = files.select { |path| path.start_with?("bin/") }
has_readme = files.include?("README.md")

puts "files=#{files.join(',')}"
puts "source_count=#{source_files.length}"
puts "test_count=#{test_files.length}"
puts "bin_count=#{bin_files.length}"
puts "has_readme=#{has_readme}"
files = 
source_files = files.select { |path| path.start_with?("lib/") }
test_files = files.select { |path| path.include?("test") }
bin_files = files.select { |path| path.start_with?("bin/") }
has_readme = files.include?("README.md")

puts "files=#{files.join(',')}"
puts "source_count=#{source_files.length}"
puts "test_count=#{test_files.length}"
puts "bin_count=#{bin_files.length}"
puts "has_readme=#{has_readme}"
layout Model the project layout as data first: source files, tests, and executables should each have an obvious place.