planter-cli 3.0.1 → 3.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (104) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.gitmodules +3 -0
  4. data/CHANGELOG.md +10 -0
  5. data/README.md +5 -3
  6. data/bin/plant +1 -1
  7. data/docker/Dockerfile +2 -4
  8. data/docker/Dockerfile-2.6 +3 -5
  9. data/docker/Dockerfile-2.7 +2 -4
  10. data/docker/Dockerfile-3.0 +2 -3
  11. data/docker/Dockerfile-3.3 +11 -0
  12. data/docker/sources.list +11 -0
  13. data/lib/planter/filelist.rb +5 -4
  14. data/lib/planter/plant.rb +3 -3
  15. data/lib/planter/prompt.rb +5 -5
  16. data/lib/planter/string.rb +22 -0
  17. data/lib/planter/tag.rb +39 -2
  18. data/lib/planter/version.rb +1 -1
  19. data/lib/planter.rb +30 -17
  20. data/lib/tty-spinner/.editorconfig +9 -0
  21. data/lib/tty-spinner/.github/FUNDING.yml +1 -0
  22. data/lib/tty-spinner/.github/ISSUE_TEMPLATE/BUG_REPORT.md +31 -0
  23. data/lib/tty-spinner/.github/ISSUE_TEMPLATE/FEATURE_REQUEST.md +23 -0
  24. data/lib/tty-spinner/.github/ISSUE_TEMPLATE/config.yml +5 -0
  25. data/lib/tty-spinner/.github/PULL_REQUEST_TEMPLATE.md +19 -0
  26. data/lib/tty-spinner/.github/workflows/ci.yml +59 -0
  27. data/lib/tty-spinner/.gitignore +14 -0
  28. data/lib/tty-spinner/.rspec +2 -0
  29. data/lib/tty-spinner/.rubocop.yml +78 -0
  30. data/lib/tty-spinner/CHANGELOG.md +151 -0
  31. data/lib/tty-spinner/CODE_OF_CONDUCT.md +132 -0
  32. data/lib/tty-spinner/Gemfile +17 -0
  33. data/lib/tty-spinner/LICENSE.txt +22 -0
  34. data/lib/tty-spinner/README.md +581 -0
  35. data/lib/tty-spinner/Rakefile +10 -0
  36. data/lib/tty-spinner/appveyor.yml +33 -0
  37. data/lib/tty-spinner/bin/console +14 -0
  38. data/lib/tty-spinner/bin/setup +8 -0
  39. data/lib/tty-spinner/demo.gif +0 -0
  40. data/lib/tty-spinner/examples/auto_spin.rb +10 -0
  41. data/lib/tty-spinner/examples/basic.rb +10 -0
  42. data/lib/tty-spinner/examples/clear.rb +11 -0
  43. data/lib/tty-spinner/examples/color.rb +14 -0
  44. data/lib/tty-spinner/examples/error.rb +11 -0
  45. data/lib/tty-spinner/examples/formats.rb +13 -0
  46. data/lib/tty-spinner/examples/hide_cursor.rb +14 -0
  47. data/lib/tty-spinner/examples/log.rb +13 -0
  48. data/lib/tty-spinner/examples/multi/basic.rb +15 -0
  49. data/lib/tty-spinner/examples/multi/basic_top_level.rb +15 -0
  50. data/lib/tty-spinner/examples/multi/custom_style.rb +28 -0
  51. data/lib/tty-spinner/examples/multi/files.rb +16 -0
  52. data/lib/tty-spinner/examples/multi/jobs.rb +11 -0
  53. data/lib/tty-spinner/examples/multi/multi.rb +19 -0
  54. data/lib/tty-spinner/examples/multi/multi_top_level.rb +20 -0
  55. data/lib/tty-spinner/examples/multi/pause.rb +28 -0
  56. data/lib/tty-spinner/examples/multi/threaded.rb +30 -0
  57. data/lib/tty-spinner/examples/pause.rb +24 -0
  58. data/lib/tty-spinner/examples/run.rb +20 -0
  59. data/lib/tty-spinner/examples/success.rb +11 -0
  60. data/lib/tty-spinner/examples/threaded.rb +13 -0
  61. data/lib/tty-spinner/examples/update.rb +13 -0
  62. data/lib/tty-spinner/lib/tty/spinner/formats.rb +274 -0
  63. data/lib/tty-spinner/lib/tty/spinner/multi.rb +352 -0
  64. data/lib/tty-spinner/lib/tty/spinner/version.rb +7 -0
  65. data/lib/tty-spinner/lib/tty/spinner.rb +604 -0
  66. data/lib/tty-spinner/lib/tty-spinner.rb +2 -0
  67. data/lib/tty-spinner/spec/spec_helper.rb +52 -0
  68. data/lib/tty-spinner/spec/unit/auto_spin_spec.rb +25 -0
  69. data/lib/tty-spinner/spec/unit/clear_spec.rb +16 -0
  70. data/lib/tty-spinner/spec/unit/error_spec.rb +53 -0
  71. data/lib/tty-spinner/spec/unit/events_spec.rb +35 -0
  72. data/lib/tty-spinner/spec/unit/formats_spec.rb +9 -0
  73. data/lib/tty-spinner/spec/unit/frames_spec.rb +31 -0
  74. data/lib/tty-spinner/spec/unit/hide_cursor_spec.rb +51 -0
  75. data/lib/tty-spinner/spec/unit/job_spec.rb +12 -0
  76. data/lib/tty-spinner/spec/unit/join_spec.rb +10 -0
  77. data/lib/tty-spinner/spec/unit/log_spec.rb +60 -0
  78. data/lib/tty-spinner/spec/unit/multi/auto_spin_spec.rb +32 -0
  79. data/lib/tty-spinner/spec/unit/multi/error_spec.rb +107 -0
  80. data/lib/tty-spinner/spec/unit/multi/line_inset_spec.rb +57 -0
  81. data/lib/tty-spinner/spec/unit/multi/on_spec.rb +11 -0
  82. data/lib/tty-spinner/spec/unit/multi/register_spec.rb +46 -0
  83. data/lib/tty-spinner/spec/unit/multi/spin_spec.rb +101 -0
  84. data/lib/tty-spinner/spec/unit/multi/stop_spec.rb +95 -0
  85. data/lib/tty-spinner/spec/unit/multi/success_spec.rb +108 -0
  86. data/lib/tty-spinner/spec/unit/new_spec.rb +25 -0
  87. data/lib/tty-spinner/spec/unit/pause_spec.rb +43 -0
  88. data/lib/tty-spinner/spec/unit/reset_spec.rb +19 -0
  89. data/lib/tty-spinner/spec/unit/run_spec.rb +30 -0
  90. data/lib/tty-spinner/spec/unit/spin_spec.rb +117 -0
  91. data/lib/tty-spinner/spec/unit/stop_spec.rb +88 -0
  92. data/lib/tty-spinner/spec/unit/success_spec.rb +53 -0
  93. data/lib/tty-spinner/spec/unit/tty_spec.rb +8 -0
  94. data/lib/tty-spinner/spec/unit/update_spec.rb +85 -0
  95. data/lib/tty-spinner/tasks/console.rake +11 -0
  96. data/lib/tty-spinner/tasks/coverage.rake +11 -0
  97. data/lib/tty-spinner/tasks/spec.rake +29 -0
  98. data/lib/tty-spinner/tty-spinner.gemspec +36 -0
  99. data/scripts/runtests.sh +1 -1
  100. data/spec/cli_spec.rb +27 -0
  101. data/spec/spec_helper.rb +26 -0
  102. data/spec/templates/test/_planter.yml +3 -6
  103. data/src/_README.md +5 -3
  104. metadata +86 -2
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../lib/tty-spinner"
4
+
5
+ spinner = TTY::Spinner.new("[:spinner] Task name")
6
+ 20.times do
7
+ spinner.spin
8
+ sleep(0.1)
9
+ end
10
+
11
+ spinner.error("(error)")
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../lib/tty-spinner"
4
+
5
+ TTY::Formats::FORMATS.each_key do |token|
6
+ options = {format: token, hide_cursor: true}
7
+ spinner = TTY::Spinner.new("#{token}: :spinner", options)
8
+ 20.times do
9
+ spinner.spin
10
+ sleep(0.1)
11
+ end
12
+ spinner.stop
13
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "pastel"
4
+ require_relative "../lib/tty-spinner"
5
+
6
+ pastel = Pastel.new
7
+
8
+ format = "[#{pastel.yellow(":spinner")}] " + pastel.yellow("Task name")
9
+ spinner = TTY::Spinner.new(format, success_mark: pastel.green("+"), hide_cursor: true)
10
+ 10.times do
11
+ spinner.spin
12
+ sleep(0.1)
13
+ end
14
+ spinner.success(pastel.green("(successful)"))
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../lib/tty-spinner"
4
+
5
+ spinner = TTY::Spinner.new("[:spinner] processing...", format: :bouncing_ball)
6
+
7
+ 10.times do |i|
8
+ spinner.log("[#{i}] Task")
9
+ sleep(0.1)
10
+ spinner.spin
11
+ end
12
+
13
+ spinner.success
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../lib/tty-spinner"
4
+
5
+ spinners = TTY::Spinner::Multi.new
6
+
7
+ sp1 = spinners.register "[:spinner] one"
8
+ sp2 = spinners.register "[:spinner] two"
9
+ sp3 = spinners.register "[:spinner] three"
10
+
11
+ th1 = Thread.new { 20.times { sleep(0.2); sp1.spin } }
12
+ th2 = Thread.new { 30.times { sleep(0.1); sp2.spin } }
13
+ th3 = Thread.new { 10.times { sleep(0.3); sp3.spin } }
14
+
15
+ [th1, th2, th3].each(&:join)
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../lib/tty-spinner"
4
+
5
+ spinners = TTY::Spinner::Multi.new "[:spinner] main", format: :pulse
6
+
7
+ sp1 = spinners.register "[:spinner] one", format: :classic
8
+ sp2 = spinners.register "[:spinner] two", format: :classic
9
+ sp3 = spinners.register "[:spinner] three", format: :classic
10
+
11
+ th1 = Thread.new { 20.times { sleep(0.2); sp1.spin } }
12
+ th2 = Thread.new { 30.times { sleep(0.1); sp2.spin } }
13
+ th3 = Thread.new { 10.times { sleep(0.3); sp3.spin } }
14
+
15
+ [th1, th2, th3].each(&:join)
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../lib/tty-spinner"
4
+
5
+ opts = {
6
+ style: {
7
+ top: ". ",
8
+ middle: "|-> ",
9
+ bottom: "|__ "
10
+ },
11
+ format: :bouncing_ball
12
+ }
13
+ spinners = TTY::Spinner::Multi.new("[:spinner] Top level spinner", opts)
14
+
15
+ sp1 = spinners.register "[:spinner] one"
16
+ sp2 = spinners.register "[:spinner] two"
17
+ sp3 = spinners.register "[:spinner] three"
18
+
19
+ sp1.auto_spin
20
+ sp2.auto_spin
21
+ sp3.auto_spin
22
+
23
+ sleep(2)
24
+ sp1.success
25
+ sleep 1
26
+ sp2.success
27
+ sleep 1
28
+ sp3.error
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "pastel"
4
+ require_relative "../../lib/tty-spinner"
5
+
6
+ pastel = Pastel.new
7
+ spinners = TTY::Spinner::Multi.new("[:spinner] Downloading files...")
8
+
9
+ %w[file1 file2 file3].each do |file|
10
+ spinners.register("[:spinner] #{file}") do |sp|
11
+ sleep(rand * 5)
12
+ sp.success(pastel.green("success"))
13
+ end
14
+ end
15
+
16
+ spinners.auto_spin
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../lib/tty-spinner"
4
+
5
+ spinners = TTY::Spinner::Multi.new("[:spinner] top")
6
+
7
+ spinners.register("[:spinner] one") { |sp| sleep(2); sp.success("yes 2") }
8
+ spinners.register("[:spinner] two") { |sp| sleep(3); sp.error("no 2") }
9
+ spinners.register("[:spinner] three") { |sp| sleep(1); sp.success("yes 3") }
10
+
11
+ spinners.auto_spin
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../lib/tty-spinner"
4
+
5
+ spinners = TTY::Spinner::Multi.new
6
+
7
+ sp1 = spinners.register "[:spinner] one"
8
+ sp2 = spinners.register "[:spinner] two"
9
+ sp3 = spinners.register "[:spinner] three"
10
+
11
+ sp1.auto_spin
12
+ sp2.auto_spin
13
+ sp3.auto_spin
14
+
15
+ sleep(2)
16
+
17
+ sp1.stop
18
+ sp2.stop
19
+ sp3.stop
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../lib/tty-spinner"
4
+
5
+ spinners = TTY::Spinner::Multi.new("[:spinner] Top level spinner")
6
+
7
+ sp1 = spinners.register "[:spinner] one"
8
+ sp2 = spinners.register "[:spinner] two"
9
+ sp3 = spinners.register "[:spinner] three"
10
+
11
+ sp1.auto_spin
12
+ sp2.auto_spin
13
+ sp3.auto_spin
14
+
15
+ sleep(2)
16
+ sp1.success
17
+ sleep 1
18
+ sp2.success
19
+ sleep 1
20
+ sp3.error
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../lib/tty-spinner"
4
+
5
+ spinners = TTY::Spinner::Multi.new("[:spinner]")
6
+
7
+ sp1 = spinners.register("[:spinner] one")
8
+ sp2 = spinners.register("[:spinner] two")
9
+ sp3 = spinners.register("[:spinner] three")
10
+
11
+ sp1.auto_spin
12
+ sp2.auto_spin
13
+ sp3.auto_spin
14
+
15
+ sleep(1)
16
+
17
+ spinners.pause
18
+
19
+ sleep(1)
20
+
21
+ spinners.resume
22
+
23
+ sleep(1)
24
+
25
+ sp1.stop
26
+ sp2.stop
27
+ sp3.stop
28
+ spinners.stop
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../lib/tty-spinner"
4
+
5
+ def spinner_options
6
+ [
7
+ ":spinner \e[1mNo\e[0m :number Row :line",
8
+ format: :dots,
9
+ error_mark: "✖",
10
+ success_mark: "\e[1m\e[32m✓\e[0m\e[0m"
11
+ ]
12
+ end
13
+
14
+ spinners = TTY::Spinner::Multi.new(*spinner_options)
15
+ threads = []
16
+
17
+ 20.times do |i|
18
+ threads << Thread.new do
19
+ spinner = spinners.register(*spinner_options)
20
+ sleep Random.rand(0.1..0.3)
21
+
22
+ 10.times do
23
+ sleep Random.rand(0.1..0.3)
24
+ spinner.update(number: "(#{i})", line: spinner.row)
25
+ spinner.spin
26
+ end
27
+ end
28
+ end
29
+
30
+ threads.each(&:join)
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../lib/tty-spinner"
4
+
5
+ spinner = TTY::Spinner.new("[:spinner] :title")
6
+ spinner.update(title: "Task name")
7
+
8
+ spinner.auto_spin
9
+
10
+ sleep(2)
11
+
12
+ spinner.update(title: "Paused task name")
13
+ spinner.pause(mark: "?")
14
+
15
+ sleep(2)
16
+
17
+ spinner.resume
18
+ spinner.update(title: "Task name")
19
+
20
+ sleep(2)
21
+
22
+ spinner.stop("done...")
23
+
24
+ puts
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../lib/tty-spinner"
4
+
5
+ # without block
6
+ spinner = TTY::Spinner.new(":title :spinner ...", format: :pulse_3)
7
+
8
+ def long_task
9
+ 10_000_000.times do |n|
10
+ n * n
11
+ end
12
+ end
13
+
14
+ spinner.update(title: "Task 1")
15
+ spinner.run "done" do
16
+ long_task
17
+ end
18
+
19
+ spinner.update(title: "Task 2")
20
+ spinner.run("done") { long_task }
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../lib/tty-spinner"
4
+
5
+ spinner = TTY::Spinner.new("[:spinner] Task name")
6
+ 20.times do
7
+ spinner.spin
8
+ sleep(0.1)
9
+ end
10
+
11
+ spinner.success("(successful)")
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../lib/tty-spinner"
4
+
5
+ spinner = TTY::Spinner.new("[:spinner]")
6
+
7
+ th1 = Thread.new { 10.times { spinner.spin; sleep(0.1) } }
8
+ th2 = Thread.new { 10.times { spinner.spin; sleep(0.1) } }
9
+ th3 = Thread.new { 10.times { spinner.spin; sleep(0.1) } }
10
+
11
+ [th1, th2, th3].each(&:join)
12
+
13
+ spinner.success
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../lib/tty-spinner"
4
+
5
+ spinner = TTY::Spinner.new(":spinner :title", format: :pulse_3)
6
+
7
+ spinner.update(title: "task aaaaa")
8
+
9
+ 20.times { spinner.spin; sleep(0.1) }
10
+
11
+ spinner.update(title: "task b")
12
+
13
+ 20.times { spinner.spin; sleep(0.1) }
@@ -0,0 +1,274 @@
1
+ # frozen_string_literal: true
2
+
3
+ module TTY
4
+ module Formats
5
+ FORMATS = {
6
+ classic: {
7
+ interval: 10,
8
+ frames: %w[| / - \\]
9
+ },
10
+ spin: {
11
+ interval: 10,
12
+ frames: %w[◴ ◷ ◶ ◵]
13
+ },
14
+ spin_2: {
15
+ interval: 10,
16
+ frames: %w[◐ ◓ ◑ ◒]
17
+ },
18
+ spin_3: {
19
+ interval: 10,
20
+ frames: %w[◰ ◳ ◲ ◱]
21
+ },
22
+ spin_4: {
23
+ interval: 10,
24
+ frames: %w[╫ ╪]
25
+ },
26
+ pulse: {
27
+ interval: 10,
28
+ frames: %w[⎺ ⎻ ⎼ ⎽ ⎼ ⎻]
29
+ },
30
+ pulse_2: {
31
+ interval: 15,
32
+ frames: %w[▁ ▃ ▅ ▆ ▇ █ ▇ ▆ ▅ ▃]
33
+ },
34
+ pulse_3: {
35
+ interval: 20,
36
+ frames: %w[▉ ▊ ▋ ▌ ▍ ▎ ▏ ▎ ▍ ▌ ▋ ▊ ▉]
37
+ },
38
+ pulse_4: {
39
+ interval: 10,
40
+ frames: %w[- = ≡ = -]
41
+ },
42
+ dots: {
43
+ interval: 10,
44
+ frames: %w[⠋ ⠙ ⠹ ⠸ ⠼ ⠴ ⠦ ⠧ ⠇ ⠏]
45
+ },
46
+ dots_2: {
47
+ interval: 10,
48
+ frames: %w[⣾ ⣽ ⣻ ⢿ ⡿ ⣟ ⣯ ⣷]
49
+ },
50
+ dots_3: {
51
+ interval: 10,
52
+ frames: %w[⠋ ⠙ ⠚ ⠞ ⠖ ⠦ ⠴ ⠲ ⠳ ⠓]
53
+ },
54
+ dots_4: {
55
+ interval: 10,
56
+ frames: %w[⠄ ⠆ ⠇ ⠋ ⠙ ⠸ ⠰ ⠠ ⠰ ⠸ ⠙ ⠋ ⠇ ⠆]
57
+ },
58
+ dots_5: {
59
+ interval: 10,
60
+ frames: %w[⠋ ⠙ ⠚ ⠒ ⠂ ⠂ ⠒ ⠲ ⠴ ⠦ ⠖ ⠒ ⠐ ⠐ ⠒ ⠓ ⠋]
61
+ },
62
+ dots_6: {
63
+ interval: 10,
64
+ frames: %w[⠁ ⠉ ⠙ ⠚ ⠒ ⠂ ⠂ ⠒ ⠲ ⠴ ⠤ ⠄ ⠄ ⠤ ⠴ ⠲ ⠒ ⠂ ⠂ ⠒ ⠚ ⠙ ⠉ ⠁]
65
+ },
66
+ dots_7: {
67
+ interval: 10,
68
+ frames: %w[⠈ ⠉ ⠋ ⠓ ⠒ ⠐ ⠐ ⠒ ⠖ ⠦ ⠤ ⠠ ⠠ ⠤ ⠦ ⠖ ⠒ ⠐ ⠐ ⠒ ⠓ ⠋ ⠉ ⠈]
69
+ },
70
+ dots_8: {
71
+ interval: 10,
72
+ frames: %w[⠁ ⠁ ⠉ ⠙ ⠚ ⠒ ⠂ ⠂ ⠒ ⠲ ⠴ ⠤ ⠄ ⠄ ⠤ ⠠ ⠠ ⠤ ⠦ ⠖ ⠒ ⠐ ⠐ ⠒ ⠓ ⠋ ⠉ ⠈ ⠈]
73
+ },
74
+ dots_9: {
75
+ interval: 10,
76
+ frames: %w[⢹ ⢺ ⢼ ⣸ ⣇ ⡧ ⡗ ⡏]
77
+ },
78
+ dots_10: {
79
+ interval: 10,
80
+ frames: %w[⢄ ⢂ ⢁ ⡁ ⡈ ⡐ ⡠]
81
+ },
82
+ dots_11: {
83
+ interval: 10,
84
+ frames: %w[⠁ ⠂ ⠄ ⡀ ⢀ ⠠ ⠐ ⠈]
85
+ },
86
+ arrow: {
87
+ interval: 10,
88
+ frames: %w[← ↖ ↑ ↗ → ↘ ↓ ↙]
89
+ },
90
+ arrow_pulse: {
91
+ interval: 10,
92
+ frames: [
93
+ "▹▹▹▹▹",
94
+ "▸▹▹▹▹",
95
+ "▹▸▹▹▹",
96
+ "▹▹▸▹▹",
97
+ "▹▹▹▸▹",
98
+ "▹▹▹▹▸"
99
+ ]
100
+ },
101
+ triangle: {
102
+ interval: 10,
103
+ frames: %w[◢ ◣ ◤ ◥]
104
+ },
105
+ arc: {
106
+ interval: 10,
107
+ frames: %w[◜ ◠ ◝ ◞ ◡ ◟]
108
+ },
109
+ pipe: {
110
+ interval: 10,
111
+ frames: %w[┤ ┘ ┴ └ ├ ┌ ┬ ┐]
112
+ },
113
+ bouncing: {
114
+ interval: 10,
115
+ frames: [
116
+ "[ ]",
117
+ "[ =]",
118
+ "[ ==]",
119
+ "[ ===]",
120
+ "[====]",
121
+ "[=== ]",
122
+ "[== ]",
123
+ "[= ]"
124
+ ]
125
+ },
126
+ bouncing_ball: {
127
+ interval: 10,
128
+ frames: [
129
+ "( ● )",
130
+ "( ● )",
131
+ "( ● )",
132
+ "( ● )",
133
+ "( ●)",
134
+ "( ● )",
135
+ "( ● )",
136
+ "( ● )",
137
+ "( ● )",
138
+ "(● )"
139
+ ]
140
+ },
141
+ bounce: {
142
+ interval: 10,
143
+ frames: %w[⠁ ⠂ ⠄ ⠂]
144
+ },
145
+ box_bounce: {
146
+ interval: 10,
147
+ frames: %w[▌ ▀ ▐ ▄]
148
+ },
149
+ box_bounce_2: {
150
+ interval: 10,
151
+ frames: %w[▖ ▘ ▝ ▗]
152
+ },
153
+ star: {
154
+ interval: 10,
155
+ frames: %w[✶ ✸ ✹ ✺ ✹ ✷]
156
+ },
157
+ toggle: {
158
+ interval: 10,
159
+ frames: %w[■ □ ▪ ▫]
160
+ },
161
+ balloon: {
162
+ interval: 10,
163
+ frames: [" ", ".", "o", "O", "@", "*", " "]
164
+ },
165
+ balloon_2: {
166
+ interval: 10,
167
+ frames: %w[. o O ° O o .]
168
+ },
169
+ flip: {
170
+ interval: 10,
171
+ frames: %w[- ◡ ⊙ - ◠]
172
+ },
173
+ toss: {
174
+ interval: 10,
175
+ frames: %w[_ _ _ - ` ` ' ´ - _ _ _]
176
+ },
177
+ lighthouse: {
178
+ interval: 10,
179
+ frames: ["∙∙∙", "●∙∙", "∙●∙", "∙∙●", "∙∙∙"]
180
+ },
181
+ points: {
182
+ interval: 10,
183
+ frames: [". ", ".. ", "...", " "]
184
+ },
185
+ points_2: {
186
+ interval: 10,
187
+ frames: [". ", ".. ", "...", " ..", " .", " "]
188
+ },
189
+ burger: {
190
+ interval: 6,
191
+ frames: %w[☱ ☲ ☴]
192
+ },
193
+ dance: {
194
+ interval: 10,
195
+ frames: [
196
+ ">))'>",
197
+ " >))'>",
198
+ " >))'>",
199
+ " >))'>",
200
+ " >))'>",
201
+ " <'((<",
202
+ " <'((<",
203
+ " <'((<"
204
+ ]
205
+ },
206
+ shark: {
207
+ interval: 10,
208
+ frames: [
209
+ "▐|\\____________▌",
210
+ "▐_|\\___________▌",
211
+ "▐__|\\__________▌",
212
+ "▐___|\\_________▌",
213
+ "▐____|\\________▌",
214
+ "▐_____|\\_______▌",
215
+ "▐______|\\______▌",
216
+ "▐_______|\\_____▌",
217
+ "▐________|\\____▌",
218
+ "▐_________|\\___▌",
219
+ "▐__________|\\__▌",
220
+ "▐___________|\\_▌",
221
+ "▐____________|\\▌",
222
+ "▐____________/|▌",
223
+ "▐___________/|_▌",
224
+ "▐__________/|__▌",
225
+ "▐_________/|___▌",
226
+ "▐________/|____▌",
227
+ "▐_______/|_____▌",
228
+ "▐______/|______▌",
229
+ "▐_____/|_______▌",
230
+ "▐____/|________▌",
231
+ "▐___/|_________▌",
232
+ "▐__/|__________▌",
233
+ "▐_/|___________▌",
234
+ "▐/|____________▌"
235
+ ]
236
+ },
237
+ pong: {
238
+ interval: 10,
239
+ frames: [
240
+ "▐⠂ ▌",
241
+ "▐⠈ ▌",
242
+ "▐ ⠂ ▌",
243
+ "▐ ⠠ ▌",
244
+ "▐ ⡀ ▌",
245
+ "▐ ⠠ ▌",
246
+ "▐ ⠂ ▌",
247
+ "▐ ⠈ ▌",
248
+ "▐ ⠂ ▌",
249
+ "▐ ⠠ ▌",
250
+ "▐ ⡀ ▌",
251
+ "▐ ⠠ ▌",
252
+ "▐ ⠂ ▌",
253
+ "▐ ⠈ ▌",
254
+ "▐ ⠂▌",
255
+ "▐ ⠠▌",
256
+ "▐ ⡀▌",
257
+ "▐ ⠠ ▌",
258
+ "▐ ⠂ ▌",
259
+ "▐ ⠈ ▌",
260
+ "▐ ⠂ ▌",
261
+ "▐ ⠠ ▌",
262
+ "▐ ⡀ ▌",
263
+ "▐ ⠠ ▌",
264
+ "▐ ⠂ ▌",
265
+ "▐ ⠈ ▌",
266
+ "▐ ⠂ ▌",
267
+ "▐ ⠠ ▌",
268
+ "▐ ⡀ ▌",
269
+ "▐⠠ ▌"
270
+ ]
271
+ }
272
+ }.freeze
273
+ end # Formats
274
+ end # TTY