yummi 0.9.0 → 0.9.1

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.
data/README.md CHANGED
@@ -54,7 +54,6 @@ Example:
54
54
 
55
55
  Yummi provides a set of patterns, check yummi/patterns dir.
56
56
 
57
-
58
57
  tail -f $JBOSS_HOME/standalone/log/server.log | yummi -p jboss
59
58
 
60
59
  Patterns in ~/.yummi/patterns and provided by yummi may also be used by passing
data/bin/yummi CHANGED
@@ -57,6 +57,9 @@ opt.on '-l FILES', '--load=FILES', Array, 'Include the files for extending compo
57
57
  load File.expand_path(file)
58
58
  end
59
59
  end
60
+ opt.on '--box', 'Wraps the given text in a box' do
61
+ @box = true
62
+ end
60
63
  opt.on '-h', '--help', 'Display this help message' do
61
64
  puts opt
62
65
  exit 0
@@ -74,15 +77,18 @@ def print_out message
74
77
  Yummi::colorize message, @color
75
78
  elsif @colorizer
76
79
  @colorizer.colorize message
80
+ else
81
+ message
77
82
  end
78
83
  output_text = "#{@format}" % output_text if @format
84
+ output_text = output_text.on_box if @box
79
85
  puts output_text
80
86
  end
81
87
 
82
88
  if @message
83
89
  print_out @message
84
90
  elsif @table_builder
85
- abort "Please give the data to print" unless @data
91
+ abort "Please give the data to print".red unless @data
86
92
  table = @table_builder.build_table
87
93
  extension = File::extname(@data)[1..-1]
88
94
  type = (@data_type or extension).to_sym
@@ -91,6 +97,7 @@ elsif @table_builder
91
97
  else
92
98
  abort "Unsupported extension #{extension}"
93
99
  end
100
+ table = table.on_box if @box
94
101
  puts table
95
102
  else
96
103
  begin
@@ -11,9 +11,8 @@ format:
11
11
  eletronic: boolean
12
12
  value,total:
13
13
  numeric:
14
- positive: "%.2f"
15
- zero: "%.2f"
16
- negative: "%.2f"
14
+ any: "%.2f"
15
+ negative: "(%.2f)"
17
16
  undefined:
18
17
  with: none
19
18
  color:
@@ -38,18 +37,12 @@ row_color:
38
37
  top:
39
38
  - format:
40
39
  total:
41
- numeric:
42
- positive: "%.2f"
43
- zero: "%.2f"
44
- negative: "%.2f"
40
+ with: "%.2f"
45
41
  row_color:
46
42
  with: intense_white
47
43
  bottom:
48
44
  - format:
49
45
  total:
50
- numeric:
51
- positive: "%.2f"
52
- zero: "%.2f"
53
- negative: "%.2f"
46
+ with: "%.2f"
54
47
  row_color:
55
48
  with: intense_white
@@ -20,19 +20,32 @@
20
20
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
21
  # THE SOFTWARE.
22
22
 
23
- require 'set'
24
23
  require 'term/ansicolor'
25
24
  require_relative "yummi/version"
26
25
 
27
26
  module Yummi
28
27
 
28
+ #
29
+ # Disable coloring
30
+ #
31
+ def self.no_colors
32
+ Term::ANSIColor::coloring = false
33
+ end
34
+
35
+ #
36
+ # Enable coloring
37
+ #
38
+ def self.colors
39
+ Term::ANSIColor::coloring = true
40
+ end
41
+
29
42
  #
30
43
  # Checks if the environment is supported by Yummi.
31
44
  #
32
45
  # Currently (known) unsupported environments are:
33
46
  # * Windows
34
47
  #
35
- def self.supported?
48
+ def self.coloring_supported?
36
49
  not RUBY_PLATFORM['mingw'] #Windows
37
50
  end
38
51
 
@@ -262,7 +275,7 @@ module Yummi
262
275
 
263
276
  end
264
277
 
265
- require_relative 'yummi/no_colors' unless Yummi::supported?
278
+ Yummi.no_colors unless Yummi::coloring_supported?
266
279
 
267
280
  require_relative 'yummi/extensions'
268
281
  require_relative 'yummi/data_parser'
@@ -275,5 +288,5 @@ require_relative 'yummi/logger'
275
288
 
276
289
  # if the output is being piped, turn off the colors
277
290
  unless $stdout.isatty
278
- require 'yummi/no_colors'
291
+ Yummi.no_colors
279
292
  end
@@ -163,15 +163,28 @@ module Yummi
163
163
  PercentageColorizer::new params
164
164
  end
165
165
 
166
+ #
167
+ # A colorizer for numeric values
168
+ #
169
+ # === Hash Args
170
+ #
171
+ # :negative => color to use when value is negative
172
+ # :zero => color to use when value is zero
173
+ # :positive => color to use when value is positive
174
+ # :any => color to use for any value (overridable by the options above)
175
+ #
166
176
  def self.numeric params
167
177
  Yummi::to_format do |ctx|
168
178
  value = ctx.value
169
- if params[:negative] and value < 0
170
- params[:negative]
171
- elsif params[:positive] and value > 0
172
- params[:positive]
173
- elsif params[:zero] and value == 0
174
- params[:zero]
179
+ negative = (params[:negative] or params[:any])
180
+ positive = (params[:positive] or params[:any])
181
+ zero = (params[:zero] or params[:any])
182
+ if negative and value < 0
183
+ negative
184
+ elsif positive and value > 0
185
+ positive
186
+ elsif zero and value == 0
187
+ zero
175
188
  end
176
189
  end
177
190
  end
@@ -20,8 +20,26 @@
20
20
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
21
  # THE SOFTWARE.
22
22
 
23
+ module Yummi
24
+ module OnBox
25
+
26
+ #
27
+ # Returns the string wrapped in a #Yummi#TextBox. The given parameters will be used
28
+ # to instantiate the TextBox.
29
+ #
30
+ def on_box params = {}
31
+ box = Yummi::TextBox::new params
32
+ box.add self
33
+ return box
34
+ end
35
+
36
+ end
37
+
38
+ end
39
+
23
40
  class String
24
41
  include Term::ANSIColor
42
+ include Yummi::OnBox
25
43
 
26
44
  #
27
45
  # Colorizes the string using #Yummi#colorize
@@ -42,16 +60,6 @@ class String
42
60
  Yummi::colorize self, params
43
61
  end
44
62
 
45
- #
46
- # Returns the string wrapped in a #Yummi#TextBox. The given parameters will be used
47
- # to instantiate the TextBox.
48
- #
49
- def on_box params = {}
50
- box = Yummi::TextBox::new params
51
- box.add self
52
- return box
53
- end
54
-
55
63
  end
56
64
 
57
65
  class Array
@@ -84,24 +84,28 @@ module Yummi
84
84
  # :negative => format to use when value is negative
85
85
  # :zero => format to use when value is zero
86
86
  # :positive => format to use when value is positive
87
+ # :any => format to use for any value (overridable by the options above)
87
88
  #
88
89
  def self.numeric params
89
90
  Yummi::to_format do |ctx|
90
91
  value = ctx.value
91
- if params[:negative] and value < 0
92
- params[:negative] % value.abs
93
- elsif params[:positive] and value > 0
94
- params[:positive] % value
95
- elsif params[:zero] and value == 0
96
- params[:zero] % value
92
+ negative = (params[:negative] or params[:any])
93
+ positive = (params[:positive] or params[:any])
94
+ zero = (params[:zero] or params[:any])
95
+ if negative and value < 0
96
+ negative % value.abs
97
+ elsif positive and value > 0
98
+ positive % value
99
+ elsif zero and value == 0
100
+ zero % value
97
101
  end
98
102
  end
99
103
  end
100
104
 
101
105
  #
102
- # A formatter for percentual values.
106
+ # A formatter for percent values.
103
107
  #
104
- # Paramters:
108
+ # Parameters:
105
109
  # The precision to use (defaults to 3)
106
110
  #
107
111
  def self.percentage precision = 3
@@ -145,7 +149,7 @@ module Yummi
145
149
  params[:precision] ||= 1
146
150
  result = value
147
151
  range.each_index do |i|
148
- minimun = (step ** i)
152
+ minimun = (step.** i)
149
153
  result = "%.#{params[:precision]}f #{range[i]}" % (value.to_f / minimun) if value >= minimun
150
154
  end
151
155
  result
@@ -25,6 +25,8 @@ require 'ostruct'
25
25
  module Yummi
26
26
  # A Table that supports colorizing title, header, values and also formatting the values.
27
27
  class Table
28
+ include Yummi::OnBox
29
+
28
30
  # The table title
29
31
  attr_accessor :title
30
32
  # The table description
@@ -197,7 +199,9 @@ module Yummi
197
199
  def header= (header)
198
200
  header = [header] unless header.respond_to? :each
199
201
  @header = normalize(header)
200
- @aliases = header.map { |n| n.downcase.gsub(' ', '_').gsub("\n", '_').to_sym } if @aliases.empty?
202
+ @aliases = header.map do |n|
203
+ n.downcase.gsub(' ', '_').gsub("\n", '_').to_sym
204
+ end if @aliases.empty?
201
205
  end
202
206
 
203
207
  #
@@ -329,8 +333,8 @@ module Yummi
329
333
  index = parse_index(index)
330
334
  if index
331
335
  component[:formatters][index] = (params[:using] or block)
332
- component[:formatters][index] ||= proc do |value|
333
- params[:with] % value
336
+ component[:formatters][index] ||= proc do |ctx|
337
+ params[:with] % ctx.value
334
338
  end
335
339
  else
336
340
  format_null params, &block
@@ -84,8 +84,8 @@ module Yummi
84
84
  #
85
85
  # === Args
86
86
  #
87
- # +line_text+::
88
- # The text to add.
87
+ # +obj+::
88
+ # The obj to add (will be converted to string).
89
89
  # +params+::
90
90
  # A hash of parameters. Currently supported are:
91
91
  # color: the text color (see #Yummi#COLORS)
@@ -94,7 +94,8 @@ module Yummi
94
94
  # raw: if true, the entire text will be used as one word to align the text.
95
95
  # align: the text alignment (see #Yummi#Aligner)
96
96
  #
97
- def add (text, params = {})
97
+ def add (obj, params = {})
98
+ text = obj.to_s
98
99
  params = {
99
100
  :width => style.width,
100
101
  :align => style.align
@@ -21,5 +21,5 @@
21
21
  # THE SOFTWARE.
22
22
 
23
23
  module Yummi
24
- VERSION = "0.9.0"
24
+ VERSION = "0.9.1"
25
25
  end
data/yummi.iml CHANGED
@@ -10,6 +10,7 @@
10
10
  <orderEntry type="inheritedJdk" />
11
11
  <orderEntry type="sourceFolder" forTests="false" />
12
12
  <orderEntry type="library" scope="PROVIDED" name="bundler (v1.2.3, RVM: ruby-1.9.3-p374) [gem]" level="application" />
13
+ <orderEntry type="library" scope="PROVIDED" name="term-ansicolor (v1.1.5, RVM: ruby-1.9.3-p374) [gem]" level="application" />
13
14
  </component>
14
15
  <component name="org.twodividedbyzero.idea.findbugs">
15
16
  <option name="_basePreferences">
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yummi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.9.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-05-10 00:00:00.000000000 Z
12
+ date: 2013-06-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: term-ansicolor
@@ -58,7 +58,6 @@ files:
58
58
  - lib/yummi/extensions.rb
59
59
  - lib/yummi/formatters.rb
60
60
  - lib/yummi/logger.rb
61
- - lib/yummi/no_colors.rb
62
61
  - lib/yummi/patterns/jboss.yaml
63
62
  - lib/yummi/patterns/log.yaml
64
63
  - lib/yummi/patterns/weblogic.yaml
@@ -1,23 +0,0 @@
1
- # The MIT License
2
- #
3
- # Copyright (c) 2013 Marcelo Guimarães <ataxexe@gmail.com>
4
- #
5
- # Permission is hereby granted, free of charge, to any person obtaining a copy
6
- # of this software and associated documentation files (the "Software"), to deal
7
- # in the Software without restriction, including without limitation the rights
8
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- # copies of the Software, and to permit persons to whom the Software is
10
- # furnished to do so, subject to the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be included in
13
- # all copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
- # THE SOFTWARE.
22
-
23
- Term::ANSIColor::coloring = false