2026-08-15 23:08:36 -05:00
defmodule Casebot do
@moduledoc """
Documentation for `Casebot`.
master_data is a list of tuples that contains the box designation, row number, and a list of tuples that contain tuples of the road name and address number
[(box_designation, row_number, [(road_name, address_number), (road_name, address_number)]), (box_designation, row_number, [(road_name, address_number), (road_name, address_number)],]
Persistence is stored as plaintext in a file called persist.csv. The
"""
@doc """
master_loop
Called by entry_function. Takes master_data object and modifies/reads that as
program main loop. Recursive calls itself.
"""
def master_loop ( master_data ) do
entry = IO . gets ( ">>>" )
command_word = String . split ( entry ) |> List . first ()
words = String . split ( entry )
case command_word do
"add" -> add_to_master ( words , master_data )
"find" -> find_in_master ( words , master_data )
"clear" -> clear_entry ( words , master_data )
end
master_loop ( master_data )
end
def run () do
2026-08-15 23:38:28 -05:00
name = get_name ()
master_data = ensure_file ( name ) |> CSV . init_master_data ()
master_loop ( master_data )
end
def get_name () do
name = IO . gets ( "Enter route name: " )
if ! String . ends_with? ( name , ".csv" ) do
name
else
name <> ".csv"
end
2026-08-15 23:08:36 -05:00
end
def ensure_file ( path \\ "persist.csv" ) do
unless File . exists? ( path ) do
File . write! ( path , "box_name,row_number,road_name,address_number \n " )
end
path
end
2026-08-15 23:38:28 -05:00
2026-08-15 23:08:36 -05:00
def add_to_master ( entry , master_data ) do
end
def clear_entry ( entry , master_data ) do
end
def find_in_master ( entry , master_data ) do
end
end