comparison Core.lua @ 42:72055fc7e115

A lot of work to reign in namespacing (inspiration: WIM)
author John@Doomsday
date Thu, 15 Mar 2012 08:47:41 -0400
parents 7bfbff27a3d7
children 4109683c3172
comparison
equal deleted inserted replaced
41:dc9bfacca238 42:72055fc7e115
16 -- ( ) undo 16 -- ( ) undo
17 -- ( ) crypto / protection against tampering 17 -- ( ) crypto / protection against tampering
18 -- ( ) alt tracking 18 -- ( ) alt tracking
19 -- (_) reserves 19 -- (_) reserves
20 20
21 local _G=_G
22 local strsplit=strsplit
23 local string=string
24 local sformat=string.format
25 local bsk = LibStub("AceAddon-3.0"):NewAddon("bsk","AceConsole-3.0", "AceHook-3.0", "AceComm-3.0", "AceSerializer-3.0")
26 _G.bsk=bsk
27 local L = LibStub("AceLocale-3.0"):GetLocale("bsk", false)
28 setfenv(1,bsk)
29
21 local pkgrev = " @project-revision@ " 30 local pkgrev = " @project-revision@ "
22 31
23 -- important things to remember: 32 -- important things to remember:
24 -- 1) ipairs iterates from 1 until the first missing int index -> no gaps if int 33 -- 1) ipairs iterates from 1 until the first missing int index -> no gaps if int
25 -- indexing 34 -- indexing
26 -- 2) a.x === a["x"] 35 -- 2) a.x === a["x"]
27 -- 3) a["1"] =/= a[1] 36 -- 3) a["1"] =/= a[1]
28 -- 4) table.remove() works ok if reverse iterating, terrible at anything else 37 -- 4) table.remove() works ok if reverse iterating, terrible at anything else
29 -- 5) pairs() does not have a guaranteed iteration order 38 -- 5) pairs() does not have a guaranteed iteration order
30 39
31 bsk = LibStub("AceAddon-3.0"):NewAddon("bsk","AceConsole-3.0", "AceHook-3.0", "AceComm-3.0", "AceSerializer-3.0") 40
32 local L = LibStub("AceLocale-3.0"):GetLocale("bsk", false) 41
33 42 function OnInitialize()
34 43
35 function bsk:OnInitialize() 44 db = _G.LibStub("AceDB-3.0"):New("BskDB", defaults, "Default")
36 45 bsk:Print("Totally libstubbed a db")
37 self.db = LibStub("AceDB-3.0"):New("BskDB", self.defaults, "Default") 46
38 47 options.args.profile = _G.LibStub("AceDBOptions-3.0"):GetOptionsTable(db)
39 self.options.args.profile = LibStub("AceDBOptions-3.0"):GetOptionsTable(self.db) 48 _G.LibStub("AceConfig-3.0"):RegisterOptionsTable("bsk", options)
40 LibStub("AceConfig-3.0"):RegisterOptionsTable("bsk", self.options) 49 --optionsFrame = LibStub("AceConfigDialog-3.0"):AddToBlizOptions("bsk", "bsk")
41 self.optionsFrame = LibStub("AceConfigDialog-3.0"):AddToBlizOptions("bsk", "bsk") 50
42 51 local HandlePassThrough = function(...) HandleCommand(...) end
43 self:RegisterChatCommand("bsk", "HandleCommand") 52 bsk:RegisterChatCommand("bsk", HandlePassThrough)
44 end 53 end
45 54
46 function bsk:OnEnable() 55 function OnEnable()
47 bsk:CreateWorkingStateFromChanges(self.db.profile.changes) 56 CreateWorkingStateFromChanges(db.profile.changes)
48 bsk:CreateGUI() 57 CreateGUI()
49 end 58 end
50 59
51 function bsk:HandleCommand(paramIn) 60 function HandleCommand(paramIn)
52 local param = { strsplit(" ", paramIn) } 61 local param = { strsplit(" ", paramIn) }
53 local FixPersonName = function(p) 62 local FixPersonName = function(p)
54 p = p:lower() 63 p = p:lower()
55 -- next two lines from sylvanaar 64 -- next two lines from sylvanaar
56 local MULTIBYTE_FIRST_CHAR = "^([\192-\255]?%a?[\128-\191]*)" 65 local MULTIBYTE_FIRST_CHAR = "^([\192-\255]?%a?[\128-\191]*)"
60 if param[1] == nil or param[1] == "" then 69 if param[1] == nil or param[1] == "" then
61 bsk:Print("need args") 70 bsk:Print("need args")
62 return 71 return
63 end 72 end
64 if param[1] == "persons" then 73 if param[1] == "persons" then
65 bsk:PrintPersons() 74 PrintPersons()
66 elseif param[1] == "changes" then 75 elseif param[1] == "changes" then
67 bsk:PrintChanges() 76 PrintChanges()
68 elseif param[1] == "delete" then 77 elseif param[1] == "delete" then
69 if param[2] == nil or param[2] == "" or param[3] == nil or param[3] == "" then 78 if param[2] == nil or param[2] == "" or param[3] == nil or param[3] == "" then
70 bsk:PrintTable(param) 79 PrintTable(param)
71 return 80 return
72 end 81 end
73 if param[2] == "list" then 82 if param[2] == "list" then
74 bsk:DeleteList(param[3]) 83 DeleteList(param[3])
75 elseif param[2] == "personfromlist" then 84 elseif param[2] == "personfromlist" then
76 if param[4] == nil or param[4] == "" then 85 if param[4] == nil or param[4] == "" then
77 bsk:PrintTable(param) 86 PrintTable(param)
78 return 87 return
79 end 88 end
80 local person = FixPersonName(param[3]) 89 local person = FixPersonName(param[3])
81 bsk:RemovePersonFromList(person, param[4]) 90 RemovePersonFromList(person, param[4])
82 elseif param[2] == "person" then 91 elseif param[2] == "person" then
83 local person = FixPersonName(param[3]) 92 local person = FixPersonName(param[3])
84 bsk:RemovePerson(person) 93 RemovePerson(person)
85 else 94 else
86 bsk:Print(sformat("Deleting anything of type %s is not supported",param[2])) 95 bsk:Print(sformat("Deleting anything of type %s is not supported",param[2]))
87 end 96 end
88 elseif param[1] == "nuke" then 97 elseif param[1] == "nuke" then
89 if param[2] == nil or param[2] == "" then 98 if param[2] == nil or param[2] == "" then
90 bsk:PrintTable(param) 99 PrintTable(param)
91 return 100 return
92 end 101 end
93 local person = FixPersonName(param[2]) 102 local person = FixPersonName(param[2])
94 bsk:NukePerson(person) 103 NukePerson(person)
95 elseif param[1] == "add" then 104 elseif param[1] == "add" then
96 if param[2] == nil or param[2] == "" then 105 if param[2] == nil or param[2] == "" then
97 bsk:PrintTable(param) 106 PrintTable(param)
98 return 107 return
99 end 108 end
100 if param[3] == nil or param[3] == "" then 109 if param[3] == nil or param[3] == "" then
101 bsk:PrintTable(param) 110 PrintTable(param)
102 return 111 return
103 end 112 end
104 if param[2] == "person" then 113 if param[2] == "person" then
105 if param[3] == "all" then 114 if param[3] == "all" then
106 bsk:AddMissingPersons() 115 AddMissingPersons()
107 else 116 else
108 local person = FixPersonName(param[3]) 117 local person = FixPersonName(param[3])
109 bsk:AddPerson(person) 118 AddPerson(person)
110 end 119 end
111 elseif param[2] == "list" then 120 elseif param[2] == "list" then
112 bsk:CreateList(param[3]) 121 CreateList(param[3])
113 elseif param[2] == "tolist" then 122 elseif param[2] == "tolist" then
114 if param[4] == nil or param[4] == "" then 123 if param[4] == nil or param[4] == "" then
115 bsk:PrintTable(param) 124 PrintTable(param)
116 return 125 return
117 end 126 end
118 local person = FixPersonName(param[3]) 127 local person = FixPersonName(param[3])
119 bsk:AddPersonToListEnd(person,param[4]) 128 AddPersonToListEnd(person,param[4])
120 elseif param[2] == "tolistrandom" then 129 elseif param[2] == "tolistrandom" then
121 if param[4] == nil or param[4] == "" then 130 if param[4] == nil or param[4] == "" then
122 bsk:PrintTable(param) 131 PrintTable(param)
123 return 132 return
124 end 133 end
125 local person = FixPersonName(param[3]) 134 local person = FixPersonName(param[3])
126 bsk:AddPersonToListRandom(person,param[4]) 135 AddPersonToListRandom(person,param[4])
127 end 136 end
128 elseif param[1] == "populate" then 137 elseif param[1] == "populate" then
129 if param[2] == nil or param[2] == "" or param[3] == nil or param[3] == "" then 138 if param[2] == nil or param[2] == "" or param[3] == nil or param[3] == "" then
130 bsk:PrintTable(param) 139 PrintTable(param)
131 return 140 return
132 end 141 end
133 -- list = p2 142 -- list = p2
134 local index = bsk:GetListIndex(param[2]) 143 local index = GetListIndex(param[2])
135 if param[3] == "random" then 144 if param[3] == "random" then
136 bsk:PopulateListRandom(index) 145 PopulateListRandom(index)
137 end 146 end
138 elseif param[1] == "suicide" then 147 elseif param[1] == "suicide" then
139 if param[2] == nil or param[2] == "" or param[3] == nil or param[3] == "" then 148 if param[2] == nil or param[2] == "" or param[3] == nil or param[3] == "" then
140 bsk:PrintTable(param) 149 PrintTable(param)
141 return 150 return
142 end 151 end
143 local person = FixPersonName(param[2]) 152 local person = FixPersonName(param[2])
144 bsk:SuicidePerson(person,param[3]) 153 SuicidePerson(person,param[3])
145 elseif param[1] == "lists" then 154 elseif param[1] == "lists" then
146 if param[2] == nil or param[2] == "" then 155 if param[2] == nil or param[2] == "" then
147 bsk:PrettyPrintLists() 156 PrettyPrintLists()
148 return 157 return
149 else 158 else
150 local listIndex = bsk:GetListIndex(param[2]) 159 local listIndex = GetListIndex(param[2])
151 bsk:PrettyPrintList(listIndex) 160 PrettyPrintList(listIndex)
152 end 161 end
153 elseif param[1] == "reserve" then 162 elseif param[1] == "reserve" then
154 if param[2] == nil or param[2] == "" then 163 if param[2] == nil or param[2] == "" then
155 bsk:printtable(param) 164 printtable(param)
156 return 165 return
157 end 166 end
158 local person = FixPersonName(param[2]) 167 local person = FixPersonName(param[2])
159 bsk:AddReserve(person) 168 AddReserve(person)
160 elseif param[1] == "trim" then 169 elseif param[1] == "trim" then
161 if param[2] == nil or param[2] == "" then 170 if param[2] == nil or param[2] == "" then
162 bsk:printtable(param) 171 printtable(param)
163 return 172 return
164 end 173 end
165 bsk:TrimLists(param[2]) 174 TrimLists(param[2])
166 elseif param[1] == "rename" then 175 elseif param[1] == "rename" then
167 if param[2] == nil or param[2] == "" or param[3] == nil or param[3] == "" then 176 if param[2] == nil or param[2] == "" or param[3] == nil or param[3] == "" then
168 bsk:printtable(param) 177 printtable(param)
169 return 178 return
170 end 179 end
171 bsk:RenameList(param[2],param[3]) 180 RenameList(param[2],param[3])
172 elseif param[1] == "selfdestruct" then 181 elseif param[1] == "selfdestruct" then
173 bsk:SelfDestruct() 182 SelfDestruct()
174 else 183 else
175 bsk:CreateGUI() 184 CreateGUI()
176 end 185 end
177 186
178 --if self.frame == nil then 187 --if frame == nil then
179 --self:CreateGUI() 188 --CreateGUI()
180 --self:ShowGUI() 189 --ShowGUI()
181 --else 190 --else
182 --self:ShowGUI() 191 --ShowGUI()
183 --end 192 --end
184 193
185 end 194 end
186 195
187 bsk.defaults = { 196 defaults = {
188 profile = { 197 profile = {
189 persons = {}, 198 persons = {},
190 changes = {}, 199 changes = {},
191 lists = {} 200 lists = {}
192 } 201 }