require "json"
require "csv"

weapons = JSON.parse File.read("weapons.json")
column_names = File.read("column_names").split "\t"

csv = CSV.generate do |csv|
  weapons.keys.each do |weapon_name|
    30.times do |i|
      csv << column_names.map do |column_name|
        if column_name == 'Hex'
          i + 1
        elsif weapons[weapon_name].include? column_name
          weapons[weapon_name][column_name]
        elsif weapons[weapon_name]["Availability"].include? column_name
          weapons[weapon_name]["Availability"][column_name]
        else
          raise "Whoa, weapon '#{weapon_name}' doesn't have column '#{column_name}'"
        end
      end
    end
  end
end

puts csv