logpoop 1.1.1 → 2.0.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.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- MzI1NDY1ODQzZTUxZDc2NzE4OWIyYWYxMDIwY2E2ZmQwOTA5OTNkYg==
5
- data.tar.gz: !binary |-
6
- OTMwZmY0ZjRiYjIzNjA2YWVlNDg4MjE2ZDM5YWU1OTc3NDRmYzIzZA==
2
+ SHA1:
3
+ metadata.gz: fc85b087b80104e55badcc729cf5e0daf97a35f5
4
+ data.tar.gz: 67a0fb5d38fc6aea683373b6e358be4d637213e4
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- NGIzNGY2MTJmZGQ1OTVhOGU1YmRhNzdhMTg1YTI5NzA1ZGIzMzZhZmNmMTNl
10
- Y2E1Yjg0NTEwZDIxZjA4YzhkMmU4NTk0ZjM5ZjA5MWFlMWEzY2VhOTU4YzQx
11
- ZTIzZmU2ZWZjYjI2MjkxODhhOGNlM2M1ZjlmYzMwZTFkMWNhYzk=
12
- data.tar.gz: !binary |-
13
- N2FhNjQ3NzczNTEyYWYxNDM1OWY4YTY1MWJjNjVmNDlkMTY3ZjY4YWYxZTc3
14
- MDFhODEzZTFlNGE5NmQ0OTlmZGViZWEwYzVlODE0MzYzYzM5OWY4M2U5M2Nj
15
- YmJkNTc5YTk0ZDdiMmI1ZDI3MzY0OWEzZDRmMjlkYWIxM2U2MTM=
6
+ metadata.gz: 6ba7bb8351eaddd5e6319394874490f8bc403c3ef7a283a161b0fbe7a9dbc9c0f164b45f839dfe41271fc74c342be2e1aa8e3f03540fd9d1a7bf1d5e28297344
7
+ data.tar.gz: 53734928f125e157b32fd1d243ea42ae1014bd2cd742648b9d8847985d9ef79bd8e9bb491dfc8a7689bb04b7db890228fe6e6d40bf9efc1a6c32e14f47ab42a7
data/Rakefile CHANGED
@@ -1,31 +1,6 @@
1
1
  require 'rubygems'
2
- require 'bundler'
3
- begin
4
- Bundler.setup(:default, :development)
5
- rescue Bundler::BundlerError => e
6
- $stderr.puts e.message
7
- $stderr.puts "Run `bundle install` to install missing gems"
8
- exit e.status_code
9
- end
10
2
  require 'rake'
11
3
 
12
- require 'jeweler'
13
- Jeweler::Tasks.new do |gem|
14
- # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
15
- gem.name = "logpoop"
16
- gem.homepage = "http://github.com/unclebilly/logpoop"
17
- gem.license = "MIT"
18
- gem.summary = %Q{Quick, look busy! Print some poop in your terminals!}
19
- gem.description = %Q{This gem installs a script called 'logpoop' that, when run, fills up your active terminal sessions with crap (so that you look really busy). }
20
- gem.email = "billy.reisinger@gmail.com"
21
- gem.authors = ["Billy Reisinger"]
22
- # Include your dependencies below. Runtime dependencies are required when using your gem,
23
- # and development dependencies are only needed for development (ie running rake tasks, tests, etc)
24
- # gem.add_runtime_dependency 'jabber4r', '> 0.1'
25
- # gem.add_development_dependency 'rspec', '> 1.2.3'
26
- end
27
- Jeweler::RubygemsDotOrgTasks.new
28
-
29
4
  require 'rake/testtask'
30
5
  Rake::TestTask.new(:test) do |test|
31
6
  test.libs << 'lib' << 'test'
@@ -34,13 +9,3 @@ Rake::TestTask.new(:test) do |test|
34
9
  end
35
10
 
36
11
  task :default => :test
37
-
38
- require 'rake/rdoctask'
39
- Rake::RDocTask.new do |rdoc|
40
- version = File.exist?('VERSION') ? File.read('VERSION') : ""
41
-
42
- rdoc.rdoc_dir = 'rdoc'
43
- rdoc.title = "logpoop #{version}"
44
- rdoc.rdoc_files.include('README*')
45
- rdoc.rdoc_files.include('lib/**/*.rb')
46
- end
@@ -1,11 +1,13 @@
1
1
  require 'optparse'
2
2
  require 'logpoop/runner/context'
3
3
  require 'logpoop/runner/make'
4
+ require 'logpoop/runner/multi_print'
4
5
  require 'logpoop/runner/multi_tail'
5
6
  require 'logpoop/runner/poop'
6
7
  require 'logpoop/runner/test_run'
7
8
  require 'logpoop/simulator/base'
8
9
  require 'logpoop/simulator/make'
10
+ require 'logpoop/simulator/print'
9
11
  require 'logpoop/simulator/tail_eff'
10
12
  require 'logpoop/simulator/test_run'
11
13
 
@@ -17,6 +19,13 @@ Description:
17
19
  STR
18
20
  end
19
21
 
22
+ POOP_TYPES=[
23
+ "make - simulate compiling something for a long, long, looooong time ",
24
+ "poop - take a dump in your terminal",
25
+ "print - print the given text over and over in every terminal",
26
+ "tail - simulate 'tail -f' in all your open terminals",
27
+ "test - simulate a console test run (needs two terminals open)",
28
+ ]
20
29
  def self.parse_options
21
30
  options = {
22
31
  :type => :tail,
@@ -32,9 +41,12 @@ STR
32
41
  opt.on("-d", "--log_dir DIRECTORY", "Log directory") do |d|
33
42
  options[:log_dir] = d
34
43
  end
35
- opt.on("-t", "--type TYPE", "Poop type. Available types:\n\tpoop - take a dump in your terminal\n\ttail - simulate 'tail -f' in all your open terminals\n\ttest - simulate a console test run (needs two terminals open)\n\tmake - simulate compiling something for a long, long, looooong time") do |t|
44
+ opt.on("-t", "--type TYPE", "Poop type. Available types: \t\n#{POOP_TYPES.join("\t\n")}") do |t|
36
45
  options[:type] = t
37
46
  end
47
+ opt.on("-p", "--print TEXT", "Text to print (only valid with poop type 'print')") do |t|
48
+ options[:text] = t
49
+ end
38
50
  end
39
51
  o.parse!
40
52
  options
@@ -57,4 +69,4 @@ end
57
69
 
58
70
  Signal.trap("TERM") do
59
71
  Runner::Context.stop
60
- end
72
+ end
@@ -0,0 +1,168 @@
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
+ ,::::;:::::;;;;;;;;''''''''''''''''''''''''''+'';''';''''+'''';;:;
77
+ `::::::::;;;;;;;;'';;;;''''''''''''''''''''''''';'''''''';'';;;;;::
78
+ .:::::::;;;;;;;;';'';';';'';''''''''''''''''''''+'''';''''''';;;;:,
79
+ :::::;;;;;;;;';;;'''''''';';;'''''''''''''''''''+'''';'''';';;;;;:.
80
+ :::;;;;;;;;;;;''';''''''''''''';;'''''''''''''''''''';;;''''';;';:
81
+ .,:;;;;;;;;''''''''''''''''''''''''''''''''''''''';''''';';'';;'';:
82
+ `:::;;;;;;;;';;';''';'''''''''''''''''''''''';'''''''''''';;;''';;:.
83
+ `:::;;;;;;;'''''';;''''''''''''''''''''''''';+'''''''''';';';';;;;;:`
84
+ `::;;;;;;;;';;'';''''''''''''''''''';''''''''++'':''''';'';'';;;;;;;:
85
+ :::;;;;;;;;;;;';'''''';'''''''''''''';'''''+''';''''''''''';;;;;;;;;:`
86
+ .::;;;;;;;;;;''';''''''''''''''''''''''''''''''''''+'+';'''';';;;;';;:
87
+ ,:::;;;;;;;';;;''''''''''''''''''''''''''''''''''''''++'''''';';;;;;;;`
88
+ `::::;;;;;;;;';''''''''''''''''''''''''''''''';''''''''''''''';'';;;;;:,
89
+ .::;;:;;;;;;;'''''''';;'''''''''''''''''''''''''''''''''''''''';'';';;;:`
90
+ ,::::;;;;;;;;;;;;''''''''''''''''''''''''''''';'''''''''''''''';+;;;;;;:,
91
+ ,::::;;;;;;;;;;;;'''''''''''''''''';''''''''''''''''''''''''';;'''';;;;;;;`
92
+ ,:::;;;;;;;;;;;;''';;''''''''''''''''''''''''''';''''''''''''''''''';;';';.
93
+ ,:;;;;;;;;;;;;;;;''';''''''''''''''++;'''''''''''''''''''''''''':'''';;;;;;:
94
+ `,:;;;;;;';;;'';;;;'''''''''''''''''''''''''''''''''''''''''''''''''''''';;;':`
95
+ `::;;;''''';;;;''''';+'++'''';'''''''';'''''''''''''''''''''''''''''''''''';;;;.
96
+ .::::''';''++';''''''+++;;;''''''''''''''''''''''''''''''''''''''''''''''''';;;;:`
97
+ .:;:;;+++++#';'++'+##+++';''''''''''''''''''''''''''''''''''''';'''''''''';''';;;;,
98
+ `:;';''';;;;;;;;;;;'''';;''''''''''''''''''''''''''''';'''''''''''''';'''''''';';;;;:`
99
+ `::;;;;;::;;;;;';;;;;;';;''''''''''''''''''''''''''''''''''''''''''''''''''';'''';';;;,
100
+ `;;;:;;;;;;;;;;''';'''''''';'''''''''''''''+''''''''''''''''''''''''''''''''''''''';';;:`
101
+ ,:;;;;;;;;;;;';;;;;''''''''''''''''''''''''''+'''''''''''''';''''''''''''''';''''';';;;;:.
102
+ .;;::;;;;;;;;;'';'''''''''''''''''''''+''''''''#'''''''''''''''''''''''''';''''''''';'';;;;,`
103
+ ::;;;;;;'''';;;''''''''''''''''''''''''''''+++'+'''''''''''''''''''''''''''+'''''';;''''';;;.
104
+ ,:;::;;:;;;;;;'''''''''';'''''''''''''''''''''''+'''''''''''''''''''''''''''''''';;;;''''';;;:`
105
+ `;::;;;;;;;;;'';';;;;'''';'''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;;;;';';;:.
106
+ ,::::;;;;;;;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';'''''''''';''';;;;:`
107
+ ,,::;;;;;;;;;;;''''''''''''''''''''''''''''''''';;;''''''''''''''''''''''''''''''''''''''';;';;;;.
108
+ `::::;;;;;''';;;''''''''''''''''''''''''''''''';'''''''''''''''''''''+''''''''''''''''';;''';;';;;:`
109
+ :;::;;;;;;;;'''''';'''''''''''''''''''''''''''''''';'''''''''''''''''''''''''''''''''''''';';;;;;;.
110
+ .;;;;;;;';;;;''''''''';;'''''''''''''''''''''''''''''''''''''''''''''''';:;';'''''''''''''''';'';;::`
111
+ ,;;;';;;;;;;;'''''''''''''''''''''''''''''''''''''''''''''';''''''''';;;''''''''''';''''''';'''';;;;.
112
+ :;::;;;;;''';;;;'';''''''';''''';'''''''''''''''''''''''''''''''''';''''''''''''''''''''''';;';'';;::
113
+ `;::;;;;;;'';;;'''''''''''''''''''''''''''''''''''''';''''''''''''''''''''''''''''''''''''''''';'';;;:`
114
+ .::;;;;;;;';''';''''''''''''''''''''''''''''''''''''''''''''''''''''''';''''''''''''''''''''''''''';;;.
115
+ ,,;;;;;;;;''''''''''''''''''''''''''''''''''''''''''''''''''''';,:;..''''''''''''''''''''''''''';';;;;:
116
+ .::;;;;'';''';''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';'''':'';'';'''';;;;;:`
117
+ :::;;;'';;'';'''''''''''''''''''''''';''''''''''''''''':;'''''''''''''''''''''''''.'''''''''';'';;;;;:,
118
+ ,;;;;;;';'''''''''''''''''''''''''''''''''''';;''''''''''''''''''''':'''''':''''''''''';;;''''';;;;;;;,
119
+ `:;;;'';'';''''''''''''''''''''''''''';''''';''';'''';''';`''''''''''''''''''''';''''''''''''';';';;;:,
120
+ :;;;;'';''''''''''''''''''''''''''''''''''';:;:'''''';'''''''''''''''''','''''''''''''''';''';'';;;;;:
121
+ ,';;;;;'';;'''''''''''''''''';''''''''''''';''';'::;,`;':;''';''';;;;':::';;''''''''''';''''''';;;;;':
122
+ ;:;;;';';''''''''''''''''':'''''''''''''''''''''',.;;'';,;''':';;;; ,;.;;';; '''''''''''''''''';;;;;:`
123
+ :;;;'''''';';''''''''''''''''''''''''''''''''''''''.;;'':''';;`'';:',,;:;;''''''''''''''''''''''';;;:`
124
+ `;;;;''';''''''''''''''''''''''''''''''''''''''''''''''':;.:';: ,:;';.,;',',;'';''','''';'';;''';;;;:`
125
+ ;;;;;''''''''''''''''''''''''''''':'''''''''''''''';;;'::,:;,;;;;''';:'.;:;';'':'''''''''';''';;;;;:.
126
+ .;;;;'''''''''''''''''''''''''''''''''''';'''';'':;'''''';'',..::';'''.;:;'''';';''''''';;';;;;;;;;:`
127
+ ::;;;'''''''''''';'''''''''''''''''';''''''';'';,::'.;,';;';':;:;;::'';':';.,';;'';;''''';;;;;;';;,
128
+ ::;;;''''''''''''''''''''''''''''''':;;'''''''':;'';;;'';'':;' ';;;';:';'';'';'';''';;;;;;;;:';;;;.
129
+ ;;;;;'''''''''''''''''''''''''''''''''''''';;;,';':';::;,:`,:.`;'';''';''';;';;;;'''''';'';;;;;;;`
130
+ ,;;;;'''''''''''''''''''''''''''''':'''''';''';':;;;:;.;''';::',;'';;'';';;'';;';;'';;';;';;;;;;:`
131
+ :;;;;''''''''''''';''''''''''''''';''''';;'':''''''.,'..'',';;';;:`';'''`';';''';;';';;;;';;;;;,
132
+ ,:;;;'''''''''''''''';'''''''''''';;'';',;::,''''';';.`;''''';;;'';;';''';;;;'''';;;''';';;;;;:,
133
+ .;;;;''''''''''''''''''.'''+'';'''';;:,:'''';';'''''';;:;'';;';;;;'';;;;;;;;;';;;;;;';;;;;;;;;,.
134
+ :;;;''''''''''''''''''''''''+;''';`:,`:,;;''.,.;'''''';;;;'',';;'';;;;;';''''';';;;;;;;;;;;:,`
135
+ :;;''''''''''''''''''''';.';;'''';;;::.`.;'' .;:''''''';;;'';;;;;';;;;;';;;';';;;;;;;;::;:`
136
+ `;;;''';'''''''''''''''':;;`:''''''';'.; ;;;';,';''''''''''';;;;;;;;;;;;;;;;;;';;;;;;:;:,`
137
+ ,;;;'''''''''''''';''''''';;',''''''';;'':';'';::''''''';;'::;;'';;;;';;;;;'';;;;;;;;:`
138
+ :;;'''''''''''''''''''''':;,;'::;'''';;;;;'';;';;;;;;'';''';;;;;;;;';;';';;;;;;;;;;,`
139
+ `:;;;''''''''''''''''';+,+'',;'''''';;;;'';;;;;:'';';''';'';';'';';;';'';;;;;;;;;;,`
140
+ ,:;;''''''''''''''''''''''''''.'',';.`;;;;;;;;;''';;';;;';;;;;'';';;';;;;;;;;;;::.
141
+ ,:;;;''''''''''''''''''''''''','';':``,: ';';;;;';:'''''';'';;';;;;;';'';;;;;:,`
142
+ ,:;;;''''''''''''''''''''''''''''';'',.,;'';'';'';;';''';;;;;'';;';';;;;;:.`
143
+ ,:;;''''''''''''''''''''''';'''''''''',;,:';;:''''''';';''';';;;;;;;;;:.`
144
+ ;;:;'''''''''''''''''''''''';''''';''''''.':;':'''''''''';;';;;;;;:,`
145
+ :::;''''''''''''''''''''''';'''''':;''+'',:,''''''''''''';;;;;;:.
146
+ ::;;''''''''''''''''''''';';;'''''';'''''';;''';;;'''';;;;;;.`
147
+ `::;;''''''''''''''''''''''''''''';;:';''''';''''''''''';;:.`
148
+ .::;;''''''''''':'''''''''''''':`'';'';'''';'';;''''''';;,`
149
+ .:;;''''''''',':;''';'''''''''.:;;';;'''''':'''';''';;;;.
150
+ ,;;;''''''''''''''''''''''':;''.''':;''''':''''''''';;.
151
+ `:;;;'''''''''',;''''''';'';''';';'''''',;''''';''';',
152
+ :;;'''''''''''';;''''''';;`:';`:;''''''';;'''''''';,
153
+ .:;;''''''''';;,.;'''+'';`:,''`:;''''''';;''''''';:`
154
+ `:;;;';''''''';..`:;''';.`;:;,,';'''''''';'''''';:`
155
+ ,:;;;;';';';' ,,:;;''''::;:`.';,'''''''''';'';;:.
156
+ `:;;;';''''';::;''';'''.`:..,;'';'''''';''';;;:.`
157
+ `:;;;;;'''';';'''''''';..;. ;'';'''''';''';;:`
158
+ `:;;;;';''';''''''';;;:;''':''.''''''''';::`
159
+ .:;;;;'''';'''''''''''''' ;;'''''''';';;:`
160
+ `:;;;;;';';;;;;''''';;;;,;;''''';;';';:`
161
+ .:;;;;;;;;;;;;;;';;';;;;;;''';'';;;,`
162
+ .;;;;;;;;;''';;;';;;;;;;;;';';;;;.
163
+ .;;'';''';;;'''';;;;;;;';;;;;;:`
164
+ `,;;;;;';;;';;;;;;;';;;;;;;,
165
+ `;;;;;';;';';;:;;;;;;;;.
166
+ .:;;;;;;;;;';;;;;;:.
167
+ `,,::::;,,```
168
+
@@ -0,0 +1,81 @@
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
+ ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
77
+ ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,`
78
+ `,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,`
79
+ .,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.`
80
+ `..,,,,,,,,,,,,,,,,,,,,,,,,,,,,.`
81
+
@@ -0,0 +1,30 @@
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
+ ░░░░░▒▓███████████████████████████▓░░░░░░
@@ -0,0 +1,39 @@
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
+ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
@@ -0,0 +1,40 @@
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
+ ╓╓╓╓╓╓╓╓╓╓╓░╓░╓╓╓╓╓░╓╓╓╓╓╓╓░╓╓╓╓╓░╓╓╓╓╓╓
@@ -1,6 +1,6 @@
1
1
  module Runner
2
2
  class Context
3
- # Get an array of open IO objects attached to existing terminal sessions. The current terminal
3
+ # Get a hash of tty names / open IO objects attached to existing terminal sessions. The current terminal
4
4
  # (the one executing this program) will always be first.
5
5
  def self.ttys(nums=[])
6
6
  this_tty=`tty`.strip
@@ -14,9 +14,12 @@ module Runner
14
14
  end
15
15
 
16
16
  other_ttys.reject!{|t| t == this_tty}
17
- [this_tty].concat(other_ttys).map{|f| IO.sysopen(f, 'w')}.map{|n| IO.new(n, 'w')}
17
+ ios = [this_tty].concat(other_ttys).map do |f|
18
+ [f, IO.new(IO.sysopen(f, 'w'), 'w')]
19
+ end
20
+ Hash[*ios.flatten]
18
21
  end
19
-
22
+
20
23
  # A list of the currently-running simulators
21
24
  def self.simulators
22
25
  @@simulators ||= []
@@ -29,7 +32,7 @@ module Runner
29
32
 
30
33
  def self.run(options={})
31
34
  @@options = options
32
- runner(@@options[:type]).new.run
35
+ runner(@@options[:type]).new.run(@@options)
33
36
  end
34
37
 
35
38
  def self.stop
@@ -41,8 +44,9 @@ module Runner
41
44
  :tail => MultiTail,
42
45
  :test => TestRun,
43
46
  :poop => Poop,
44
- :make => Make
47
+ :make => Make,
48
+ :print => MultiPrint
45
49
  }[opt.to_sym]
46
50
  end
47
51
  end
48
- end
52
+ end
@@ -1,7 +1,7 @@
1
1
  module Runner
2
2
  class Make
3
- def run
4
- stdout, other_tty = Context.ttys[0..1]
3
+ def run(opts={})
4
+ stdout, other_tty = Context.ttys.values[0..1]
5
5
  threads = []
6
6
  threads << Thread.new(stdout) do |myout|
7
7
  sim = Simulator::Make.new(myout)
@@ -13,4 +13,4 @@ module Runner
13
13
 
14
14
 
15
15
  end
16
- end
16
+ end
@@ -0,0 +1,34 @@
1
+ module Runner
2
+ class MultiPrint
3
+ def run(opts={})
4
+ raise "You must supply text" unless opts[:text]
5
+ run_all(Context.ttys, opts[:text])
6
+ end
7
+
8
+ private
9
+
10
+ def terminal_size(tty_name)
11
+ case RUBY_PLATFORM
12
+ when /darwin/
13
+ `stty -f #{tty_name} size`
14
+ when /linux/
15
+ `stty -F #{tty_name} size`
16
+ else
17
+ "80 80"
18
+ end.strip.split.map(&:to_i)
19
+ end
20
+
21
+ def run_all(ttys, text)
22
+ threads = []
23
+ ttys.each do |name, tty|
24
+ threads << Thread.new(name, tty, text) do |myname, mytty, mytext|
25
+ size = terminal_size(myname).last
26
+ simulator = Simulator::Print.new(tty, mytext, size)
27
+ Context.simulators << simulator
28
+ simulator.fake_it
29
+ end
30
+ end
31
+ threads.map(&:join)
32
+ end
33
+ end
34
+ end
@@ -1,7 +1,7 @@
1
1
  module Runner
2
2
  class MultiTail
3
- def run
4
- ttys = Context.ttys
3
+ def run(opts={})
4
+ ttys = Context.ttys.values
5
5
  logs = Context.logs[0..ttys.length-1]
6
6
  run_all(ttys,logs)
7
7
  end
@@ -19,4 +19,4 @@ module Runner
19
19
  threads.map(&:join)
20
20
  end
21
21
  end
22
- end
22
+ end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Runner
4
4
  class Poop
5
- def run
5
+ def run(opts={})
6
6
  puts poop
7
7
  end
8
8
 
@@ -13,4 +13,4 @@ module Runner
13
13
  File.read(files[rand(files.length)])
14
14
  end
15
15
  end
16
- end
16
+ end
@@ -1,7 +1,7 @@
1
1
  module Runner
2
2
  class TestRun
3
- def run
4
- stdout, logout = Context.ttys[0..1]
3
+ def run(opts={})
4
+ stdout, logout = Context.ttys.values[0..1]
5
5
  log = Context.logs[0]
6
6
  threads=[]
7
7
  threads << Thread.new(stdout) do |myout|
@@ -19,4 +19,4 @@ module Runner
19
19
  threads.map(&:join)
20
20
  end
21
21
  end
22
- end
22
+ end
@@ -0,0 +1,41 @@
1
+ module Simulator
2
+ class Print
3
+ include Simulator::Base
4
+
5
+ def fake_it
6
+ while !@stop do
7
+ @out.puts make_text(@text)
8
+ sleep rand(0.01..0.1)
9
+ end
10
+ clear_screen(@out)
11
+ end
12
+
13
+ def initialize(out, text, cols)
14
+ @out = out # terminal
15
+ @text = text # text to print
16
+ @cols = cols # width of this terminal
17
+ end
18
+
19
+ def make_text(t)
20
+ width = rand((@cols - 5)..@cols)
21
+ times = width / (t.length + 1) # 1 is for space
22
+ front_space = (' ' * (@cols - width))
23
+ words = times.times.map{ maybe_mess_with(t) }.join(' ')
24
+ front_space + words
25
+ end
26
+
27
+ def maybe_mess_with(t)
28
+ if rand(2) == 1
29
+ t.each_char.map do |a|
30
+ if rand(2) == 1
31
+ a.upcase
32
+ else
33
+ a.downcase
34
+ end
35
+ end.join('')
36
+ else
37
+ t
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,3 @@
1
+ module Logpoop
2
+ VERSION='2.0.0'
3
+ end
@@ -1,17 +1,13 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
- # -*- encoding: utf-8 -*-
5
- # stub: logpoop 1.1.1 ruby lib
6
-
1
+ require 'date'
2
+ require File.expand_path("../lib/logpoop/version", __FILE__)
7
3
  Gem::Specification.new do |s|
8
4
  s.name = "logpoop"
9
- s.version = "1.1.1"
5
+ s.version = Logpoop::VERSION
10
6
 
11
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
8
  s.require_paths = ["lib"]
13
9
  s.authors = ["Billy Reisinger"]
14
- s.date = "2014-06-03"
10
+ s.date = Date.today
15
11
  s.description = "This gem installs a script called 'logpoop' that, when run, fills up your active terminal sessions with crap (so that you look really busy). "
16
12
  s.email = "billy.reisinger@gmail.com"
17
13
  s.executables = ["logpoop"]
@@ -28,7 +24,7 @@ Gem::Specification.new do |s|
28
24
  "logpoop.gemspec",
29
25
  "test/helper.rb",
30
26
  "test/test_logpoop.rb"
31
- ].concat(Dir["lib/**/*.rb"])
27
+ ].concat(Dir["lib/**/**"])
32
28
  s.homepage = "http://github.com/unclebilly/logpoop"
33
29
  s.licenses = ["MIT"]
34
30
  s.rubygems_version = "2.2.2"
@@ -37,17 +33,5 @@ Gem::Specification.new do |s|
37
33
  "test/helper.rb",
38
34
  "test/test_logpoop.rb"
39
35
  ]
40
-
41
- if s.respond_to? :specification_version then
42
- s.specification_version = 4
43
-
44
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
45
- s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
46
- else
47
- s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
48
- end
49
- else
50
- s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
51
- end
52
36
  end
53
37
 
@@ -1,17 +1,9 @@
1
1
  require 'rubygems'
2
2
  require 'bundler'
3
- begin
4
- Bundler.setup(:default, :development)
5
- rescue Bundler::BundlerError => e
6
- $stderr.puts e.message
7
- $stderr.puts "Run `bundle install` to install missing gems"
8
- exit e.status_code
9
- end
10
- require 'test/unit'
3
+ Bundler.require
4
+
5
+ require 'minitest/autorun'
11
6
 
12
7
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
13
8
  $LOAD_PATH.unshift(File.dirname(__FILE__))
14
9
  require 'logpoop'
15
-
16
- class Test::Unit::TestCase
17
- end
@@ -1,6 +1,6 @@
1
1
  require 'helper'
2
2
 
3
- class TestLogpoop < Test::Unit::TestCase
3
+ class TestLogpoop < MiniTest::Unit::TestCase
4
4
  def test_test
5
5
  ARGV[0], ARGV[1] = "--type", "test"
6
6
  LogPoop.new
metadata CHANGED
@@ -1,30 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logpoop
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Billy Reisinger
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-03 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: jeweler
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ~>
18
- - !ruby/object:Gem::Version
19
- version: 1.5.2
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ~>
25
- - !ruby/object:Gem::Version
26
- version: 1.5.2
27
- description: ! 'This gem installs a script called ''logpoop'' that, when run, fills
11
+ date: 2015-08-12 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: 'This gem installs a script called ''logpoop'' that, when run, fills
28
14
  up your active terminal sessions with crap (so that you look really busy). '
29
15
  email: billy.reisinger@gmail.com
30
16
  executables:
@@ -40,15 +26,23 @@ files:
40
26
  - VERSION
41
27
  - bin/logpoop
42
28
  - lib/logpoop.rb
29
+ - lib/logpoop/poops/five.poop
30
+ - lib/logpoop/poops/four.poop
31
+ - lib/logpoop/poops/one.poop
32
+ - lib/logpoop/poops/three.poop
33
+ - lib/logpoop/poops/two.poop
43
34
  - lib/logpoop/runner/context.rb
44
35
  - lib/logpoop/runner/make.rb
36
+ - lib/logpoop/runner/multi_print.rb
45
37
  - lib/logpoop/runner/multi_tail.rb
46
38
  - lib/logpoop/runner/poop.rb
47
39
  - lib/logpoop/runner/test_run.rb
48
40
  - lib/logpoop/simulator/base.rb
49
41
  - lib/logpoop/simulator/make.rb
42
+ - lib/logpoop/simulator/print.rb
50
43
  - lib/logpoop/simulator/tail_eff.rb
51
44
  - lib/logpoop/simulator/test_run.rb
45
+ - lib/logpoop/version.rb
52
46
  - logpoop.gemspec
53
47
  - test/helper.rb
54
48
  - test/test_logpoop.rb
@@ -62,17 +56,17 @@ require_paths:
62
56
  - lib
63
57
  required_ruby_version: !ruby/object:Gem::Requirement
64
58
  requirements:
65
- - - ! '>='
59
+ - - ">="
66
60
  - !ruby/object:Gem::Version
67
61
  version: '0'
68
62
  required_rubygems_version: !ruby/object:Gem::Requirement
69
63
  requirements:
70
- - - ! '>='
64
+ - - ">="
71
65
  - !ruby/object:Gem::Version
72
66
  version: '0'
73
67
  requirements: []
74
68
  rubyforge_project:
75
- rubygems_version: 2.2.2
69
+ rubygems_version: 2.4.3
76
70
  signing_key:
77
71
  specification_version: 4
78
72
  summary: Quick, look busy! Print some poop in your terminals!