scruffy 0.2.4 → 0.2.5
Sign up to get free protection for your applications and to get access to all the features.
- data/Manifest.txt +0 -1
- data/lib/scruffy/components/data_markers.rb +7 -4
- data/lib/scruffy/components/label.rb +9 -3
- data/lib/scruffy/components/legend.rb +2 -1
- data/lib/scruffy/components/title.rb +11 -3
- data/lib/scruffy/components/value_markers.rb +6 -5
- data/lib/scruffy/layers/pie_slice.rb +26 -21
- data/lib/scruffy/version.rb +1 -1
- data/website/images/graphs/bar_test.png +0 -0
- data/website/images/graphs/line_test.png +0 -0
- data/website/images/graphs/multi_test.png +0 -0
- data/website/images/graphs/pie_test.png +0 -0
- data/website/images/graphs/split_test.png +0 -0
- data/website/images/graphs/stacking_test.png +0 -0
- data/website/index.html +10 -5
- data/website/index.txt +4 -2
- metadata +2 -4
- data/test/test_scruffy.rb +0 -11
data/Manifest.txt
CHANGED
@@ -9,10 +9,13 @@ module Scruffy
|
|
9
9
|
|
10
10
|
(0...options[:point_markers].size).map do |idx|
|
11
11
|
x_coord = point_distance * idx
|
12
|
-
svg.text(options[:point_markers][idx],
|
13
|
-
|
14
|
-
|
15
|
-
|
12
|
+
svg.text(options[:point_markers][idx],
|
13
|
+
:x => x_coord,
|
14
|
+
:y => bounds[:height],
|
15
|
+
'font-size' => relative(90),
|
16
|
+
'font-family' => options[:theme].font_family,
|
17
|
+
:fill => (options[:theme].marker || 'white').to_s,
|
18
|
+
'text-anchor' => 'middle') unless options[:point_markers][idx].nil?
|
16
19
|
end
|
17
20
|
end
|
18
21
|
end # draw
|
@@ -2,9 +2,15 @@ module Scruffy
|
|
2
2
|
module Components
|
3
3
|
class Label < Base
|
4
4
|
def draw(svg, bounds, options={})
|
5
|
-
svg.text(@options[:text],
|
6
|
-
|
7
|
-
|
5
|
+
svg.text(@options[:text],
|
6
|
+
:class => 'text',
|
7
|
+
:x => (bounds[:width] / 2),
|
8
|
+
:y => bounds[:height],
|
9
|
+
'font-size' => relative(100),
|
10
|
+
'font-family' => options[:theme].font_family,
|
11
|
+
:fill => options[:theme].marker,
|
12
|
+
:stroke => 'none', 'stroke-width' => '0',
|
13
|
+
'text-anchor' => (@options[:text_anchor] || 'middle'))
|
8
14
|
end
|
9
15
|
end
|
10
16
|
end
|
@@ -42,11 +42,12 @@ module Scruffy::Components
|
|
42
42
|
:width => size,
|
43
43
|
:height => size,
|
44
44
|
:fill => legend_info[idx][:color])
|
45
|
-
|
45
|
+
|
46
46
|
svg.text(legend_info[idx][:title],
|
47
47
|
:x => x + @line_height,
|
48
48
|
:y => y + text_height * 0.75,
|
49
49
|
'font-size' => text_height,
|
50
|
+
'font-family' => options[:theme].font_family,
|
50
51
|
:style => "color: #{options[:theme].marker || 'white'}",
|
51
52
|
:fill => (options[:theme].marker || 'white'))
|
52
53
|
end
|
@@ -2,9 +2,17 @@ module Scruffy
|
|
2
2
|
module Components
|
3
3
|
class Title < Base
|
4
4
|
def draw(svg, bounds, options={})
|
5
|
-
|
6
|
-
|
7
|
-
|
5
|
+
if options[:title]
|
6
|
+
svg.text(options[:title],
|
7
|
+
:class => 'title',
|
8
|
+
:x => (bounds[:width] / 2),
|
9
|
+
:y => bounds[:height],
|
10
|
+
'font-size' => relative(100),
|
11
|
+
'font-family' => options[:theme].font_family,
|
12
|
+
:fill => options[:theme].marker,
|
13
|
+
:stroke => 'none', 'stroke-width' => '0',
|
14
|
+
'text-anchor' => (@options[:text_anchor] || 'middle'))
|
15
|
+
end
|
8
16
|
end
|
9
17
|
end
|
10
18
|
end
|
@@ -18,11 +18,12 @@ module Scruffy
|
|
18
18
|
marker_value = options[:value_formatter].route_format(marker_value, idx, options.merge({:all_values => all_values})) if options[:value_formatter]
|
19
19
|
|
20
20
|
svg.text( marker_value.to_s,
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
21
|
+
:x => bounds[:width],
|
22
|
+
:y => (bounds[:height] - marker),
|
23
|
+
'font-size' => relative(8),
|
24
|
+
'font-family' => options[:theme].font_family,
|
25
|
+
:fill => ((options.delete(:marker_color_override) || options[:theme].marker) || 'white').to_s,
|
26
|
+
'text-anchor' => 'end')
|
26
27
|
end
|
27
28
|
|
28
29
|
end
|
@@ -1,9 +1,9 @@
|
|
1
1
|
module Scruffy::Layers
|
2
2
|
# ==Scruffy::Layers::PieSlice
|
3
|
-
#
|
3
|
+
#
|
4
4
|
# Author:: A.J. Ostman
|
5
5
|
# Date:: August 14th, 2006
|
6
|
-
#
|
6
|
+
#
|
7
7
|
# Basic Pie Chart Slice..
|
8
8
|
|
9
9
|
class PieSlice < Base
|
@@ -20,10 +20,12 @@ module Scruffy::Layers
|
|
20
20
|
attr_accessor :center_x, :center_y
|
21
21
|
|
22
22
|
def draw(svg, coords, options = {})
|
23
|
-
# Scaler is the multiplier to normalize the values to a percentage across
|
23
|
+
# Scaler is the multiplier to normalize the values to a percentage across
|
24
|
+
# the Pie Chart
|
24
25
|
@scaler = options[:scaler] || 1
|
25
26
|
|
26
|
-
# Degree Offset is degrees by which the pie chart is twisted when it
|
27
|
+
# Degree Offset is degrees by which the pie chart is twisted when it
|
28
|
+
# begins
|
27
29
|
@degree_offset = options[:degree_offset] || @options[:degree_offset] || 0
|
28
30
|
|
29
31
|
# Percent Used keeps track of where in the pie chart we are
|
@@ -42,13 +44,13 @@ module Scruffy::Layers
|
|
42
44
|
shadow_color = options[:shadow_color] || @options[:shadow_color] || "white"
|
43
45
|
shadow_opacity = options[:shadow_opacity] || @options[:shadow_opacity] || 0.06
|
44
46
|
|
45
|
-
# Coordinates for the center of the pie chart.
|
47
|
+
# Coordinates for the center of the pie chart.
|
46
48
|
@center_x = relative_width(options[:center_x]) || relative_width(@options[:center_x]) || relative_width(50)
|
47
49
|
@center_y = relative_height(options[:center_y]) || relative_height(@options[:center_y]) || relative_height(50)
|
48
50
|
radius = @diameter / 2.0
|
49
51
|
|
50
|
-
# Graphing calculated using percent of graph.
|
51
|
-
#
|
52
|
+
# Graphing calculated using percent of graph. We later multiply by 3.6 to
|
53
|
+
# convert to 360 degree system.
|
52
54
|
percent = @scaler * sum_values
|
53
55
|
|
54
56
|
|
@@ -60,8 +62,8 @@ module Scruffy::Layers
|
|
60
62
|
radians_mid_point = radians_start + ((radians_end - radians_start) / 2)
|
61
63
|
|
62
64
|
if options[:explode]
|
63
|
-
|
64
|
-
|
65
|
+
@center_x = @center_x + (Math.sin(radians_mid_point) * relative(options[:explode]))
|
66
|
+
@center_y = @center_y - (Math.cos(radians_mid_point) * relative(options[:explode]))
|
65
67
|
end
|
66
68
|
|
67
69
|
|
@@ -80,7 +82,7 @@ module Scruffy::Layers
|
|
80
82
|
|
81
83
|
if shadow
|
82
84
|
svg.circle(:cx => "#{@center_x + shadow_x}", :cy => "#{@center_y + shadow_y}", :r=>"#{radius}",:stroke => "none",
|
83
|
-
|
85
|
+
:fill => shadow_color.to_s, :style => "fill-opacity: #{shadow_opacity.to_s};")
|
84
86
|
end
|
85
87
|
|
86
88
|
svg.circle(:cx => "#{@center_x}", :cy => "#{@center_y}", :r=>"#{radius}",:stroke => stroke, :fill => color.to_s)
|
@@ -88,27 +90,30 @@ module Scruffy::Layers
|
|
88
90
|
else
|
89
91
|
if shadow
|
90
92
|
svg.path(:d => "M#{@center_x + shadow_x},#{@center_y + shadow_y} L#{x_start + shadow_x},#{y_start + shadow_y} A#{radius},#{radius} 0, #{percent >= 50 ? '1' : '0'}, 1, #{x_end + shadow_x} #{y_end + shadow_y} Z",
|
91
|
-
|
93
|
+
:fill => shadow_color.to_s, :style => "fill-opacity: #{shadow_opacity.to_s};")
|
92
94
|
end
|
93
95
|
|
94
96
|
svg.path(:d => "M#{@center_x},#{@center_y} L#{x_start},#{y_start} A#{radius},#{radius} 0, #{percent >= 50 ? '1' : '0'}, 1, #{x_end} #{y_end} Z",
|
95
|
-
|
97
|
+
:stroke => stroke, :fill => color.to_s)
|
96
98
|
end
|
97
99
|
|
98
100
|
text_x = @center_x + (Math.sin(radians_mid_point) * radius * MARKER_OFFSET_RATIO)
|
99
101
|
text_y = @center_y - (Math.cos(radians_mid_point) * radius * MARKER_OFFSET_RATIO)
|
100
102
|
|
101
|
-
svg.text("#{sprintf('%d', percent)}%",
|
102
|
-
|
103
|
-
|
104
|
-
|
103
|
+
svg.text("#{sprintf('%d', percent)}%",
|
104
|
+
:x => text_x,
|
105
|
+
:y => text_y + relative(MARKER_FONT_SIZE / 2),
|
106
|
+
'font-size' => relative(MARKER_FONT_SIZE),
|
107
|
+
'font-family' => options[:theme].font_family,
|
108
|
+
:fill => (options[:theme].marker || 'black').to_s,
|
109
|
+
'text-anchor' => 'middle')
|
105
110
|
end
|
106
111
|
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
end
|
112
|
+
protected
|
113
|
+
def generate_coordinates(options = {})
|
114
|
+
# Coordinate Generation didn't make much sense here. Overridden just
|
115
|
+
# because Brasten said this would be overridden.
|
112
116
|
end
|
117
|
+
end
|
113
118
|
|
114
119
|
end
|
data/lib/scruffy/version.rb
CHANGED
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/website/index.html
CHANGED
@@ -33,7 +33,7 @@
|
|
33
33
|
<h1></h1>
|
34
34
|
<div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/scruffy"; return false'>
|
35
35
|
<p>Get Version</p>
|
36
|
-
<a href="http://rubyforge.org/projects/scruffy" class="numbers">0.2.
|
36
|
+
<a href="http://rubyforge.org/projects/scruffy" class="numbers">0.2.5</a>
|
37
37
|
</div>
|
38
38
|
<p><a href="index.html">Home</a>
|
39
39
|
<a href="doc">Documentation</a>
|
@@ -246,12 +246,17 @@ Scruffy is designed to be extremely extendible. Adding new graph types or themes
|
|
246
246
|
|
247
247
|
<h2>News
|
248
248
|
<ul>
|
249
|
-
<li><strong>2008-
|
250
|
-
#21517, legend text missing, fixed.
|
251
|
-
#21604, Fails to properly require RMagick, fixed.</li>
|
249
|
+
<li><strong>2008-10-13, Scruffy 0.2.5</strong> – Fixed font_family settings from theme.</li>
|
252
250
|
</ul></h2>
|
253
251
|
|
254
252
|
|
253
|
+
<ul>
|
254
|
+
<li><strong>2008-08-22, Scruffy 0.2.4</strong> – Bug fixes:
|
255
|
+
Bug 21517, legend text missing, fixed.
|
256
|
+
Bug 21604, Fails to properly require RMagick, fixed.</li>
|
257
|
+
</ul>
|
258
|
+
|
259
|
+
|
255
260
|
<ul>
|
256
261
|
<li><strong>July 8th, 2008, Scruffy 0.2.3</strong> – Pie Charts added.</li>
|
257
262
|
</ul>
|
@@ -289,7 +294,7 @@ Check out more examples at <a href="http://www.ibrasten.com/articles/tag/scruffy
|
|
289
294
|
urchinTracker();
|
290
295
|
</script>
|
291
296
|
<p class="coda">
|
292
|
-
|
297
|
+
13th October 2008<br>
|
293
298
|
</p>
|
294
299
|
</div>
|
295
300
|
|
data/website/index.txt
CHANGED
@@ -173,9 +173,11 @@ The trunk repository is <code>svn://rubyforge.org/var/svn/scruffy/trunk</code> f
|
|
173
173
|
Rubyforge Project is <a href="http://rubyforge.org/projects/scruffy/" class="major">here</a>
|
174
174
|
|
175
175
|
h2. News
|
176
|
+
* *2008-10-13, Scruffy 0.2.5* - Fixed font_family settings from theme.
|
177
|
+
|
176
178
|
* *2008-08-22, Scruffy 0.2.4* - Bug fixes:
|
177
|
-
|
178
|
-
|
179
|
+
Bug 21517, legend text missing, fixed.
|
180
|
+
Bug 21604, Fails to properly require RMagick, fixed.
|
179
181
|
|
180
182
|
* *July 8th, 2008, Scruffy 0.2.3* - Pie Charts added.
|
181
183
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: scruffy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brasten Sager
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-
|
12
|
+
date: 2008-10-13 00:00:00 +11:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -111,7 +111,6 @@ files:
|
|
111
111
|
- tasks/website.rake
|
112
112
|
- test/graph_creation_test.rb
|
113
113
|
- test/test_helper.rb
|
114
|
-
- test/test_scruffy.rb
|
115
114
|
- website/images/blank.gif.html
|
116
115
|
- website/images/graphs/all_smiles.png
|
117
116
|
- website/images/graphs/bar_test.png
|
@@ -178,4 +177,3 @@ specification_version: 2
|
|
178
177
|
summary: A powerful, clean graphing library for Ruby.
|
179
178
|
test_files:
|
180
179
|
- test/test_helper.rb
|
181
|
-
- test/test_scruffy.rb
|