redis-stat 0.2.6 → 0.2.7

Sign up to get free protection for your applications and to get access to all the features.
data/lib/redis-stat.rb CHANGED
@@ -8,6 +8,7 @@ require 'tabularize'
8
8
  require 'ansi'
9
9
  require 'csv'
10
10
  require 'parallelize'
11
+ require 'si'
11
12
 
12
13
  class RedisStat
13
14
  DEFAULT_TERM_WIDTH = 180
@@ -64,7 +65,7 @@ class RedisStat
64
65
  @redises.pmap(@redises.length) { |redis|
65
66
  redis.info.insensitive
66
67
  }.each do |rinfo|
67
- all_measures.each do |k|
68
+ (all_measures + rinfo.keys.select { |k| k =~ /^db[0-9]+$/ }).each do |k|
68
69
  info[k] ||= []
69
70
  info[k] << rinfo[k]
70
71
  end
@@ -255,35 +256,21 @@ private
255
256
  [humanize_number(val.to_i), val]
256
257
  when :used_memory, :used_memory_rss, :aof_current_size, :aof_base_size
257
258
  val = info.sumf(key)
258
- [humanize_number(val.to_i, 1024, 'B'), val]
259
+ [humanize_number(val.to_i, true), val]
259
260
  else
260
- format_number info.sumf(key)
261
+ humanize_number info.sumf(key)
261
262
  end
262
263
  end
263
264
 
264
- def format_number num
265
- if num.to_i == num
266
- num.to_i
267
- elsif num < 10
268
- "%.2f" % num
269
- elsif num < 100
270
- "%.1f" % num
271
- else
272
- num.to_i
273
- end.to_s
274
- end
275
-
276
- def humanize_number num, k = 1000, suffix = ''
265
+ def humanize_number num, byte = false
277
266
  return '-' if num.nil?
278
267
 
279
- sign = num >= 0 ? '' : '-'
280
- num = num.abs
281
- mult = k.to_f
282
- ['', 'K', 'M', 'G', 'T', 'P', 'E'].each do |mp|
283
- return sign + format_number(num * k / mult) + mp + suffix if num < mult || mp == 'E'
284
- mult *= k
268
+ num = num.to_i if num == num.to_i
269
+ if byte
270
+ num.si_byte
271
+ else
272
+ num.si(:min_exp => 0)
285
273
  end
286
- return nil
287
274
  end
288
275
 
289
276
  def ansi *args, &block
@@ -1,3 +1,3 @@
1
1
  class RedisStat
2
- VERSION = "0.2.6"
2
+ VERSION = "0.2.7"
3
3
  end
data/redis-stat.gemspec CHANGED
@@ -20,6 +20,7 @@ Gem::Specification.new do |gem|
20
20
  gem.add_runtime_dependency "tabularize", '~> 0.2.8'
21
21
  gem.add_runtime_dependency "insensitive_hash", '~> 0.3.0'
22
22
  gem.add_runtime_dependency "parallelize", '~> 0.4.0'
23
+ gem.add_runtime_dependency "si", '~> 0.1.3'
23
24
 
24
25
  gem.add_development_dependency 'test-unit'
25
26
  end
@@ -18,9 +18,9 @@ class TestRedisStat < Test::Unit::TestCase
18
18
  assert_equal '0.75', rs.send(:humanize_number, 0.751)
19
19
  assert_equal '7.51', rs.send(:humanize_number, 7.51)
20
20
  assert_equal '75.1', rs.send(:humanize_number, 75.1)
21
- assert_equal '7.51K', rs.send(:humanize_number, 7510)
22
- assert_equal '75.1K', rs.send(:humanize_number, 75100)
23
- assert_equal '751K', rs.send(:humanize_number, 751000)
21
+ assert_equal '7.51k', rs.send(:humanize_number, 7510)
22
+ assert_equal '75.1k', rs.send(:humanize_number, 75100)
23
+ assert_equal '751k', rs.send(:humanize_number, 751000)
24
24
  assert_equal '7.51M', rs.send(:humanize_number, 7510000)
25
25
  assert_equal '75.1M', rs.send(:humanize_number, 75100000)
26
26
  assert_equal '751M', rs.send(:humanize_number, 751000000)
@@ -36,10 +36,10 @@ class TestRedisStat < Test::Unit::TestCase
36
36
  assert_equal '7.51E', rs.send(:humanize_number, 7510000000000000000)
37
37
  assert_equal '75.1E', rs.send(:humanize_number, 75100000000000000000)
38
38
  assert_equal '751E', rs.send(:humanize_number, 751000000000000000000)
39
- assert_equal '7510E', rs.send(:humanize_number, 7510000000000000000000)
39
+ assert_equal '7.51Z', rs.send(:humanize_number, 7510000000000000000000)
40
40
 
41
- assert_equal '7.51PB', rs.send(:humanize_number, 7.51 * (1024 ** 5), 1024, 'B')
42
- assert_equal '-7.51PB', rs.send(:humanize_number, -7.51 * (1024 ** 5), 1024, 'B')
41
+ assert_equal '7.51PB', rs.send(:humanize_number, 7.51 * (1024 ** 5), true)
42
+ assert_equal '-7.51PB', rs.send(:humanize_number, -7.51 * (1024 ** 5), true)
43
43
  end
44
44
 
45
45
  def test_option_parse
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: redis-stat
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.6
4
+ version: 0.2.7
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: 2012-08-05 00:00:00.000000000 Z
12
+ date: 2012-09-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: ansi
@@ -91,6 +91,22 @@ dependencies:
91
91
  - - ~>
92
92
  - !ruby/object:Gem::Version
93
93
  version: 0.4.0
94
+ - !ruby/object:Gem::Dependency
95
+ name: si
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ~>
100
+ - !ruby/object:Gem::Version
101
+ version: 0.1.3
102
+ type: :runtime
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ version: 0.1.3
94
110
  - !ruby/object:Gem::Dependency
95
111
  name: test-unit
96
112
  requirement: !ruby/object:Gem::Requirement