verboss 0.0.3 → 0.1.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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/format.rb +52 -0
  3. data/lib/verboss.rb +52 -61
  4. metadata +3 -16
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a2494280a34dea9f4921b13d06e40695cf92ed6b
4
- data.tar.gz: d3e53ecb1c207308a6a8b8847d71f12d53d6194f
3
+ metadata.gz: a3c450310e2fbcb5355c2b75965b3dd962bdeacb
4
+ data.tar.gz: 6118b719dea1a7707b359bfdd2e424df09bd78aa
5
5
  SHA512:
6
- metadata.gz: 42bab8958a7d0d098d50362c1e76026fd068562664ce550b1a2e84b2d28db4576f9548c96178d58dfec159f4d877f75f37c28c722fd5cdd37e26b56d97ba8ba0
7
- data.tar.gz: f4d287f62c0e1487c1c5b658d8b546fd1193b0338e8289d653b016ca76d229d863ffd6728f3d9042e833c0a06959338ed9539382eea6c58cb6c7205628629816
6
+ metadata.gz: dcb37d7378b8e81f240d21783b6d2e37a151a7a9552f3b692751b53c426951ca16667ce2fccb16e0e1e118e12f3368ba358ee182d73b6356c7783a32766f9f7f
7
+ data.tar.gz: 5dd91533793897f0e57adc726073c2b215439948237fc988ba184bd2d8cabc13d9a9e4df250c81b603c9188099c9ec1cfa16b6f7b1b21c3a6844be27dcbcadeb
data/lib/format.rb ADDED
@@ -0,0 +1,52 @@
1
+ class String
2
+ def fixed_width(width = 64)
3
+ return self + (" " * (width - self.size)) if self.size < width
4
+
5
+ self[0, width - 3].chomp + "..."
6
+ end
7
+
8
+ def red
9
+ return "\e[31m" + self + "\e[39m"
10
+ end
11
+
12
+ def green
13
+ return "\e[32m" + self + "\e[39m"
14
+ end
15
+
16
+ def blue
17
+ return "\e[34m" + self + "\e[39m"
18
+ end
19
+
20
+ def magenta
21
+ return "\e[35m" + self + "\e[39m"
22
+ end
23
+
24
+ def cyan
25
+ return "\e[36m" + self + "\e[39m"
26
+ end
27
+
28
+ def white
29
+ return "\e[37m" + self + "\e[39m"
30
+ end
31
+
32
+
33
+ def bg_black
34
+ return "\e[40m" + self + "\e[49m"
35
+ end
36
+
37
+ def bg_yellow
38
+ return "\e[43m" + self + "\e[49m"
39
+ end
40
+
41
+ def bold
42
+ return "\e[1m" + self + "\e[0m"
43
+ end
44
+
45
+ def underline
46
+ return "\e[4m" + self + "\e[0m"
47
+ end
48
+
49
+ def blink
50
+ return "\e[5m" + self + "\e[0m"
51
+ end
52
+ end
data/lib/verboss.rb CHANGED
@@ -1,21 +1,22 @@
1
- ##### Verbose Module####
1
+ ##### Verboss Module####
2
2
  # allows concise method calls to organize and standardize terminal output
3
- # Verbose.doing organizes all output that occurs during its block
4
- # Verbose.quiet allows for all output to be silenced, displaying only the passed argument (if given)
3
+ # Verboss.doing organizes all output that occurs during its block
4
+ # Verboss.quiet allows for all output to be silenced, displaying only the passed argument (if given)
5
5
  #
6
6
  # The last few methods: say, mention, yell, scream
7
7
  # These are intended to standardize the format of certain kinds of output by
8
8
  # level of importance
9
- # say -> general information -> normal font
10
- # mention -> important information -> blue font
11
- # cheer -> success was reached -> green font
12
- # yell -> problem was discovered -> red font
13
- # scream -> even the heavens must know -> disgusting font
9
+ # say -> general information -> normal
10
+ # mention -> important information -> blue
11
+ # cheer -> success was reached -> green
12
+ # yell -> problem was discovered -> red
13
+ # scream -> the heavens must know -> disgusting
14
14
  #
15
- require 'rainbow'
15
+ require 'format'
16
16
  module Verboss
17
- @@err_indent = "$ ".color(:magenta)
18
- @@out_indent = "| ".color(:magenta)
17
+ WIDTH = 64
18
+ @@err_indent = "$ ".magenta
19
+ @@out_indent = "| ".magenta
19
20
  @@root_stderr = $stderr
20
21
  @@root_stdout = $stdout
21
22
 
@@ -24,7 +25,6 @@ module Verboss
24
25
  no_logging: false
25
26
  }
26
27
 
27
-
28
28
  @@spinner = {
29
29
  on: false,
30
30
  chars: %w[| / - \\],
@@ -35,24 +35,15 @@ module Verboss
35
35
  while @@spinner[:thread]
36
36
  Thread.stop unless @@spinner[:on]
37
37
  sleep @@spinner[:delay]
38
- c = (@@spinner[:chars][ @@spinner[:index] = (@@spinner[:index] + 1) % @@spinner[:chars].length ] + "\b").color(:white).bright.background(:black)
38
+ c = (@@spinner[:chars][ @@spinner[:index] = (@@spinner[:index] + 1) % @@spinner[:chars].length ] + "\b").white.bg_black.bold
39
39
  @@root_stdout.print c
40
40
  end
41
41
  }
42
42
  }
43
43
 
44
- ## FLAG METHODS
45
- def self.migrations? # helper used to determine if ActiveRecord::Migration.verbose should be true
46
- ENV["VERBOSE"] ? ENV["VERBOSE"] == "true" : false
47
- end
48
-
49
- def self.trace? # helper used to determine if stack traces should be displayed or not
50
- ENV["VERBOSE"] ? ENV["VERBOSE"] == "true" : false
51
- end
52
-
53
44
  def self.level arg = 1
54
- case ENV["VERBOSE"]
55
- when Numeric then arg <= ENV["VERBOSE"]
45
+ case ENV["Verboss"]
46
+ when Numeric then arg <= ENV["Verboss"]
56
47
  when nil then false
57
48
  else
58
49
  true
@@ -72,9 +63,9 @@ module Verboss
72
63
  def self.wait_spinner options = {}
73
64
  @@spinner[:delay] = options[:fps] * 60 if options[:fps]
74
65
  @@spinner[:delay] = options[:delay] if options[:delay]
75
- Verbose.start_spinner
66
+ Verboss.start_spinner
76
67
  yield
77
- Verbose.stop_spinner
68
+ Verboss.stop_spinner
78
69
  end
79
70
 
80
71
 
@@ -85,23 +76,23 @@ module Verboss
85
76
  end
86
77
 
87
78
  def self.mention *args
88
- args.each { |a| $stdout.puts "#{a.to_s.color(:blue)}" }
79
+ args.each { |a| $stdout.puts "#{a.to_s.blue}" }
89
80
  end
90
81
 
91
82
  def self.cheer *args
92
- args.each { |a| $stdout.puts "#{a.to_s.color(:green)}" }
83
+ args.each { |a| $stdout.puts "#{a.to_s.green}" }
93
84
  end
94
85
 
95
86
  def self.yell *args
96
- args.each { |a| $stderr.puts "\n#{a.to_s.color(:red)}" }
87
+ args.each { |a| $stderr.puts "\n#{a.to_s.red}" }
97
88
  end
98
89
 
99
90
  def self.scream *args
100
- args.each { |a| $stderr.puts "\n#{a.to_s.color(:red).background(:yellow).underline.bright.blink}" }
91
+ args.each { |a| $stderr.puts "\n#{a.to_s.red.bg_yellow.underline.bold.blink}" }
101
92
  end
102
93
 
103
94
 
104
- ## IO CAPTURING/FORMATTING METHODS ## allow method invocations such as Verbose.quiet.no_logging to work as expected
95
+ ## IO CAPTURING/FORMATTING METHODS ## allow method invocations such as Verboss.quiet.no_logging to work as expected
105
96
 
106
97
  def self.option keyword=false
107
98
  case keyword
@@ -116,17 +107,17 @@ module Verboss
116
107
  end
117
108
 
118
109
  def self.quietly description=nil # allows chaining unless a block is given
119
- return Verbose.option :quiet unless block_given? # if no block set 'quiet: true'
110
+ return Verboss.option :quiet unless block_given? # if no block set 'quiet: true'
120
111
 
121
- if Verbose.option[:no_logging] # if no logging, then turn if off
112
+ if Verboss.option[:no_logging] # if no logging, then turn if off
122
113
  old_logger = ActiveRecord::Base.logger
123
114
  ActiveRecord::Base.logger = nil
124
115
 
125
- ret = Verbose.quiet! description, &Proc.new
116
+ ret = Verboss.quiet! description, &Proc.new
126
117
 
127
118
  ActiveRecord::Base.logger = old_logger
128
119
  else
129
- ret = Verbose.quiet! description, &Proc.new # if logging is ok, log away
120
+ ret = Verboss.quiet! description, &Proc.new # if logging is ok, log away
130
121
  end
131
122
 
132
123
  @@temporary_options = {}
@@ -135,17 +126,17 @@ module Verboss
135
126
  end
136
127
 
137
128
  def self.loudly description=nil
138
- return Verbose.option :loud unless block_given?
129
+ return Verboss.option :loud unless block_given?
139
130
 
140
- if Verbose.option[:no_logging] # if no logging, then turn if off
131
+ if Verboss.option[:no_logging] # if no logging, then turn if off
141
132
  old_logger = ActiveRecord::Base.logger
142
133
  ActiveRecord::Base.logger = nil
143
134
 
144
- ret = Verbose.loud! description, &Proc.new
135
+ ret = Verboss.loud! description, &Proc.new
145
136
 
146
137
  ActiveRecord::Base.logger = old_logger
147
138
  else
148
- ret = Verbose.loud! description, &Proc.new # if logging is ok, log away
139
+ ret = Verboss.loud! description, &Proc.new # if logging is ok, log away
149
140
  end
150
141
 
151
142
  @@temporary_options = {}
@@ -153,12 +144,12 @@ module Verboss
153
144
  end
154
145
 
155
146
  def self.logging description=nil
156
- return Verbose.option :logging unless block_given?
147
+ return Verboss.option :logging unless block_given?
157
148
 
158
- if Verbose.option[:quiet]
159
- ret = Verbose.quiet! description, &Proc.new
149
+ if Verboss.option[:quiet]
150
+ ret = Verboss.quiet! description, &Proc.new
160
151
  else
161
- ret = Verbose.loud! description, &Proc.new
152
+ ret = Verboss.loud! description, &Proc.new
162
153
  end
163
154
 
164
155
  @@temporary_options = {}
@@ -166,15 +157,15 @@ module Verboss
166
157
  end
167
158
 
168
159
  def self.no_logging description=nil
169
- return Verbose.option :no_logging unless block_given?
160
+ return Verboss.option :no_logging unless block_given?
170
161
 
171
162
  old_logger = ActiveRecord::Base.logger
172
163
  ActiveRecord::Base.logger = nil
173
164
 
174
- if Verbose.option[:quiet]
175
- ret = Verbose.quiet! description, &Proc.new
165
+ if Verboss.option[:quiet]
166
+ ret = Verboss.quiet! description, &Proc.new
176
167
  else
177
- ret = Verbose.loud! description, &Proc.new
168
+ ret = Verboss.loud! description, &Proc.new
178
169
  end
179
170
  ActiveRecord::Base.logger = old_logger
180
171
  @@temporary_options = {}
@@ -189,9 +180,9 @@ module Verboss
189
180
  # save a reference to the two IO's
190
181
  out = $stdout
191
182
  err = $stderr
192
- out.puts "/ #{description.to_s.widthize(WIDTH-4).bright} \\".color(:magenta)
183
+ out.puts "/ #{description.to_s.fixed_width(WIDTH-4).bold} ".magenta + "\\"
193
184
  begin # IO and Thread stuffs
194
- Verbose.start_spinner
185
+ Verboss.start_spinner
195
186
  read_out, write_out = IO.pipe
196
187
  read_err, write_err = IO.pipe
197
188
  $stderr = write_err
@@ -200,16 +191,16 @@ module Verboss
200
191
  err_thread = Thread.new { err.print @@err_indent + read_err.gets("\n") until read_err.eof? }
201
192
  ret = yield
202
193
  rescue Exception => msg
203
- err.puts "# #{description.to_s.widthize(WIDTH-4)} FAIL ".bright.color(:red)
194
+ err.puts "# #{description.to_s.fixed_width(WIDTH-4)} FAIL ".bold.red
204
195
  raise msg
205
196
  ensure # whether or not the block fails close the pipes
206
197
  write_out.close
207
198
  write_err.close
208
199
  out_thread.join
209
200
  err_thread.join
210
- Verbose.stop_spinner
201
+ Verboss.stop_spinner
211
202
  end
212
- out.puts "\\ #{"_ " * 14}".color(:magenta) + "DONE".color(:green).bright + " in #{Time.now - start_time}s".widthize(14).color(:cyan) + " _ _ _ _ _ _ _ /".color(:magenta)
203
+ out.puts "\\ #{"_ " * 14}".magenta + "DONE".green.bold + " in #{Time.now - start_time}s".fixed_width(14).cyan + " _ _ _ _ _ _ _ /".magenta
213
204
  return ret
214
205
  ensure # both IO's go back the way they were found
215
206
  $stderr = err
@@ -221,29 +212,29 @@ module Verboss
221
212
  # save a reference to the two IO's
222
213
  out = $stdout
223
214
  err = $stderr
224
- out.puts description.to_s.widthize(WIDTH-10).bright.color(:magenta) + " ... ".bright.color(:blue) if description
215
+ out.puts description.to_s.fixed_width(WIDTH-10).bold.magenta + " ... ".bold.blue if description
225
216
  begin # IO and Thread stuffs
226
- Verbose.start_spinner
217
+ Verboss.start_spinner
227
218
  $stderr = StringIO.new
228
219
  $stdout = StringIO.new
229
220
  ret = yield
230
221
  rescue Exception => msg
231
- err.print "\e[1A" if description
232
- err.puts "# #{description.to_s.widthize(WIDTH-6)}".color(:red) + "FAIL".bright.color(:red)
222
+ if description
223
+ err.print "\e[1A"
224
+ err.print "# #{description.to_s.fixed_width(WIDTH-6)}".red
225
+ end
226
+ err.puts "FAIL".bold.red
233
227
  raise msg
234
228
  ensure
235
- Verbose.stop_spinner
229
+ Verboss.stop_spinner
236
230
  end
237
231
  if description
238
232
  out.print "\e[1A"
239
- out.puts description.to_s.widthize(WIDTH-8).bright.color(:magenta) + "DONE".color(:green).bright + " in #{Time.now - start_time}s".widthize(14).color(:cyan)
233
+ out.puts description.to_s.fixed_width(WIDTH-8).bold.magenta + "DONE".green.bold + " in #{Time.now - start_time}s".fixed_width(14).cyan
240
234
  end
241
235
  return ret
242
236
  ensure # both IO's go back the way they were found
243
237
  $stderr = err
244
238
  $stdout = out
245
239
  end
246
-
247
-
248
240
  end
249
-
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: verboss
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Behar
@@ -9,21 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
  date: 2015-06-23 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: rainbow
15
- version_requirements: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - '>='
18
- - !ruby/object:Gem::Version
19
- version: '0'
20
- requirement: !ruby/object:Gem::Requirement
21
- requirements:
22
- - - '>='
23
- - !ruby/object:Gem::Version
24
- version: '0'
25
- prerelease: false
26
- type: :runtime
12
+ dependencies: []
27
13
  description: lightweight and simple terminal formatting
28
14
  email: lazymunky94@gmail.com
29
15
  executables: []
@@ -31,6 +17,7 @@ extensions: []
31
17
  extra_rdoc_files: []
32
18
  files:
33
19
  - lib/verboss.rb
20
+ - lib/format.rb
34
21
  homepage: https://github.com/Ben-Behar/verboss
35
22
  licenses:
36
23
  - MIT