elelem 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/lib/elelem/tui.rb DELETED
@@ -1,66 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Elelem
4
- class TUI
5
- attr_reader :stdin, :stdout
6
-
7
- def initialize(stdin = $stdin, stdout = $stdout)
8
- @stdin = stdin
9
- @stdout = stdout
10
- end
11
-
12
- def prompt(message)
13
- Reline.readline(message, true)
14
- end
15
-
16
- def say(message, colour: :default, newline: false)
17
- if newline
18
- stdout.puts(colourize(message, colour: colour))
19
- else
20
- stdout.print(colourize(message, colour: colour))
21
- end
22
- stdout.flush
23
- end
24
-
25
- def show_progress(message, icon = ".", colour: :gray)
26
- timestamp = Time.now.strftime("%H:%M:%S")
27
- say("\n[#{icon}] #{timestamp} #{message}", colour: colour, newline: true)
28
- end
29
-
30
- def clear_line
31
- say("\r#{" " * 80}\r", newline: false)
32
- end
33
-
34
- def complete_progress(message = "Completed")
35
- clear_line
36
- show_progress(message, "✓", colour: :green)
37
- end
38
-
39
- private
40
-
41
- def colourize(text, colour: :default)
42
- case colour
43
- when :black
44
- "\e[30m#{text}\e[0m"
45
- when :red
46
- "\e[31m#{text}\e[0m"
47
- when :green
48
- "\e[32m#{text}\e[0m"
49
- when :yellow
50
- "\e[33m#{text}\e[0m"
51
- when :blue
52
- "\e[34m#{text}\e[0m"
53
- when :magenta
54
- "\e[35m#{text}\e[0m"
55
- when :cyan
56
- "\e[36m#{text}\e[0m"
57
- when :white
58
- "\e[37m#{text}\e[0m"
59
- when :gray
60
- "\e[90m#{text}\e[0m"
61
- else
62
- text
63
- end
64
- end
65
- end
66
- end