diff Core.lua @ 49:f52d472f0b0a

Sweeping refactor to compartmentalize the various lists and to give them nice interfaces. Disentangled dependency web significantly
author John@Yosemite-PC
date Wed, 21 Mar 2012 22:52:42 -0400
parents 8913e7d79cad
children 94ae80d58903
line wrap: on
line diff
--- a/Core.lua	Wed Mar 21 22:51:34 2012 -0400
+++ b/Core.lua	Wed Mar 21 22:52:42 2012 -0400
@@ -63,121 +63,114 @@
         local MULTIBYTE_FIRST_CHAR = "^([\192-\255]?%a?[\128-\191]*)"
         return string.gsub(p, MULTIBYTE_FIRST_CHAR, string.upper, 1)  
     end
+    action,arg1,arg2,arg3 = bsk:GetArgs(paramIn,4)
 
-    if param[1] == nil or param[1] == "" then
+    if not action then
         print("need args")
         return
     end
-    if param[1] == "persons" then
+    if action == "persons" then
         PrintPersons()
-    elseif param[1] == "changes" then
+    elseif action == "changes" then
         PrintChanges()
-    elseif param[1] == "delete" then
-        if param[2] == nil or param[2] == "" or param[3] == nil or param[3] == "" then
+    elseif action == "selfdestruct" then
+        SelfDestruct()
+    elseif action == "delete" or action == "remove" then
+        if not arg1 or not arg2 then
             PrintTable(param)
             return
         end
-        if param[2] == "list" then
-            DeleteList(param[3])
-        elseif param[2] == "personfromlist" then
-            if param[4] == nil or param[4] == "" then
+        if arg1 == "list" then
+            DeleteList(arg2)
+        elseif arg1 == "personfromlist" or "fromlist" then
+            if not arg3 then
                 PrintTable(param)
                 return
             end
-            local person = FixPersonName(param[3])
-            RemovePersonFromList(person, param[4])
-        elseif param[2] == "person" then
-            local person = FixPersonName(param[3])
+            local person = FixPersonName(arg2)
+            RemovePersonFromList(person, arg3)
+        elseif arg1 == "person" then
+            local person = FixPersonName(arg2)
             RemovePerson(person)
         else
-            printf("Deleting anything of type %s is not supported",param[2])
+            printf("Deleting anything of type %s is not supported",arg1)
         end
-    elseif param[1] == "nuke" then
-        if param[2] == nil or param[2] == "" then
+    elseif action == "nuke" then
+        if not arg1 then
             PrintTable(param)
             return
         end
-        local person = FixPersonName(param[2])
+        local person = FixPersonName(arg1)
         NukePerson(person)
-    elseif param[1] == "add" then
-        if param[2] == nil or param[2] == "" then
+    elseif action == "add" or action == "create" then
+        if not arg1 or not arg2 then
             PrintTable(param)
             return
         end
-        if param[3] == nil or param[3] == "" then
-            PrintTable(param)
-            return
-        end
-        if param[2] == "person" then
-            if param[3] == "all" then
-                AddMissingPersons()
+        if arg1 == "person" then
+            if arg2 == "all" or arg2 == "missing" then
+                PersonList:AddMissing()
             else
-                local person = FixPersonName(param[3])
+                local person = FixPersonName(arg2)
                 AddPerson(person)
             end
-        elseif param[2] == "list" then
-            CreateList(param[3])
-        elseif param[2] == "tolist" then
-            if param[4] == nil or param[4] == "" then
+        elseif arg1 == "list" then
+            CreateList(arg2)
+        elseif arg1 == "tolist" then
+            if not arg3 then
                 PrintTable(param)
                 return
             end
-            local person = FixPersonName(param[3])
-            AddPersonToListEnd(person,param[4])
-        elseif param[2] == "tolistrandom" then
-            if param[4] == nil or param[4] == "" then
+            local person = FixPersonName(arg2)
+            AddPersonToListEnd(person,arg3)
+        elseif arg1 == "tolistrandom" then
+            if not arg3 then
                 PrintTable(param)
                 return
             end
-            local person = FixPersonName(param[3])
-            AddPersonToListRandom(person,param[4])
+            local person = FixPersonName(arg2)
+            AddPersonToListRandom(person,arg3)
         end
-    elseif param[1] == "populate" then
-        if param[2] == nil or param[2] == "" or param[3] == nil or param[3] == "" then
+    elseif action == "populate" then
+        if not arg1 then
             PrintTable(param)
             return
         end
         -- list = p2
-        local index = GetListIndex(param[2])
-        if param[3] == "random" then
-            PopulateListRandom(index)
-        end
-    elseif param[1] == "suicide" then
-        if param[2] == nil or param[2] == "" or param[3] == nil or param[3] == "" then
+        PopulateListRandom(arg1)
+    elseif action == "suicide" then
+        if not arg1 or not arg2 then
             PrintTable(param)
             return
         end
-        local person = FixPersonName(param[2])
-        SuicidePerson(person,param[3])
-    elseif param[1] == "lists" then
-        if param[2] == nil or param[2] == "" then
+        local person = FixPersonName(arg1)
+        SuicidePerson(person,arg2)
+    elseif action == "lists" then
+        if not arg1 then
             PrettyPrintLists()
             return
         else
-            local listIndex = GetListIndex(param[2])
-            PrettyPrintList(listIndex)
+            PrettyPrintList(arg1)
         end
-    elseif param[1] == "reserve" then
-        if param[2] == nil or param[2] == "" then
+    elseif action == "reserve" then
+        if not arg1 then
+            PrintTable(param)
+            return
+        end
+        local person = FixPersonName(arg1)
+        ReservePerson(person)
+    elseif action == "trim" then
+        if not arg1 then
             printtable(param)
             return
         end
-        local person = FixPersonName(param[2])
-        AddReserve(person)
-    elseif param[1] == "trim" then
-        if param[2] == nil or param[2] == "" then
-            printtable(param)
+        TrimLists(arg1)
+    elseif action == "rename" then
+        if not arg1 or not arg2 then
+            PrintTable(param)
             return
         end
-        TrimLists(param[2])
-    elseif param[1] == "rename" then
-        if param[2] == nil or param[2] == "" or param[3] == nil or param[3] == "" then
-            printtable(param)
-            return
-        end
-        RenameList(param[2],param[3])
-    elseif param[1] == "selfdestruct" then
-        SelfDestruct()
+        RenameList(arg1,arg2)
     else
         CreateGUI()
     end