logpoop 1.1.1 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
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!