samhendley-scruffy 0.2.7

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