bopeep 0.1.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +1 -0
- data/bin/bopeep +7 -0
- data/bin/console-playground +123 -0
- data/lib/bopeep.rb +2294 -0
- metadata +200 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 0c6ba8791b9e8e28d2650fcbed8846c95b86d210758362119e6ebaf67ae79644
|
4
|
+
data.tar.gz: 74d7390521096432e82a3e5aca5eb8ce70ed090f46136aa64bc2adaa758e739c
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 57bb72361cf6ebbee6602ba7988cd2760b519b16c5feccf05d1ff6074bdc069fb036320182871664bc9a3720085d4a0a4955ed65133866edb7e731db0a384df4
|
7
|
+
data.tar.gz: 3ceb06f5ffdc5c10643a21eee61623081736165c211b2bf16dbf53e2fee0df90d14879b6434bada1b5c0b46129d2310ca39489bac5f17195d1b68bfbfea5d7ed
|
data/README.md
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
# bopeep
|
data/bin/bopeep
ADDED
@@ -0,0 +1,123 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "simplecov"
|
4
|
+
SimpleCov.start do
|
5
|
+
add_filter %r{^/(?:bopeep|test)/}
|
6
|
+
# For running on ruby 2.3 on CI. Latest simplecov requires ruby 2.4+ and `enable_coverage`
|
7
|
+
# only exists on the latest versions
|
8
|
+
respond_to?(:enable_coverage) and enable_coverage(:branch)
|
9
|
+
|
10
|
+
# Combine coverage results generated here to what's generated by the test suite
|
11
|
+
command_name "Unit Tests"
|
12
|
+
end
|
13
|
+
|
14
|
+
$:.unshift(File.expand_path(File.join("..", "..", "lib"), __FILE__))
|
15
|
+
|
16
|
+
if ENV["BYEBUG_REMOTE"] == "1"
|
17
|
+
require "byebug"
|
18
|
+
require "byebug/core"
|
19
|
+
Byebug.wait_connection = true
|
20
|
+
Byebug.start_server("localhost", 5000)
|
21
|
+
end
|
22
|
+
|
23
|
+
require "pry"
|
24
|
+
|
25
|
+
# NOTE: Unsure why `"set"` needs to be loaded here
|
26
|
+
require "bopeep"
|
27
|
+
|
28
|
+
console = BoPeep::Console.new
|
29
|
+
|
30
|
+
ctpa_town = BoPeep::Host.from("randy@ctpa-town.com")
|
31
|
+
sodo_sopa = BoPeep::Host.from("loo@sodo-sopa.com")
|
32
|
+
nomo_auchi = BoPeep::Host.from("pc@nomo-auchi.com")
|
33
|
+
lomo_robo = BoPeep::Host.from("luke@lomo-robo.com")
|
34
|
+
|
35
|
+
BoPeep::Console.hostname_width = [ctpa_town, sodo_sopa, nomo_auchi].map { |host| host.address.length }.max
|
36
|
+
|
37
|
+
console.redirecting_stdout_and_stderr do
|
38
|
+
# `mirame` is an example of content spanning multiple lines with its last line being longer
|
39
|
+
# than 0.
|
40
|
+
mirame = console.print_content "mirame!\n ahora! "
|
41
|
+
|
42
|
+
# We follow `mirame` with content on the same line; when we reset `mirame` to empty text later,
|
43
|
+
# this ensures content is correctly reflowed
|
44
|
+
console.print BoPeep::Console::SGR("buscame?").with(text_color: :green, effect: :underline)
|
45
|
+
|
46
|
+
sleep 2
|
47
|
+
|
48
|
+
# Add a `HostStatus` to check that changing host status after multi-line and single-line content
|
49
|
+
# works as expected
|
50
|
+
host_line_1 = BoPeep::Console::HostStatus.new(ctpa_town, console)
|
51
|
+
|
52
|
+
sleep 2
|
53
|
+
|
54
|
+
# Start a line with single-line content
|
55
|
+
que_tal = console.print_content "que tal "
|
56
|
+
|
57
|
+
sleep 2
|
58
|
+
|
59
|
+
# Add a `HostStatus`
|
60
|
+
host_line_2 = BoPeep::Console::HostStatus.new(sodo_sopa, console)
|
61
|
+
|
62
|
+
sleep 2
|
63
|
+
|
64
|
+
# Reset `mirame` to an empty string with SGR effects to check SGR sequences don't affect the
|
65
|
+
# `last_line_length` of the content
|
66
|
+
mirame.text = BoPeep::Console::SGR("").with(text_color: :cyan, effect: :strikethrough)
|
67
|
+
|
68
|
+
sleep 2
|
69
|
+
|
70
|
+
# Update the status of `host_line_1` to check that content after it is re-printed correctly
|
71
|
+
host_line_1.started!
|
72
|
+
|
73
|
+
sleep 2
|
74
|
+
|
75
|
+
# Add content using `Kernel#print` and `IOProxy#print` to test `IOProxy`
|
76
|
+
print "no me cambies! "
|
77
|
+
$stdout.print BoPeep::Console::SGR("dejame aqui! ").with(text_color: :red, effect: :blink_slow)
|
78
|
+
|
79
|
+
# Add more inline content
|
80
|
+
que_haces = console.print_content "que haces? "
|
81
|
+
|
82
|
+
sleep 2
|
83
|
+
|
84
|
+
# Add two host statuses
|
85
|
+
host_line_3 = BoPeep::Console::HostStatus.new(nomo_auchi, console)
|
86
|
+
|
87
|
+
sleep 2
|
88
|
+
|
89
|
+
host_line_4 = BoPeep::Console::HostStatus.new(lomo_robo, console)
|
90
|
+
|
91
|
+
$stdout.puts "me quedo aqui abajo"
|
92
|
+
|
93
|
+
sleep 2
|
94
|
+
|
95
|
+
# Change text so it is longer to check that content after it is reflowed correctly
|
96
|
+
que_tal.text = "que fue mijo?! "
|
97
|
+
|
98
|
+
sleep 2
|
99
|
+
|
100
|
+
host_line_4.started!
|
101
|
+
|
102
|
+
sleep 2
|
103
|
+
|
104
|
+
host_line_2.failed! <<~CONTENT
|
105
|
+
STDOUT: (none)
|
106
|
+
STDERR: unbound variable `$der'
|
107
|
+
CONTENT
|
108
|
+
|
109
|
+
sleep 2
|
110
|
+
|
111
|
+
que_haces.text = BoPeep::Console::SGR("cuanto quieres? ").with(text_color: :magenta)
|
112
|
+
|
113
|
+
sleep 2
|
114
|
+
|
115
|
+
host_line_3.failed! <<~CONTENT
|
116
|
+
STDOUT: (none)
|
117
|
+
STDERR: whoopsie!
|
118
|
+
CONTENT
|
119
|
+
|
120
|
+
sleep 2
|
121
|
+
|
122
|
+
host_line_4.success!
|
123
|
+
end
|