Class: Ig3tool::Person
Class Method Summary
collapse
Instance Method Summary
collapse
#attributes_protected_by_default, hash_lookup, set_nonauto_primary_key
Class Method Details
.debuggers ⇒ Object
84
85
86
|
# File 'lib/people.rb', line 84
def self.debuggers
find(:all).find_all{|p| p.debugger?}
end
|
.everybody ⇒ Object
72
73
74
|
# File 'lib/people.rb', line 72
def self.everybody
find(:all)
end
|
.exdebuggers ⇒ Object
88
89
90
|
# File 'lib/people.rb', line 88
def self.exdebuggers
find(:all).find_all{|p| p.exdebugger?}
end
|
.exhonorarymembers ⇒ Object
96
97
98
|
# File 'lib/people.rb', line 96
def self.exhonorarymembers
find(:all).find_all{|p| p.exhonorarymember?}
end
|
.honorarymembers ⇒ Object
92
93
94
|
# File 'lib/people.rb', line 92
def self.honorarymembers
find(:all).find_all{|p| p.honorarymember?}
end
|
.members ⇒ Object
76
77
78
|
# File 'lib/people.rb', line 76
def self.members
find(:all).find_all{|p| p.member?}
end
|
.nonmembers ⇒ Object
80
81
82
|
# File 'lib/people.rb', line 80
def self.nonmembers
find(:all).find_all{|p| p.membership.nil?}
end
|
Instance Method Details
#bugger! ⇒ Object
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
|
# File 'lib/people.rb', line 115
def bugger!
raise NotAMember unless member?
raise IG3Error, "already a debugger" if debugger?
membership.status = "debugger"
self.interne = i = Interne.new
i.username = username
i.saldo = 0
i.afgesloten = false
transaction do
if print_user.saldo > 0
i.deposit("printaccount", print_user.saldo, "printkrediet")
end
membership.save!
i.save!
end
end
|
#debugger? ⇒ Boolean
64
65
66
|
# File 'lib/people.rb', line 64
def debugger?
(not interne.nil?) and (interne.afgesloten != 1) and member? and (membership.status == "debugger")
end
|
#exdebugger? ⇒ Boolean
68
69
70
|
# File 'lib/people.rb', line 68
def exdebugger?
(not debugger?) and (not memberships.find(:all).find_all{|m| m.status == "debugger" or m.status == "ex-debugger"}.empty?)
end
|
#exhonorarymember? ⇒ Boolean
60
61
62
|
# File 'lib/people.rb', line 60
def exhonorarymember?
not honorarymember? and not memberships.find(:all).find_all{|m| m.status == "honorary member"}.empty?
end
|
#honorarymember? ⇒ Boolean
56
57
58
|
# File 'lib/people.rb', line 56
def honorarymember?
member? and membership.status == "honorary member"
end
|
#member? ⇒ Boolean
52
53
54
|
# File 'lib/people.rb', line 52
def member?
not membership.nil?
end
|
#membership ⇒ Object
:dependent => :destroy # destroyes printuser when person gets deleted XXX do we want that?
40
41
42
43
44
45
46
|
# File 'lib/people.rb', line 40
def membership
if !memberships.empty? and memberships[0].year == Time.werkjaar
memberships[0]
else
nil
end
end
|
#unbugger! ⇒ Object
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
# File 'lib/people.rb', line 100
def unbugger!
raise NotADebugger unless debugger?
raise SaldoNotZero if interne.saldo != 0
interne.afgesloten = true
membership.status = "member"
transaction do
print_user.remove_aliases
membership.save!
interne.save!
end
end
|
#username=(newusername) ⇒ Object
48
49
50
|
# File 'lib/people.rb', line 48
def username=(newusername)
write_attribute(:username, newusername)
end
|