Wed, 24 Nov 2010 02:52:37 +0000
Replace error reporting code with calls to LVM.traceback()
57 | 1 | -- account.lua |
2 | -- from PiL 1, Chapter 16 | |
3 | ||
69
26ee626eda90
Move the demo_account.lua test from fail to pass - yay!
Matthew Wild <mwild1@gmail.com>
parents:
57
diff
changeset
|
4 | Account = {balance = 0, name = "base"} |
26ee626eda90
Move the demo_account.lua test from fail to pass - yay!
Matthew Wild <mwild1@gmail.com>
parents:
57
diff
changeset
|
5 | Account.__index = Account; |
57 | 6 | |
7 | function Account:new (o, name) | |
8 | o = o or {name=name} | |
9 | setmetatable(o, self) | |
10 | return o | |
11 | end | |
12 | ||
13 | function Account:deposit (v) | |
14 | self.balance = self.balance + v | |
15 | end | |
16 | ||
17 | function Account:withdraw (v) | |
18 | if v > self.balance then error("insufficient funds on account "..self.name) end | |
19 | self.balance = self.balance - v | |
20 | end | |
21 | ||
22 | function Account:show (title) | |
23 | print(title or "", self.name, self.balance) | |
24 | end | |
25 | ||
26 | a = Account:new(nil,"demo") | |
27 | a:show("after creation") | |
28 | a:deposit(1000.00) | |
29 | a:show("after deposit") | |
30 | a:withdraw(100.00) | |
31 | a:show("after withdraw") | |
32 | ||
33 | -- this would raise an error | |
34 | --[[ | |
35 | b = Account:new(nil,"DEMO") | |
36 | b:withdraw(100.00) | |
37 | --]] | |
38 |