Kelsin-lilygraph 0.4.0 → 0.4.1
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/VERSION +1 -1
- data/doc/classes/Lilygraph.html +13 -0
- data/doc/classes/Lilygraph.src/M000001.html +4 -2
- data/doc/classes/Lilygraph.src/M000002.html +1 -1
- data/doc/classes/Lilygraph.src/M000003.html +14 -1
- data/doc/created.rid +1 -1
- data/doc/files/lib/lilygraph_rb.html +1 -1
- data/lib/lilygraph.rb +23 -1
- data/lilygraph.gemspec +1 -1
- metadata +1 -1
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.4.1
|
data/doc/classes/Lilygraph.html
CHANGED
@@ -220,6 +220,19 @@ An array of labels to use on the y axis. Make sure you have the right
|
|
220
220
|
number of labels. The size of this array should = the size of the data
|
221
221
|
array.
|
222
222
|
|
223
|
+
</td>
|
224
|
+
</tr>
|
225
|
+
<tr class="top-aligned-row context-row">
|
226
|
+
<td class="context-item-name">legend</td>
|
227
|
+
<td class="context-item-value"> [RW] </td>
|
228
|
+
<td class="context-item-desc">
|
229
|
+
This allows you to make a legend for your graph. Just pass in a hash of
|
230
|
+
color => text pairs. Set to nil if you don‘t want a legend. No
|
231
|
+
legend is the default.
|
232
|
+
|
233
|
+
<pre>
|
234
|
+
graph.legend = { '#ff0000' => 'Chris', '#00ff00' => 'Caitlin' }
|
235
|
+
</pre>
|
223
236
|
</td>
|
224
237
|
</tr>
|
225
238
|
</table>
|
@@ -10,14 +10,16 @@
|
|
10
10
|
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
11
11
|
</head>
|
12
12
|
<body class="standalone-code">
|
13
|
-
<pre><span class="ruby-comment cmt"># File lib/lilygraph.rb, line
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/lilygraph.rb, line 84</span>
|
14
14
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">options</span> = {})
|
15
15
|
<span class="ruby-ivar">@options</span> = <span class="ruby-constant">DEFAULT_OPTIONS</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">options</span>)
|
16
16
|
<span class="ruby-ivar">@data</span> = []
|
17
17
|
<span class="ruby-ivar">@labels</span> = []
|
18
18
|
|
19
|
+
<span class="ruby-ivar">@legend</span> = <span class="ruby-keyword kw">nil</span>
|
20
|
+
|
19
21
|
<span class="ruby-ivar">@colors</span> = <span class="ruby-constant">Proc</span>.<span class="ruby-identifier">new</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">data_index</span>, <span class="ruby-identifier">number_index</span>, <span class="ruby-identifier">data_size</span>, <span class="ruby-identifier">number_size</span><span class="ruby-operator">|</span>
|
20
|
-
<span class="ruby-constant">Color</span><span class="ruby-operator">::</span><span class="ruby-constant">HSL</span>.<span class="ruby-identifier">from_fraction</span>(<span class="ruby-constant">Float</span>(<span class="ruby-identifier">data_index</span>) <span class="ruby-operator">/</span> <span class="ruby-constant">Float</span>(<span class="ruby-identifier">data_size</span>), <span class="ruby-value">1.0</span>, <span class="ruby-value">0</span><span class="ruby-value">.4</span> <span class="ruby-operator">+</span> (<span class="ruby-constant">Float</span>(<span class="ruby-identifier">number_index</span>) <span class="ruby-operator">/</span> <span class="ruby-constant">Float</span>(<span class="ruby-identifier">number_size</span>) <span class="ruby-operator">*</span> <span class="ruby-value">0</span><span class="ruby-value">.4</span>)).<span class="ruby-identifier">
|
22
|
+
<span class="ruby-constant">Color</span><span class="ruby-operator">::</span><span class="ruby-constant">HSL</span>.<span class="ruby-identifier">from_fraction</span>(<span class="ruby-constant">Float</span>(<span class="ruby-identifier">data_index</span>) <span class="ruby-operator">/</span> <span class="ruby-constant">Float</span>(<span class="ruby-identifier">data_size</span>), <span class="ruby-value">1.0</span>, <span class="ruby-value">0</span><span class="ruby-value">.4</span> <span class="ruby-operator">+</span> (<span class="ruby-constant">Float</span>(<span class="ruby-identifier">number_index</span>) <span class="ruby-operator">/</span> <span class="ruby-constant">Float</span>(<span class="ruby-identifier">number_size</span>) <span class="ruby-operator">*</span> <span class="ruby-value">0</span><span class="ruby-value">.4</span>)).<span class="ruby-identifier">html</span>
|
21
23
|
<span class="ruby-keyword kw">end</span>
|
22
24
|
<span class="ruby-keyword kw">end</span></pre>
|
23
25
|
</body>
|
@@ -10,7 +10,7 @@
|
|
10
10
|
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
11
11
|
</head>
|
12
12
|
<body class="standalone-code">
|
13
|
-
<pre><span class="ruby-comment cmt"># File lib/lilygraph.rb, line
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/lilygraph.rb, line 98</span>
|
14
14
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">update_options</span>(<span class="ruby-identifier">options</span> = {})
|
15
15
|
<span class="ruby-ivar">@options</span> = <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">options</span>)
|
16
16
|
<span class="ruby-keyword kw">end</span></pre>
|
@@ -10,7 +10,7 @@
|
|
10
10
|
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
11
11
|
</head>
|
12
12
|
<body class="standalone-code">
|
13
|
-
<pre><span class="ruby-comment cmt"># File lib/lilygraph.rb, line
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/lilygraph.rb, line 110</span>
|
14
14
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">render</span>
|
15
15
|
<span class="ruby-identifier">output</span> = <span class="ruby-value str">""</span>
|
16
16
|
<span class="ruby-identifier">xml</span> = <span class="ruby-constant">Builder</span><span class="ruby-operator">::</span><span class="ruby-constant">XmlMarkup</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">:target</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">output</span>, <span class="ruby-identifier">:indent</span> =<span class="ruby-operator">></span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:indent</span>])
|
@@ -120,6 +120,19 @@
|
|
120
120
|
<span class="ruby-keyword kw">end</span>
|
121
121
|
<span class="ruby-keyword kw">end</span>
|
122
122
|
|
123
|
+
<span class="ruby-comment cmt"># Legend</span>
|
124
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@legend</span>
|
125
|
+
<span class="ruby-identifier">legend_x</span> = <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:viewbox</span>][<span class="ruby-identifier">:width</span>] <span class="ruby-operator">-</span> (<span class="ruby-value">3</span> <span class="ruby-operator">*</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:margin</span>][<span class="ruby-identifier">:right</span>])
|
126
|
+
<span class="ruby-identifier">legend_y</span> = <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:margin</span>][<span class="ruby-identifier">:top</span>] <span class="ruby-operator">/</span> <span class="ruby-value">2</span>
|
127
|
+
<span class="ruby-identifier">xml</span>.<span class="ruby-identifier">rect</span> <span class="ruby-identifier">:fill</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'#ffffff'</span>, <span class="ruby-identifier">:stroke</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'#000000'</span>, <span class="ruby-value str">'stroke-width'</span> =<span class="ruby-operator">></span> <span class="ruby-value">2</span>, <span class="ruby-identifier">:x</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">legend_x</span>, <span class="ruby-identifier">:y</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">legend_y</span>, <span class="ruby-identifier">:width</span> =<span class="ruby-operator">></span> (<span class="ruby-value">2.5</span> <span class="ruby-operator">*</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:margin</span>][<span class="ruby-identifier">:right</span>]), <span class="ruby-identifier">:height</span> =<span class="ruby-operator">></span> (<span class="ruby-ivar">@legend</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">*</span> <span class="ruby-value">15</span>) <span class="ruby-operator">+</span> <span class="ruby-value">16</span>
|
128
|
+
|
129
|
+
<span class="ruby-ivar">@legend</span>.<span class="ruby-identifier">sort</span>.<span class="ruby-identifier">each_with_index</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">data</span>, <span class="ruby-identifier">index</span><span class="ruby-operator">|</span>
|
130
|
+
<span class="ruby-identifier">color</span>, <span class="ruby-identifier">label</span> = <span class="ruby-identifier">data</span>
|
131
|
+
<span class="ruby-identifier">xml</span>.<span class="ruby-identifier">rect</span> <span class="ruby-identifier">:fill</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">color</span>, <span class="ruby-identifier">:stroke</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">color</span>, <span class="ruby-value str">'stroke-width'</span> =<span class="ruby-operator">></span> <span class="ruby-value">0</span>, <span class="ruby-identifier">:x</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">legend_x</span> <span class="ruby-operator">+</span> <span class="ruby-value">10</span>, <span class="ruby-identifier">:y</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">legend_y</span> <span class="ruby-operator">+</span> <span class="ruby-value">10</span> <span class="ruby-operator">+</span> (<span class="ruby-identifier">index</span> <span class="ruby-operator">*</span> <span class="ruby-value">15</span>), <span class="ruby-identifier">:width</span> =<span class="ruby-operator">></span> <span class="ruby-value">35</span>, <span class="ruby-identifier">:height</span> =<span class="ruby-operator">></span> <span class="ruby-value">10</span>
|
132
|
+
<span class="ruby-identifier">xml</span>.<span class="ruby-identifier">text</span> <span class="ruby-identifier">label</span>, <span class="ruby-identifier">:x</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">legend_x</span> <span class="ruby-operator">+</span> <span class="ruby-value">70</span>, <span class="ruby-identifier">:y</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">legend_y</span> <span class="ruby-operator">+</span> <span class="ruby-value">18</span> <span class="ruby-operator">+</span> (<span class="ruby-identifier">index</span> <span class="ruby-operator">*</span> <span class="ruby-value">15</span>), <span class="ruby-value str">'text-anchor'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'left'</span>
|
133
|
+
<span class="ruby-keyword kw">end</span>
|
134
|
+
<span class="ruby-keyword kw">end</span>
|
135
|
+
|
123
136
|
<span class="ruby-comment cmt"># Yield in case they want to do some custom drawing and have a block ready</span>
|
124
137
|
<span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">xml</span>, <span class="ruby-ivar">@options</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
|
125
138
|
|
data/doc/created.rid
CHANGED
@@ -1 +1 @@
|
|
1
|
-
Thu, 20 Aug 2009
|
1
|
+
Thu, 20 Aug 2009 17:21:08 -0400
|
data/lib/lilygraph.rb
CHANGED
@@ -61,7 +61,14 @@ class Lilygraph
|
|
61
61
|
# Color::HSL.from_fraction(Float(data_index) / Float(data_size), 1.0, 0.4 + (Float(number_index) / Float(number_size) * 0.4)).to_rgb.html
|
62
62
|
# end
|
63
63
|
attr_accessor :colors
|
64
|
-
|
64
|
+
|
65
|
+
# This allows you to make a legend for your graph. Just pass in a hash of
|
66
|
+
# color => text pairs. Set to nil if you don't want a legend. No legend is the
|
67
|
+
# default.
|
68
|
+
#
|
69
|
+
# graph.legend = { '#ff0000' => 'Chris', '#00ff00' => 'Caitlin' }
|
70
|
+
attr_accessor :legend
|
71
|
+
|
65
72
|
# Returns a new graph creator with some default options specified via a hash:
|
66
73
|
# height:: String to use as height parameter on the svg tag. Default is <tt>'100%'</tt>.
|
67
74
|
# width:: String to use as width parameter on the svg tag. Default is <tt>'100%'</tt>.
|
@@ -79,6 +86,8 @@ class Lilygraph
|
|
79
86
|
@data = []
|
80
87
|
@labels = []
|
81
88
|
|
89
|
+
@legend = nil
|
90
|
+
|
82
91
|
@colors = Proc.new do |data_index, number_index, data_size, number_size|
|
83
92
|
Color::HSL.from_fraction(Float(data_index) / Float(data_size), 1.0, 0.4 + (Float(number_index) / Float(number_size) * 0.4)).html
|
84
93
|
end
|
@@ -207,6 +216,19 @@ class Lilygraph
|
|
207
216
|
end
|
208
217
|
end
|
209
218
|
|
219
|
+
# Legend
|
220
|
+
if @legend
|
221
|
+
legend_x = @options[:viewbox][:width] - (3 * @options[:margin][:right])
|
222
|
+
legend_y = @options[:margin][:top] / 2
|
223
|
+
xml.rect :fill => '#ffffff', :stroke => '#000000', 'stroke-width' => 2, :x => legend_x, :y => legend_y, :width => (2.5 * @options[:margin][:right]), :height => (@legend.size * 15) + 16
|
224
|
+
|
225
|
+
@legend.sort.each_with_index do |data, index|
|
226
|
+
color, label = data
|
227
|
+
xml.rect :fill => color, :stroke => color, 'stroke-width' => 0, :x => legend_x + 10, :y => legend_y + 10 + (index * 15), :width => 35, :height => 10
|
228
|
+
xml.text label, :x => legend_x + 55, :y => legend_y + 18 + (index * 15), 'text-anchor' => 'left'
|
229
|
+
end
|
230
|
+
end
|
231
|
+
|
210
232
|
# Yield in case they want to do some custom drawing and have a block ready
|
211
233
|
yield(xml, @options) if block_given?
|
212
234
|
|
data/lilygraph.gemspec
CHANGED