#!/usr/bin/env ruby

require "pathname"

INPUTS = ["inputs/sample.txt", "inputs/puzzle.txt"].map { |x| Pathname(x) }

def match_paren(char)
    case char
    when "(" then 1
    when ")" then -1
    end
end

def solve_part_1(content)
  content.chars.sum { |x| match_paren(x) }
end

def solve_part_2(content)
  content.chars.each.with_index(1).reduce(0) do |acc, (char, index)|
    acc += match_paren(char)
    return index if acc == -1
    acc
  end
  nil
end

def main(files)
  files.each do |file|
    puts "File: #{file}"
    file.read.lines do |line|
      next if line.empty?
      result = solve_part_1(line.chomp)
      puts "  Floor: #{result}"
      result = solve_part_2(line.chomp)
      puts "  Basement Floor Position: #{result}"
      puts " -" * 15
    end
  end
end

main(INPUTS)