samhendley-scruffy 0.2.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. data/CHANGES.txt +115 -0
  2. data/LICENCE.txt +20 -0
  3. data/README.txt +66 -0
  4. data/lib/scruffy/components/background.rb +24 -0
  5. data/lib/scruffy/components/base.rb +57 -0
  6. data/lib/scruffy/components/data_markers.rb +26 -0
  7. data/lib/scruffy/components/graphs.rb +48 -0
  8. data/lib/scruffy/components/grid.rb +19 -0
  9. data/lib/scruffy/components/label.rb +17 -0
  10. data/lib/scruffy/components/legend.rb +105 -0
  11. data/lib/scruffy/components/style_info.rb +22 -0
  12. data/lib/scruffy/components/title.rb +19 -0
  13. data/lib/scruffy/components/value_markers.rb +32 -0
  14. data/lib/scruffy/components/viewport.rb +37 -0
  15. data/lib/scruffy/components.rb +21 -0
  16. data/lib/scruffy/formatters.rb +213 -0
  17. data/lib/scruffy/graph.rb +190 -0
  18. data/lib/scruffy/graph_state.rb +24 -0
  19. data/lib/scruffy/helpers/canvas.rb +41 -0
  20. data/lib/scruffy/helpers/layer_container.rb +95 -0
  21. data/lib/scruffy/helpers/meta.rb +5 -0
  22. data/lib/scruffy/helpers/point_container.rb +70 -0
  23. data/lib/scruffy/helpers.rb +12 -0
  24. data/lib/scruffy/layers/all_smiles.rb +137 -0
  25. data/lib/scruffy/layers/area.rb +46 -0
  26. data/lib/scruffy/layers/average.rb +67 -0
  27. data/lib/scruffy/layers/bar.rb +52 -0
  28. data/lib/scruffy/layers/base.rb +191 -0
  29. data/lib/scruffy/layers/line.rb +46 -0
  30. data/lib/scruffy/layers/pie.rb +123 -0
  31. data/lib/scruffy/layers/pie_slice.rb +119 -0
  32. data/lib/scruffy/layers/scatter.rb +21 -0
  33. data/lib/scruffy/layers/sparkline_bar.rb +39 -0
  34. data/lib/scruffy/layers/stacked.rb +87 -0
  35. data/lib/scruffy/layers.rb +24 -0
  36. data/lib/scruffy/rasterizers/batik_rasterizer.rb +39 -0
  37. data/lib/scruffy/rasterizers/rmagick_rasterizer.rb +27 -0
  38. data/lib/scruffy/rasterizers.rb +14 -0
  39. data/lib/scruffy/renderers/base.rb +95 -0
  40. data/lib/scruffy/renderers/cubed.rb +44 -0
  41. data/lib/scruffy/renderers/cubed3d.rb +53 -0
  42. data/lib/scruffy/renderers/empty.rb +22 -0
  43. data/lib/scruffy/renderers/pie.rb +20 -0
  44. data/lib/scruffy/renderers/reversed.rb +17 -0
  45. data/lib/scruffy/renderers/sparkline.rb +10 -0
  46. data/lib/scruffy/renderers/split.rb +48 -0
  47. data/lib/scruffy/renderers/standard.rb +36 -0
  48. data/lib/scruffy/renderers.rb +22 -0
  49. data/lib/scruffy/themes.rb +156 -0
  50. data/lib/scruffy/version.rb +9 -0
  51. data/lib/scruffy.rb +30 -0
  52. data/test/graph_creation_test.rb +101 -0
  53. data/test/test_helper.rb +2 -0
  54. metadata +135 -0
@@ -0,0 +1,48 @@
1
+ module Scruffy
2
+ module Renderers
3
+ # Renderer that splits the graphs up into four other little graphs.
4
+ class Split < Empty
5
+ def define_layout
6
+ super do |components|
7
+ components << Scruffy::Components::Title.new(:title, :position => [5, 2], :size => [90, 7])
8
+ components << Scruffy::Components::Label.new(:label_one, :text => self.options[:split_label] || '',
9
+ :position => [30, 54.5], :size => [40, 3])
10
+
11
+ # Viewports
12
+ components << Scruffy::Components::Viewport.new(:top, :position => [3, 20],
13
+ :size => [90, 30], &graph_block(:top))
14
+ components << Scruffy::Components::Viewport.new(:bottom, :position => [3, 65],
15
+ :size => [90, 30], &graph_block(:bottom))
16
+
17
+ components << Scruffy::Components::Legend.new(:legend, :position => [5, 11], :size => [90, 4])
18
+ end
19
+ end
20
+
21
+ protected
22
+ def labels
23
+ [component(:top).component(:labels), component(:bottom).component(:labels)]
24
+ end
25
+
26
+ def values
27
+ [component(:top).component(:values), component(:bottom).component(:values)]
28
+ end
29
+
30
+ def grids
31
+ [component(:top).component(:grid), component(:bottom).component(:grid)]
32
+ end
33
+
34
+
35
+ private
36
+ def graph_block(graph_filter)
37
+ block = Proc.new { |components|
38
+ components << Scruffy::Components::Grid.new(:grid, :position => [10, 0], :size => [90, 89])
39
+ components << Scruffy::Components::ValueMarkers.new(:values, :position => [0, 2], :size => [8, 89])
40
+ components << Scruffy::Components::DataMarkers.new(:labels, :position => [10, 92], :size => [90, 8])
41
+ components << Scruffy::Components::Graphs.new(:graphs, :position => [10, 0], :size => [90, 89], :only => graph_filter)
42
+ }
43
+
44
+ block
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,36 @@
1
+ module Scruffy::Renderers
2
+ class Standard < Empty
3
+
4
+ def define_layout
5
+ super do |components|
6
+ components << Scruffy::Components::Title.new(:title, :position => [5, 2], :size => [90, 7])
7
+ components << Scruffy::Components::Viewport.new(:view, :position => [2, 26], :size => [89, 66]) do |graph|
8
+ graph << Scruffy::Components::ValueMarkers.new(:values, :position => [0, 2], :size => [18, 89])
9
+ graph << Scruffy::Components::Grid.new(:grid, :position => [20, 0], :size => [80, 89], :stroke_width => 1)
10
+ graph << Scruffy::Components::DataMarkers.new(:labels, :position => [20, 92], :size => [80, 8])
11
+ graph << Scruffy::Components::Graphs.new(:graphs, :position => [20, 0], :size => [80, 89])
12
+ end
13
+ components << Scruffy::Components::Legend.new(:legend, :position => [5, 13], :size => [90, 6])
14
+ end
15
+ end
16
+
17
+ protected
18
+ def hide_values
19
+ super
20
+ component(:view).position[0] = -10
21
+ component(:view).size[0] = 100
22
+ end
23
+
24
+ def labels
25
+ [component(:view).component(:labels)]
26
+ end
27
+
28
+ def values
29
+ [component(:view).component(:values)]
30
+ end
31
+
32
+ def grids
33
+ [component(:view).component(:grid)]
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,22 @@
1
+ # ===Scruffy Renderers
2
+ #
3
+ # Author:: Brasten Sager
4
+ # Date:: August 14th, 2006
5
+ #
6
+ # Renderers piece the entire graph together from a collection
7
+ # of components. Creating new renderers allows you to create
8
+ # entirely new layouts for your graphs.
9
+ #
10
+ # Scruffy::Renderers::Base contains the basic functionality needed
11
+ # by a layout. The easiest way to create a new layout is by subclassing
12
+ # Base.
13
+ module Scruffy::Renderers; end
14
+
15
+ require 'scruffy/renderers/base'
16
+ require 'scruffy/renderers/empty'
17
+ require 'scruffy/renderers/standard'
18
+ require 'scruffy/renderers/reversed'
19
+ require 'scruffy/renderers/cubed'
20
+ require 'scruffy/renderers/split'
21
+ require 'scruffy/renderers/cubed3d'
22
+ require 'scruffy/renderers/pie'
@@ -0,0 +1,156 @@
1
+ # ===Scruffy Themes
2
+ #
3
+ # Author:: Brasten Sager & A.J. Ostman
4
+ # Date:: August 27th, 2006
5
+ #
6
+ # Scruffy Themes allow you to alter the colors and appearances of
7
+ # your graph.
8
+ module Scruffy::Themes
9
+
10
+ # ==Scruffy::Themes::Base
11
+ #
12
+ # Author:: Brasten Sager & A.J. Ostman
13
+ # Date:: August 27th, 2006
14
+ #
15
+ # The base theme class. Most themes can be constructed simply
16
+ # by instantiating a new Base object with a hash of color values.
17
+ #
18
+ # See Scruffy::Themes::Base#instantiate for examples.
19
+ class Base
20
+ attr_accessor :background # Background color or array of two colors
21
+ attr_accessor :colors # Array of colors for data graphs
22
+ attr_accessor :marker # Marker color for grid lines, values, etc.
23
+ attr_accessor :font_family # Font family: Not really supported. Maybe in the future.
24
+
25
+ # Returns a new Scruffy::Themes::Base object.
26
+ #
27
+ # Hash options:
28
+ # background:: background color.
29
+ # colors:: an array of color values to use for graphs.
30
+ # marker:: color used for grid lines, values, data points, etc.
31
+ # font_family:: in general, allows you to change the font used in the graph.
32
+ # This is not yet supported in most graph elements,
33
+ # and may be deprecated soon anyway.
34
+ def initialize(descriptor)
35
+ self.background = descriptor[:background]
36
+ self.colors = descriptor[:colors]
37
+ self.marker = descriptor[:marker]
38
+ self.font_family = descriptor[:font_family]
39
+ end
40
+
41
+ # Returns the next available color in the color array.
42
+ def next_color
43
+ @previous_color = 0 if @previous_color.nil?
44
+ @previous_color += 1
45
+
46
+ self.colors[(@previous_color-1) % self.colors.size]
47
+ end
48
+
49
+ # todo: Implement darken function.
50
+ def darken(color, shift=20); end
51
+
52
+ # todo: Implement lighten function.
53
+ def lighten(color, shift=20); end
54
+
55
+ end
56
+
57
+
58
+
59
+ # A basic default theme
60
+ # Based on http://www.wellstyled.com/tools/colorscheme2/index-en.html?tetrad;50;0;255;1;-1;1;-0.6;0.1;1;0.6;1;1;-1;1;-0.6;0.1;1;0.6;1;1;-1;1;-0.6;0.1;1;0.6;1;1;-1;1;-0.6;0.1;1;0.6;1;0
61
+ class Standard < Base
62
+ def initialize
63
+ super({
64
+ :background => ['#FFFFFF', '#FFFFFF'],
65
+ :marker => '#999999',
66
+ :colors => %w(#1919B3 #FFB200 #FFFF00 #660099 #E9E9FF #FFF7E6 #FFFFE6 #F7E6FF #0F0F6B #996B00 #999900 #3D005C)
67
+ })
68
+
69
+ end
70
+ end
71
+
72
+ # Keynote theme, based on Apple's Keynote presentation software.
73
+ #
74
+ # Color values used from Gruff's default theme.
75
+ class Keynote < Base
76
+ def initialize
77
+ super({
78
+ :background => [:black, '#4A465A'],
79
+ :marker => :white,
80
+ :colors => %w(#6886B4 #FDD84E #72AE6E #D1695E #8A6EAF #EFAA43 white)
81
+ })
82
+ end
83
+ end
84
+
85
+ # Roughly, roughly based on the color scheme of www.mephistoblog.com.
86
+ class Mephisto < Base
87
+ def initialize
88
+ super({
89
+ :background => ['#101010', '#999977'],
90
+ :marker => :white,
91
+ :colors => %w(#DD3300 #66AABB #225533 #992200)
92
+ })
93
+
94
+ end
95
+ end
96
+
97
+ # Based on the color scheme used by almost every Ruby blogger.
98
+ class RubyBlog < Base
99
+ def initialize
100
+ super({
101
+ :background => ['#670A0A', '#831515'],
102
+ :marker => '#DBD1C1',
103
+ :colors => %w(#007777 #444477 #994444 #77FFBB #D75A20)
104
+ })
105
+ end
106
+ end
107
+
108
+ # Inspired by http://www.colorschemer.com/schemes/
109
+ class Apples < Base
110
+ def initialize
111
+ super({
112
+ :background => ['#3B411F', '#4A465A'],
113
+ :marker => '#DBD1C1',
114
+ :colors => %w(#AA3322 #DD3322 #DD6644 #FFEE88 #BBCC66 #779933)
115
+ })
116
+ end
117
+ end
118
+
119
+ # Inspired by http://www.colorschemer.com/schemes/
120
+ class CareBears < Base
121
+ def initialize
122
+ super({
123
+ # Playing with Sky Background
124
+ # :background => ['#2774B6', '#5EA6D8'],
125
+ # :marker => :white,
126
+ :background => [:black, '#4A465A'],
127
+ :marker => :white,
128
+ :colors => %w(#FFBBBB #00CC33 #7788BB #EEAA44 #FFDD11 #44BBDD #DD6677)
129
+ })
130
+ end
131
+ end
132
+
133
+
134
+ # Inspired by http://www.colorschemer.com/schemes/
135
+ class Vitamins < Base
136
+ def initialize
137
+ super({
138
+ :background => [:black, '#4A465A'],
139
+ :marker => :white,
140
+ :colors => %w(#CC9933 #FFCC66 #CCCC99 #CCCC33 #99CC33 #3333CC #336699 #6633CC #9999CC #333366)
141
+ })
142
+ end
143
+ end
144
+
145
+ # Inspired by http://www.colorschemer.com/schemes/
146
+ class Tulips < Base
147
+ def initialize
148
+ super({
149
+ :background => ['#670A0A', '#831515'],
150
+ :marker => '#DBD1C1',
151
+ :colors => %w(#F2C8CA #BF545E #D2808E #97985C #B3B878 #A24550)
152
+ })
153
+ end
154
+ end
155
+
156
+ end
@@ -0,0 +1,9 @@
1
+ module Scruffy
2
+ module VERSION #:nodoc:
3
+ MAJOR = 0
4
+ MINOR = 2
5
+ TINY = 6
6
+
7
+ STRING = [MAJOR, MINOR, TINY].join('.')
8
+ end
9
+ end
data/lib/scruffy.rb ADDED
@@ -0,0 +1,30 @@
1
+ $:.unshift(File.dirname(__FILE__)) unless
2
+ $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
+
4
+ # ===Scruffy Graphing Library for Ruby
5
+ #
6
+ # Author:: Brasten Sager
7
+ # Date:: August 5th, 2006
8
+ #
9
+ # For information on generating graphs using Scruffy, see the
10
+ # documentation in Scruffy::Graph.
11
+ #
12
+ # For information on creating your own graph types, see the
13
+ # documentation in Scruffy::Layers::Base.
14
+ module Scruffy
15
+ end
16
+
17
+ require 'rubygems'
18
+ gem 'builder', '>= 2.0'
19
+ require 'builder'
20
+
21
+ require 'scruffy/helpers'
22
+ require 'scruffy/graph_state'
23
+ require 'scruffy/graph'
24
+ require 'scruffy/themes'
25
+ require 'scruffy/version'
26
+ require 'scruffy/formatters'
27
+ require 'scruffy/rasterizers'
28
+ require 'scruffy/layers'
29
+ require 'scruffy/components'
30
+ require 'scruffy/renderers'
@@ -0,0 +1,101 @@
1
+ require 'test/unit'
2
+ require 'scruffy'
3
+
4
+ class SimpleTheme < Scruffy::Themes::Base
5
+ def initialize
6
+ super({
7
+ :background => [:white, :white],
8
+ :marker => :black,
9
+ :colors => %w(blue green red orange yellow purple pink),
10
+ :stroke_color => 'white'
11
+ })
12
+ end
13
+ end
14
+
15
+ class GraphCreationTest < Test::Unit::TestCase
16
+ BASE_DIR = File.dirname(__FILE__)
17
+ WEBSITE_DIR = BASE_DIR + "/../website/images/graphs"
18
+
19
+ def test_create_pie
20
+ graph = Scruffy::Graph.new
21
+ graph.title = "Favourite Snacks"
22
+ graph.renderer = Scruffy::Renderers::Pie.new
23
+
24
+ graph.add :pie, '', {
25
+ 'Apple' => 20,
26
+ 'Banana' => 100,
27
+ 'Orange' => 70,
28
+ 'Taco' => 30
29
+ }
30
+
31
+ graph.render :to => "#{WEBSITE_DIR}/pie_test.svg"
32
+ graph.render :width => 400, :to => "#{WEBSITE_DIR}/pie_test.png", :as => 'png'
33
+ end
34
+
35
+ def test_create_line
36
+ graph = Scruffy::Graph.new
37
+ graph.title = "Sample Line Graph"
38
+ graph.renderer = Scruffy::Renderers::Standard.new
39
+
40
+ graph.add :line, 'Example', [20, 100, 70, 30, 106]
41
+
42
+ graph.render :to => "#{WEBSITE_DIR}/line_test.svg"
43
+ graph.render :width => 400, :to => "#{WEBSITE_DIR}/line_test.png", :as => 'png'
44
+ end
45
+
46
+
47
+ def test_create_bar
48
+ graph = Scruffy::Graph.new
49
+ graph.title = "Sample Bar Graph"
50
+ graph.renderer = Scruffy::Renderers::Standard.new
51
+ graph.add :bar, 'Example', [20, 100, 70, 30, 106]
52
+ graph.render :to => "#{WEBSITE_DIR}/bar_test.svg"
53
+ graph.render :width => 400, :to => "#{WEBSITE_DIR}/bar_test.png", :as => 'png'
54
+ end
55
+
56
+ def test_split
57
+ graph = Scruffy::Graph.new
58
+ graph.title = "Long-term Comparisons"
59
+ graph.value_formatter = Scruffy::Formatters::Currency.new(:special_negatives => true, :negative_color => '#ff7777')
60
+ graph.renderer = Scruffy::Renderers::Split.new(:split_label => 'Northeastern (Top) / Central (Bottom)')
61
+
62
+ graph.add :area, 'Jeff', [20, -5, 100, 70, 30, 106, 203, 100, 50, 203, 289, 20], :category => :top
63
+ graph.add :area, 'Jerry', [-10, 70, 20, 102, 201, 26, 30, 106, 203, 100, 50, 39], :category => :top
64
+ graph.add :bar, 'Jack', [30, 0, 49, 29, 100, 203, 70, 20, 102, 201, 26, 130], :category => :bottom
65
+ graph.add :line, 'Brasten', [42, 10, 75, 150, 130, 70, -10, -20, 50, 92, -21, 19], :categories => [:top, :bottom]
66
+ graph.add :line, 'Jim', [-10, -20, 50, 92, -21, 56, 92, 84, 82, 100, 39, 120], :categories => [:top, :bottom]
67
+ graph.point_markers = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
68
+
69
+ graph.render :to => "#{WEBSITE_DIR}/split_test.svg"
70
+ graph.render :width => 500, :to => "#{WEBSITE_DIR}/split_test.png", :as => 'png'
71
+ end
72
+
73
+ def test_stacking
74
+ graph = Scruffy::Graph.new
75
+ graph.title = "Comparative Agent Performance"
76
+ graph.value_formatter = Scruffy::Formatters::Percentage.new(:precision => 0)
77
+ graph.add :stacked do |stacked|
78
+ stacked.add :bar, 'Jack', [30, 60, 49, 29, 100, 120]
79
+ stacked.add :bar, 'Jill', [120, 240, 0, 100, 140, 20]
80
+ stacked.add :bar, 'Hill', [10, 10, 90, 20, 40, 10]
81
+ end
82
+ graph.point_markers = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun']
83
+ graph.render :to => "#{WEBSITE_DIR}/stacking_test.svg"
84
+ graph.render :width => 500, :to => "#{WEBSITE_DIR}/stacking_test.png", :as => 'png'
85
+ end
86
+
87
+ def test_multi_layered
88
+ graph = Scruffy::Graph.new
89
+ graph.title = "Some Kind of Information"
90
+ graph.renderer = Scruffy::Renderers::Cubed.new
91
+
92
+ graph.add :area, 'Jeff', [20, -5, 100, 70, 30, 106], :categories => [:top_left, :bottom_right]
93
+ graph.add :area, 'Jerry', [-10, 70, 20, 102, 201, 26], :categories => [:bottom_left, :buttom_right]
94
+ graph.add :bar, 'Jack', [30, 0, 49, 29, 100, 203], :categories => [:bottom_left, :top_right]
95
+ graph.add :line, 'Brasten', [42, 10, 75, 150, 130, 70], :categories => [:top_right, :bottom_left]
96
+ graph.add :line, 'Jim', [-10, -20, 50, 92, -21, 56], :categories => [:top_left, :bottom_right]
97
+ graph.point_markers = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun']
98
+ graph.render :to => "#{WEBSITE_DIR}/multi_test.svg"
99
+ graph.render :width => 500, :to => "#{WEBSITE_DIR}/multi_test.png", :as => 'png'
100
+ end
101
+ end
@@ -0,0 +1,2 @@
1
+ require 'test/unit'
2
+ require File.dirname(__FILE__) + '/../lib/scruffy'
metadata ADDED
@@ -0,0 +1,135 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: samhendley-scruffy
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.7
5
+ platform: ruby
6
+ authors:
7
+ - Brasten Sager
8
+ - samhendley
9
+ - delano
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+
14
+ date: 2008-12-28 21:00:00 -08:00
15
+ default_executable:
16
+ dependencies:
17
+ - !ruby/object:Gem::Dependency
18
+ name: builder
19
+ type: :runtime
20
+ version_requirement:
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: 2.0.0
26
+ version:
27
+ - !ruby/object:Gem::Dependency
28
+ name: hoe
29
+ type: :runtime
30
+ version_requirement:
31
+ version_requirements: !ruby/object:Gem::Requirement
32
+ requirements:
33
+ - - ">="
34
+ - !ruby/object:Gem::Version
35
+ version: 1.7.0
36
+ version:
37
+ description: Scruffy is a Ruby library for generating high quality, good looking graphs. It is designed to be easy to use and highly customizable.
38
+ email:
39
+ - brasten@nagilum.com
40
+ - david.parry@suranyami.com
41
+ executables: []
42
+
43
+ extensions: []
44
+
45
+ extra_rdoc_files: []
46
+
47
+ files:
48
+ - lib/scruffy/rasterizers/rmagick_rasterizer.rb
49
+ - lib/scruffy/rasterizers/batik_rasterizer.rb
50
+ - lib/scruffy/version.rb
51
+ - lib/scruffy/layers/base.rb
52
+ - lib/scruffy/layers/area.rb
53
+ - lib/scruffy/layers/stacked.rb
54
+ - lib/scruffy/layers/pie_slice.rb
55
+ - lib/scruffy/layers/scatter.rb
56
+ - lib/scruffy/layers/bar.rb
57
+ - lib/scruffy/layers/sparkline_bar.rb
58
+ - lib/scruffy/layers/pie.rb
59
+ - lib/scruffy/layers/all_smiles.rb
60
+ - lib/scruffy/layers/average.rb
61
+ - lib/scruffy/layers/line.rb
62
+ - lib/scruffy/rasterizers.rb
63
+ - lib/scruffy/renderers.rb
64
+ - lib/scruffy/themes.rb
65
+ - lib/scruffy/helpers/canvas.rb
66
+ - lib/scruffy/helpers/point_container.rb
67
+ - lib/scruffy/helpers/layer_container.rb
68
+ - lib/scruffy/helpers/meta.rb
69
+ - lib/scruffy/components.rb
70
+ - lib/scruffy/graph_state.rb
71
+ - lib/scruffy/components/style_info.rb
72
+ - lib/scruffy/components/value_markers.rb
73
+ - lib/scruffy/components/viewport.rb
74
+ - lib/scruffy/components/base.rb
75
+ - lib/scruffy/components/graphs.rb
76
+ - lib/scruffy/components/background.rb
77
+ - lib/scruffy/components/legend.rb
78
+ - lib/scruffy/components/data_markers.rb
79
+ - lib/scruffy/components/label.rb
80
+ - lib/scruffy/components/grid.rb
81
+ - lib/scruffy/components/title.rb
82
+ - lib/scruffy/graph.rb
83
+ - lib/scruffy/renderers/sparkline.rb
84
+ - lib/scruffy/renderers/base.rb
85
+ - lib/scruffy/renderers/reversed.rb
86
+ - lib/scruffy/renderers/split.rb
87
+ - lib/scruffy/renderers/cubed3d.rb
88
+ - lib/scruffy/renderers/standard.rb
89
+ - lib/scruffy/renderers/pie.rb
90
+ - lib/scruffy/renderers/empty.rb
91
+ - lib/scruffy/renderers/cubed.rb
92
+ - lib/scruffy/formatters.rb
93
+ - lib/scruffy/helpers.rb
94
+ - lib/scruffy/layers.rb
95
+ - lib/scruffy.rb
96
+ - LICENCE.txt
97
+ - README.txt
98
+ - CHANGES.txt
99
+ has_rdoc: true
100
+ homepage: http://scruffy.rubyforge.org
101
+ post_install_message:
102
+ rdoc_options:
103
+ - --quiet
104
+ - --title
105
+ - scruffy documentation
106
+ - --opname
107
+ - index.html
108
+ - --line-numbers
109
+ - --main
110
+ - README.txt
111
+ - --inline-source
112
+ require_paths:
113
+ - lib
114
+ required_ruby_version: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: "0"
119
+ version:
120
+ required_rubygems_version: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: "0"
125
+ version:
126
+ requirements: []
127
+
128
+ rubyforge_project:
129
+ rubygems_version: 1.2.0
130
+ signing_key:
131
+ specification_version: 2
132
+ summary: A powerful, clean graphing library for Ruby.
133
+ test_files:
134
+ - test/graph_creation_test.rb
135
+ - test/test_helper.rb