-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathqueue.rb
More file actions
76 lines (64 loc) · 2.39 KB
/
Copy pathqueue.rb
File metadata and controls
76 lines (64 loc) · 2.39 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
67
68
69
70
71
72
73
74
75
76
#Dependencies
require 'csv'
# require './event_data_parser'
# require './search'
# require './EventReporterCLI'
#Class Definition
class Queue < Array
attr_accessor :queue
#@attribute = parameters[3]
# def initialize
# @queue = Queue.new.call
# end
def call(parameters)
"Running queue sub-function #{parameters[0]}"
end
def self.valid_parameters_for_queue?(parameters, queue)
if !%w(count clear print save).include?(parameters[0])
return true
elsif parameters [0] == "count"
@queue.count
puts "There are #{@queue.count} items in the queue"
elsif parameters [0] == "clear"
if @queue == []
puts "The Queue has been cleared."
else
@queue == []
puts "Clearing your queue."
end
elsif parameters[0] == "print"
queue.select do |line|
print "LAST NAME".ljust(16) + "FIRST NAME".ljust(20) + "EMAIL".ljust(40) +
"ZIPCODE".ljust(20) + "CITY".ljust(24) + "STATE".ljust(20) + "ADDRESS\n"
print "#{line.last_name}".capitalize.ljust(16) +
"#{line.first_name}".capitalize.ljust(20) +
"#{line.email_address}".capitalize.ljust(40) +
"#{line.zipcode}".capitalize.ljust(20) +"#{line.city}".capitalize.ljust(24)
+ "#{line.state}".upcase.ljust(20) + "#{line.street}\n"
end
puts "Printing your queue results."
elsif parameters.count == 1 || (parameters[1] == "by" && parameters.count ==3 )
@queue.sort_by(@attribute)
@queue.select do |line|
print "LAST NAME".ljust(16) + "FIRST NAME".ljust(20) + "EMAIL".ljust(40) +
"ZIPCODE".ljust(20) + "CITY".ljust(24) + "STATE".ljust(20) + "ADDRESS\n"
print "#{line.last_name}".capitalize.ljust(16) +
"#{line.first_name}".capitalize.ljust(20) +
"#{line.email_address}".capitalize.ljust(40) +
"#{line.zipcode}".capitalize.ljust(20) +"#{line.city}".capitalize.ljust(24)
+ "#{line.state}".upcase.ljust(20) + "#{line.street}\n"
end
elsif parameters[0] == "save"
parameters[1] == "to" && parameters.count == 3
output = CSV.open(parameters[2], "w")
@queue.each do |attendee|
output << attendee.to_s.join("\t")
output.close
end
puts "Saving your queue"
#new(filename, mode="r" [, opt]) -- this should write a new file // try to use this method?
else
return false
end
end
end