impulse 0.0.5 → 0.0.6

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. 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
-