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.
- data/CHANGES.txt +115 -0
- data/LICENCE.txt +20 -0
- data/README.txt +66 -0
- data/lib/scruffy/components/background.rb +24 -0
- data/lib/scruffy/components/base.rb +57 -0
- data/lib/scruffy/components/data_markers.rb +26 -0
- data/lib/scruffy/components/graphs.rb +48 -0
- data/lib/scruffy/components/grid.rb +19 -0
- data/lib/scruffy/components/label.rb +17 -0
- data/lib/scruffy/components/legend.rb +105 -0
- data/lib/scruffy/components/style_info.rb +22 -0
- data/lib/scruffy/components/title.rb +19 -0
- data/lib/scruffy/components/value_markers.rb +32 -0
- data/lib/scruffy/components/viewport.rb +37 -0
- data/lib/scruffy/components.rb +21 -0
- data/lib/scruffy/formatters.rb +213 -0
- data/lib/scruffy/graph.rb +190 -0
- data/lib/scruffy/graph_state.rb +24 -0
- data/lib/scruffy/helpers/canvas.rb +41 -0
- data/lib/scruffy/helpers/layer_container.rb +95 -0
- data/lib/scruffy/helpers/meta.rb +5 -0
- data/lib/scruffy/helpers/point_container.rb +70 -0
- data/lib/scruffy/helpers.rb +12 -0
- data/lib/scruffy/layers/all_smiles.rb +137 -0
- data/lib/scruffy/layers/area.rb +46 -0
- data/lib/scruffy/layers/average.rb +67 -0
- data/lib/scruffy/layers/bar.rb +52 -0
- data/lib/scruffy/layers/base.rb +191 -0
- data/lib/scruffy/layers/line.rb +46 -0
- data/lib/scruffy/layers/pie.rb +123 -0
- data/lib/scruffy/layers/pie_slice.rb +119 -0
- data/lib/scruffy/layers/scatter.rb +21 -0
- data/lib/scruffy/layers/sparkline_bar.rb +39 -0
- data/lib/scruffy/layers/stacked.rb +87 -0
- data/lib/scruffy/layers.rb +24 -0
- data/lib/scruffy/rasterizers/batik_rasterizer.rb +39 -0
- data/lib/scruffy/rasterizers/rmagick_rasterizer.rb +27 -0
- data/lib/scruffy/rasterizers.rb +14 -0
- data/lib/scruffy/renderers/base.rb +95 -0
- data/lib/scruffy/renderers/cubed.rb +44 -0
- data/lib/scruffy/renderers/cubed3d.rb +53 -0
- data/lib/scruffy/renderers/empty.rb +22 -0
- data/lib/scruffy/renderers/pie.rb +20 -0
- data/lib/scruffy/renderers/reversed.rb +17 -0
- data/lib/scruffy/renderers/sparkline.rb +10 -0
- data/lib/scruffy/renderers/split.rb +48 -0
- data/lib/scruffy/renderers/standard.rb +36 -0
- data/lib/scruffy/renderers.rb +22 -0
- data/lib/scruffy/themes.rb +156 -0
- data/lib/scruffy/version.rb +9 -0
- data/lib/scruffy.rb +30 -0
- data/test/graph_creation_test.rb +101 -0
- data/test/test_helper.rb +2 -0
- 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
|
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
|
data/test/test_helper.rb
ADDED
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
|