-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathattendee.rb
More file actions
67 lines (52 loc) · 1.3 KB
/
Copy pathattendee.rb
File metadata and controls
67 lines (52 loc) · 1.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
class Attendee
# takes a CSV Row
# assigns to appropriate instance variables
attr_accessor :regdate, :last_name, :first_name, :email, :homephone,
:street, :city, :state, :zipcode
def initialize(csv_line = {})
self.regdate = csv_line[:regdate]
self.last_name = csv_line[:last_name]
self.first_name = csv_line[:first_name]
self.email = csv_line[:email]
self.homephone = csv_line[:homephone]
self.street = csv_line[:street]
self.city = csv_line[:city]
self.state = csv_line[:state]
self.zipcode = csv_line[:zipcode]
end
def full_name
[first_name, last_name].join(" ")
end
def zipcode
Zipcode.clean(@zipcode)
end
def phone_number
PhoneNumber.new(@homephone)
end
def state
State.clean(@state)
end
end
class RegDate
def self.clean(regdate)
end
end
private
class Zipcode
def self.clean(original)
original.to_s.rjust(5, "0")
end
end
class State
def self.clean(state)
state.to_s[0..1].upcase
end
end
class PhoneNumber
def initialize (phone_number)
@phone_number = phone_number.scan(/\d/).join
end
def to_s
"(#{@phone_number[0..2]}) #{@phone_number[3..5]}-#{@phone_number[6..-1]}"
end
end