impulse 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/README.rdoc +2 -1
  2. data/lib/impulse.rb +25 -8
  3. data/lib/impulse/version.rb +1 -1
  4. metadata +27 -49
@@ -92,7 +92,8 @@ Default graph parameters for draw()...
92
92
  :title => 'Impulse Graph',
93
93
  :vertical => '',
94
94
  :legend => '',
95
- :thickness => 1
95
+ :thickness => 1,
96
+ :sort => false
96
97
 
97
98
  All can be configured on a per graph basis.
98
99
 
@@ -13,7 +13,7 @@ module Impulse
13
13
  create_or_find_rrd(name, datas, params)
14
14
  push_to_rrd(name, datas, params)
15
15
  end
16
-
16
+
17
17
  def draw(name, time_scale = :day, params = {})
18
18
  params = {
19
19
  :filename => 'impulse.png',
@@ -24,20 +24,37 @@ module Impulse
24
24
  :title => 'Impulse Graph',
25
25
  :vertical => '',
26
26
  :legend => '',
27
- :thickness => 1
27
+ :thickness => 1,
28
+ :sort => false
28
29
  }.merge(params)
29
30
 
30
31
  defaults = "-E -W 'Generated at #{Time.at(Time.now)}' -e now -h #{params[:height]} -w #{params[:width]}"
31
32
  cmd = ["rrdtool graph #{params[:output_path]}/#{params[:filename]} -s -#{seconds_for(time_scale)} #{defaults} -t '#{params[:title]}' -v '#{params[:vertical]}'"]
32
-
33
+
33
34
  if name.is_a?(Hash)
35
+ max_legend_length = name.keys.size > 1 ? name.keys.max {|a,b| a.length <=> b.length }.length : name.keys.first.length
36
+
34
37
  c = 0
35
- name.each do |k,v|
36
- v = { :color => '#FF0000', :data => :data }.merge(v)
37
- cmd << "DEF:d#{c}=#{params[:rrd_path]}/#{v[:name]}.rrd:#{v[:data].to_s}:MAX"
38
- cmd << "LINE#{params[:thickness]}:d#{c}#{v[:color]}:'#{k}' GPRINT:d#{c}:LAST:\"Last\\:%8.0lf\" GPRINT:d#{c}:MIN:\" Min\\:%8.0lf\" GPRINT:d#{c}:AVERAGE:\" Avg\\:%8.0lf\" GPRINT:d#{c}:MAX:\" Max\\:%8.0lf\\n\""
39
- c += 1
38
+
39
+ if params[:sort]
40
+ name.keys.sort.each do |k|
41
+ v = name[k]
42
+ legend = "%-#{max_legend_length}s" % k
43
+ v = { :color => '#FF0000', :data => :data }.merge(v)
44
+ cmd << "DEF:d#{c}=#{params[:rrd_path]}/#{v[:name]}.rrd:#{v[:data].to_s}:MAX"
45
+ cmd << "LINE#{params[:thickness]}:d#{c}#{v[:color]}:'#{legend}' GPRINT:d#{c}:LAST:\"Last\\:%8.0lf\" GPRINT:d#{c}:MIN:\" Min\\:%8.0lf\" GPRINT:d#{c}:AVERAGE:\" Avg\\:%8.0lf\" GPRINT:d#{c}:MAX:\" Max\\:%8.0lf\\n\""
46
+ c += 1
47
+ end
48
+ else
49
+ name.each do |k,v|
50
+ legend = "%-#{max_legend_length}s" % k
51
+ v = { :color => '#FF0000', :data => :data }.merge(v)
52
+ cmd << "DEF:d#{c}=#{params[:rrd_path]}/#{v[:name]}.rrd:#{v[:data].to_s}:MAX"
53
+ cmd << "LINE#{params[:thickness]}:d#{c}#{v[:color]}:'#{legend}' GPRINT:d#{c}:LAST:\"Last\\:%8.0lf\" GPRINT:d#{c}:MIN:\" Min\\:%8.0lf\" GPRINT:d#{c}:AVERAGE:\" Avg\\:%8.0lf\" GPRINT:d#{c}:MAX:\" Max\\:%8.0lf\\n\""
54
+ c += 1
55
+ end
40
56
  end
57
+
41
58
  else
42
59
  cmd << "DEF:average=#{params[:rrd_path]}/#{name}.rrd:data:MAX"
43
60
  cmd << "LINE#{params[:thickness]}:average#FF0000:'#{params[:legend]}' GPRINT:average:LAST:\"Last\\:%8.0lf\" GPRINT:average:MIN:\" Min\\:%8.0lf\" GPRINT:average:AVERAGE:\" Avg\\:%8.0lf\" GPRINT:average:MAX:\" Max\\:%8.0lf\\n\""
@@ -1,3 +1,3 @@
1
1
  module Impulse
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
metadata CHANGED
@@ -1,46 +1,34 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: impulse
3
- version: !ruby/object:Gem::Version
4
- hash: 21
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.6
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 5
10
- version: 0.0.5
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Lloyd Pick
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-10-28 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
21
- version_requirements: &id001 !ruby/object:Gem::Requirement
12
+ date: 2012-03-20 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rake
16
+ requirement: &2164485860 !ruby/object:Gem::Requirement
22
17
  none: false
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- hash: 3
27
- segments:
28
- - 0
29
- version: "0"
30
- requirement: *id001
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
31
22
  type: :development
32
23
  prerelease: false
33
- name: rake
24
+ version_requirements: *2164485860
34
25
  description: Ability to make RRDTool graphs with zero thought
35
- email:
26
+ email:
36
27
  - lloyd.pick+impulse@forward.co.uk
37
28
  executables: []
38
-
39
29
  extensions: []
40
-
41
30
  extra_rdoc_files: []
42
-
43
- files:
31
+ files:
44
32
  - .gitignore
45
33
  - Gemfile
46
34
  - README.rdoc
@@ -50,36 +38,26 @@ files:
50
38
  - lib/impulse/version.rb
51
39
  homepage: https://github.com/forward/impulse
52
40
  licenses: []
53
-
54
41
  post_install_message:
55
42
  rdoc_options: []
56
-
57
- require_paths:
43
+ require_paths:
58
44
  - lib
59
- required_ruby_version: !ruby/object:Gem::Requirement
45
+ required_ruby_version: !ruby/object:Gem::Requirement
60
46
  none: false
61
- requirements:
62
- - - ">="
63
- - !ruby/object:Gem::Version
64
- hash: 3
65
- segments:
66
- - 0
67
- version: "0"
68
- required_rubygems_version: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - ! '>='
49
+ - !ruby/object:Gem::Version
50
+ version: '0'
51
+ required_rubygems_version: !ruby/object:Gem::Requirement
69
52
  none: false
70
- requirements:
71
- - - ">="
72
- - !ruby/object:Gem::Version
73
- hash: 3
74
- segments:
75
- - 0
76
- version: "0"
53
+ requirements:
54
+ - - ! '>='
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
77
57
  requirements: []
78
-
79
58
  rubyforge_project: impulse
80
59
  rubygems_version: 1.8.10
81
60
  signing_key:
82
61
  specification_version: 3
83
62
  summary: RubyGem to help make very quick RRDTool graphs
84
63
  test_files: []
85
-