Class: Ig3tool::Person

Inherits:
ActiveRecord::Base show all
Defined in:
lib/people.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from ActiveRecord::Base

#attributes_protected_by_default, hash_lookup, set_nonauto_primary_key

Class Method Details

.debuggersObject



84
85
86
# File 'lib/people.rb', line 84

def self.debuggers
	find(:all).find_all{|p| p.debugger?}
end

.everybodyObject



72
73
74
# File 'lib/people.rb', line 72

def self.everybody
	find(:all)
end

.exdebuggersObject



88
89
90
# File 'lib/people.rb', line 88

def self.exdebuggers
	find(:all).find_all{|p| p.exdebugger?}
end

.exhonorarymembersObject



96
97
98
# File 'lib/people.rb', line 96

def self.exhonorarymembers
	find(:all).find_all{|p| p.exhonorarymember?}
end

.honorarymembersObject



92
93
94
# File 'lib/people.rb', line 92

def self.honorarymembers
	find(:all).find_all{|p| p.honorarymember?}
end

.membersObject



76
77
78
# File 'lib/people.rb', line 76

def self.members
	find(:all).find_all{|p| p.member?}
end

.nonmembersObject



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

Raises:



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"

			# interne
			self.interne = i = Interne.new
			i.username = username
			i.saldo = 0
			i.afgesloten = false

			transaction do
# centjes overzetten
if print_user.saldo > 0
	i.deposit("printaccount", print_user.saldo, "printkrediet")
	# XXX print krediet?
	# print_user.saldo = 0
end

membership.save!
i.save!
			end
end

#debugger?Boolean

Returns:

  • (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

Returns:

  • (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

Returns:

  • (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

Returns:

  • (Boolean)


56
57
58
# File 'lib/people.rb', line 56

def honorarymember?
	member? and membership.status == "honorary member"
end

#member?Boolean

Returns:

  • (Boolean)


52
53
54
# File 'lib/people.rb', line 52

def member?
	not membership.nil?
end

#membershipObject

: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

Raises:



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