-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathloading_bar.rb
More file actions
31 lines (26 loc) · 866 Bytes
/
loading_bar.rb
File metadata and controls
31 lines (26 loc) · 866 Bytes
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
class LoadingBar
def self.output_string(completion_rate)
str = "["
str << "-"*(completion_rate/2)
str << "="*(50-completion_rate/2)
str << "]"
if completion_rate == 100
str[26] = " done "
elsif completion_rate >= 10
str[25] += " #{completion_rate}% "
else
str[25] += "= #{completion_rate}% "
end
str << "\r" unless completion_rate == 100
str << "\n" if completion_rate == 100
str
end
def self.calculate_progress_rate(current_progression, total_progression)
100*current_progression/total_progression
end
def self.output(current_progression, total_progression)
completion_rate = calculate_progress_rate(current_progression, total_progression)
raise StandardError.new "Your progress rate can't be over 100% ! Currently #{completion_rate}" if completion_rate > 100
print(output_string(completion_rate))
end
end