gerbilcharts 0.10.3 → 0.10.10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/gerbilcharts/charts/area_chart.rb +12 -5
- data/lib/gerbilcharts/charts/chart_base.rb +9 -0
- data/lib/gerbilcharts/charts/line_chart.rb +11 -1
- data/lib/gerbilcharts/charts/square_line_chart.rb +13 -5
- data/lib/gerbilcharts/charts/stacked_area_chart.rb +10 -0
- data/lib/gerbilcharts/models/graph_model.rb +12 -0
- data/lib/gerbilcharts/models/monotonous_graph_model.rb +13 -13
- data/lib/gerbilcharts/models/presets.rb +10 -7
- data/lib/gerbilcharts/surfaces.rb +1 -0
- data/lib/gerbilcharts/surfaces/detailed_legend.rb +3 -3
- data/lib/gerbilcharts/surfaces/graph_element.rb +1 -1
- data/lib/gerbilcharts/surfaces/legend.rb +7 -7
- data/lib/gerbilcharts/surfaces/link_pivots.rb +56 -0
- data/lib/gerbilcharts/surfaces/surface.rb +1 -2
- data/lib/gerbilcharts/surfaces/tracker.rb +3 -3
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9a1ce510c0c862f122e62a8f8344e327fc945b99
|
4
|
+
data.tar.gz: 90277699683b3ea5e065d749c44c66ebd257a571
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a5c8044f04f71eb6b4631fe24481903896d14e80f2b73934b7aa9be7fc56573e88c7393427a153759a81db30f5031deff573ba2ec41b685abfa9330718bd8ad6
|
7
|
+
data.tar.gz: a508675d306932b4c8c57a03ebc9eb1902609b59b697a9d5c064a79abb0482fee90b74b12e986a2189eb0792316c6ae444d6744df377d7f94134c5de788c46fc
|
@@ -23,17 +23,24 @@ class AreaChart < ChartBase
|
|
23
23
|
@thechart.add_child(GerbilCharts::Surfaces::SurfaceBackground.new(:orient => ORIENT_OVERLAY))
|
24
24
|
@thechart.add_child(GerbilCharts::Surfaces::MarkBand.new(:orient => ORIENT_OVERLAY))
|
25
25
|
@thechart.add_child(GerbilCharts::Surfaces::BasicGrid.new(:orient => ORIENT_OVERLAY))
|
26
|
-
@thechart.add_child(GerbilCharts::Surfaces::TitlePanel.new(:orient => ORIENT_OVERLAY, :dim => 30))
|
27
26
|
@thechart.add_child(GerbilCharts::Surfaces::AreaSurface.new(:orient => ORIENT_OVERLAY),:anchor => true)
|
27
|
+
|
28
|
+
# optional features
|
29
|
+
if @feature_timetracker
|
30
|
+
@thechart.add_child(GerbilCharts::Surfaces::Tracker.new(:orient => ORIENT_OVERLAY ))
|
31
|
+
end
|
32
|
+
|
33
|
+
# link pivots
|
34
|
+
if @feature_linkpivots
|
35
|
+
@thechart.add_child(GerbilCharts::Surfaces::LinkPivots.new(:orient => ORIENT_OVERLAY ))
|
36
|
+
end
|
37
|
+
|
38
|
+
@thechart.add_child(GerbilCharts::Surfaces::TitlePanel.new(:orient => ORIENT_OVERLAY, :dim => 30))
|
28
39
|
@thechart.add_child(GerbilCharts::Surfaces::Legend.new(:orient=> ORIENT_OVERLAY, :dim => @legend_width))
|
29
40
|
@thechart.add_child(GerbilCharts::Surfaces::DetailedLegend.new(:orient=> ORIENT_OVERLAY, :dim => 3*@legend_width))
|
30
41
|
@thechart.add_child(GerbilCharts::Surfaces::VerticalAxis.new(:orient => ORIENT_WEST, :dim => 40 ))
|
31
42
|
@thechart.add_child(GerbilCharts::Surfaces::HorizontalTimeAxis.new(:orient => ORIENT_SOUTH, :dim => 25 ))
|
32
43
|
|
33
|
-
# optional features
|
34
|
-
if @feature_timetracker
|
35
|
-
@thechart.add_child(GerbilCharts::Surfaces::Tracker.new(:orient => ORIENT_OVERLAY ))
|
36
|
-
end
|
37
44
|
end
|
38
45
|
|
39
46
|
end
|
@@ -29,6 +29,7 @@ module GerbilCharts::Charts
|
|
29
29
|
# [+:scaling_y+] Allowed values are :auto, :auto_0, and an array [min,max] (default = :auto)
|
30
30
|
# [+:circle_data_points+] Draws a tiny circle around datapoints for tooltips
|
31
31
|
# [+:enabletimetracker+] Time tracker javascript selector (default = false)
|
32
|
+
# [+:enablelinkpivots+] Link Pivot box javascript selector (default = false)
|
32
33
|
#
|
33
34
|
class ChartBase
|
34
35
|
|
@@ -50,6 +51,7 @@ class ChartBase
|
|
50
51
|
attr_reader :thechart
|
51
52
|
attr_reader :renderopts
|
52
53
|
attr_reader :feature_timetracker
|
54
|
+
attr_reader :feature_linkpivots
|
53
55
|
attr_reader :legend_width
|
54
56
|
|
55
57
|
def initialize(opt={})
|
@@ -60,6 +62,13 @@ class ChartBase
|
|
60
62
|
@feature_timetracker=opt[:enabletimetracker]
|
61
63
|
opt.delete :enabletimetracker
|
62
64
|
end
|
65
|
+
|
66
|
+
@enabletimetracker=false
|
67
|
+
if opt[:enablelinkpivots]
|
68
|
+
@feature_linkpivots=opt[:enablelinkpivots]
|
69
|
+
opt.delete :enablelinkpivots
|
70
|
+
end
|
71
|
+
|
63
72
|
|
64
73
|
# pass on options to chart object
|
65
74
|
@thechart = GerbilCharts::Surfaces::Chart.new(opt)
|
@@ -26,8 +26,18 @@ class LineChart < ChartBase
|
|
26
26
|
# other elements
|
27
27
|
@thechart.add_child(GerbilCharts::Surfaces::SurfaceBackground.new(:orient => ORIENT_OVERLAY))
|
28
28
|
@thechart.add_child(GerbilCharts::Surfaces::BasicGrid.new(:orient => ORIENT_OVERLAY))
|
29
|
-
@thechart.add_child(GerbilCharts::Surfaces::TitlePanel.new(:orient => ORIENT_OVERLAY, :dim => 30))
|
30
29
|
@thechart.add_child(GerbilCharts::Surfaces::LineSurface.new(:orient => ORIENT_OVERLAY),:anchor => true)
|
30
|
+
|
31
|
+
# optional features
|
32
|
+
if @feature_timetracker
|
33
|
+
@thechart.add_child(GerbilCharts::Surfaces::Tracker.new(:orient => ORIENT_OVERLAY ))
|
34
|
+
end
|
35
|
+
|
36
|
+
# link pivots
|
37
|
+
if @feature_linkpivots
|
38
|
+
@thechart.add_child(GerbilCharts::Surfaces::LinkPivots.new(:orient => ORIENT_OVERLAY ))
|
39
|
+
end
|
40
|
+
@thechart.add_child(GerbilCharts::Surfaces::TitlePanel.new(:orient => ORIENT_OVERLAY, :dim => 30))
|
31
41
|
@thechart.add_child(GerbilCharts::Surfaces::Legend.new(:orient=> ORIENT_OVERLAY, :dim => @legend_width))
|
32
42
|
@thechart.add_child(GerbilCharts::Surfaces::DetailedLegend.new(:orient=> ORIENT_OVERLAY, :dim => 3*@legend_width))
|
33
43
|
@thechart.add_child(GerbilCharts::Surfaces::VerticalAxis.new(:orient => ORIENT_WEST, :dim => 40 ))
|
@@ -28,17 +28,25 @@ class SquareLineChart < ChartBase
|
|
28
28
|
@thechart.add_child(GerbilCharts::Surfaces::SurfaceBackground.new(:orient => ORIENT_OVERLAY))
|
29
29
|
@thechart.add_child(GerbilCharts::Surfaces::MarkBand.new(:orient => ORIENT_OVERLAY))
|
30
30
|
@thechart.add_child(GerbilCharts::Surfaces::BasicGrid.new(:orient => ORIENT_OVERLAY))
|
31
|
-
@thechart.add_child(GerbilCharts::Surfaces::TitlePanel.new(:orient => ORIENT_OVERLAY, :dim => 30))
|
32
31
|
@thechart.add_child(GerbilCharts::Surfaces::SquareLineSurface.new(:orient => ORIENT_OVERLAY),:anchor => true)
|
33
|
-
@thechart.add_child(GerbilCharts::Surfaces::Legend.new(:orient=> ORIENT_OVERLAY, :dim => @legend_width))
|
34
|
-
@thechart.add_child(GerbilCharts::Surfaces::DetailedLegend.new(:orient=> ORIENT_OVERLAY, :dim => 3*@legend_width))
|
35
|
-
@thechart.add_child(GerbilCharts::Surfaces::VerticalAxis.new(:orient => ORIENT_WEST, :dim => 40 ))
|
36
|
-
@thechart.add_child(GerbilCharts::Surfaces::HorizontalTimeAxis.new(:orient => ORIENT_SOUTH, :dim => 25 ))
|
37
32
|
|
38
33
|
# optional features
|
39
34
|
if @feature_timetracker
|
40
35
|
@thechart.add_child(GerbilCharts::Surfaces::Tracker.new(:orient => ORIENT_OVERLAY ))
|
41
36
|
end
|
37
|
+
|
38
|
+
# link pivots
|
39
|
+
if @feature_linkpivots
|
40
|
+
@thechart.add_child(GerbilCharts::Surfaces::LinkPivots.new(:orient => ORIENT_OVERLAY ))
|
41
|
+
end
|
42
|
+
|
43
|
+
@thechart.add_child(GerbilCharts::Surfaces::TitlePanel.new(:orient => ORIENT_OVERLAY, :dim => 30))
|
44
|
+
@thechart.add_child(GerbilCharts::Surfaces::Legend.new(:orient=> ORIENT_OVERLAY, :dim => @legend_width))
|
45
|
+
@thechart.add_child(GerbilCharts::Surfaces::DetailedLegend.new(:orient=> ORIENT_OVERLAY, :dim => 3*@legend_width))
|
46
|
+
@thechart.add_child(GerbilCharts::Surfaces::VerticalAxis.new(:orient => ORIENT_WEST, :dim => 40 ))
|
47
|
+
@thechart.add_child(GerbilCharts::Surfaces::HorizontalTimeAxis.new(:orient => ORIENT_SOUTH, :dim => 25 ))
|
48
|
+
|
49
|
+
|
42
50
|
end
|
43
51
|
end
|
44
52
|
|
@@ -16,6 +16,16 @@ class StackedAreaChart < ChartBase
|
|
16
16
|
@thechart.add_child(GerbilCharts::Surfaces::StackedGrid.new(:orient => ORIENT_OVERLAY))
|
17
17
|
@thechart.add_child(GerbilCharts::Surfaces::TitlePanel.new(:orient => ORIENT_OVERLAY, :dim => 30))
|
18
18
|
@thechart.add_child(GerbilCharts::Surfaces::StackedAreaSurface.new(:orient => ORIENT_OVERLAY),:anchor => true)
|
19
|
+
|
20
|
+
# optional features
|
21
|
+
if @feature_timetracker
|
22
|
+
@thechart.add_child(GerbilCharts::Surfaces::Tracker.new(:orient => ORIENT_OVERLAY ))
|
23
|
+
end
|
24
|
+
|
25
|
+
# link pivots
|
26
|
+
if @feature_linkpivots
|
27
|
+
@thechart.add_child(GerbilCharts::Surfaces::LinkPivots.new(:orient => ORIENT_OVERLAY ))
|
28
|
+
end
|
19
29
|
@thechart.add_child(GerbilCharts::Surfaces::Legend.new(:orient=> ORIENT_OVERLAY, :dim => @legend_width))
|
20
30
|
@thechart.add_child(GerbilCharts::Surfaces::DetailedLegend.new(:orient=> ORIENT_OVERLAY, :dim => 3*@legend_width))
|
21
31
|
@thechart.add_child(GerbilCharts::Surfaces::VerticalAxis.new(:orient => ORIENT_WEST, :dim => 40 , :cumulative => true ))
|
@@ -15,6 +15,7 @@ class GraphModel
|
|
15
15
|
attr_reader :userlabel1 # map to tooltip 1
|
16
16
|
attr_reader :userlabel2 # map to tooltip 2
|
17
17
|
attr_reader :transformer # value transformer (a lambda function)
|
18
|
+
attr_accessor :href_pivot # href for pivot box (used w/ time selector)
|
18
19
|
|
19
20
|
def initialize(n="Untitled")
|
20
21
|
@name=n
|
@@ -42,11 +43,22 @@ class GraphModel
|
|
42
43
|
h1=h.gsub("{","%7B")
|
43
44
|
@href=h1.gsub("}","%7D")
|
44
45
|
end
|
46
|
+
|
47
|
+
# clean up the href (todo: improve this)
|
48
|
+
def setHrefPivot(h)
|
49
|
+
h1=h.gsub("{","%7B")
|
50
|
+
@href_pivot=h1.gsub("}","%7D")
|
51
|
+
end
|
52
|
+
|
45
53
|
|
46
54
|
def hasHref?
|
47
55
|
return @href != nil
|
48
56
|
end
|
49
57
|
|
58
|
+
def hasHrefPivot?
|
59
|
+
return @href_pivot != nil
|
60
|
+
end
|
61
|
+
|
50
62
|
def setUserData(d)
|
51
63
|
@userdata=d
|
52
64
|
end
|
@@ -168,22 +168,22 @@ class MonotonousGraphModel < GraphModel
|
|
168
168
|
# todo : support :ninety_fifth
|
169
169
|
#
|
170
170
|
def get_statistical_analysis()
|
171
|
-
|
171
|
+
return [0,0,0,0,0] if @yarr.size==0
|
172
172
|
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
173
|
+
a = []
|
174
|
+
a[0]= @yrange.rmin
|
175
|
+
a[1]= @yrange.rmax
|
176
|
+
a[3]=0
|
177
177
|
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
178
|
+
@yarr.each do |v|
|
179
|
+
a[3] = a[3] + v
|
180
|
+
end
|
181
|
+
a[2] = a[3]/@yarr.size
|
182
|
+
a[3] = a[3] * @aggregation_factor
|
183
|
+
a[4] = latest_val
|
184
|
+
return a
|
185
185
|
end
|
186
|
-
|
186
|
+
|
187
187
|
private
|
188
188
|
# recompute ranges
|
189
189
|
def recompute_ranges
|
@@ -16,19 +16,22 @@ public
|
|
16
16
|
[500000,100000], [800000,200000],
|
17
17
|
[1000000,200000], [2000000,500000], [3000000,500000], [4000000,1000000],
|
18
18
|
[5000000,1000000], [6000000, 1000000],
|
19
|
-
[8000000,2000000], [10000000,2000000], [20000000,5000000], [
|
20
|
-
[
|
21
|
-
[1_000_000_000,
|
22
|
-
[10_000_000_000,
|
23
|
-
[
|
24
|
-
|
19
|
+
[8000000,2000000], [10000000,2000000], [20000000,5000000], [50_000_000, 10_000_000],
|
20
|
+
[100_000_000,25_000_000], [200_000_000,50_000_000], [300_000_000,100_000_000], [500_000_000,100_000_000],
|
21
|
+
[1_000_000_000, 250_000_000] , [3_000_000_000, 1_000_000_000] , [5_000_000_000, 1_000_000_000] ,
|
22
|
+
[10_000_000_000, 2_000_000_000] ,
|
23
|
+
[20_000_000_000, 5_000_000_000] ,
|
24
|
+
[50_000_000_000, 10_000_000_000] ,
|
25
|
+
[100_000_000_000, 20_000_000_000] ,
|
26
|
+
[1_000_000_000_000, 200_000_000_000] ,
|
27
|
+
[10_000_000_000_000,2_000_000_000_000] ,
|
25
28
|
]
|
26
29
|
|
27
30
|
TIMEPRESETS = [
|
28
31
|
[0,0], [1,0.2], [5,1], [10,1],[20,5],
|
29
32
|
[30,10],[60,10],[120,15], [300,60], [600,120],
|
30
33
|
[900,300], [1800,300],
|
31
|
-
[3600,
|
34
|
+
[3600,300], [7200,900],[10800,1800], [14400,3600], [21600,3600],
|
32
35
|
[43200, 7200], [86400,7200],
|
33
36
|
[172800, 43200], [259200,86400],
|
34
37
|
[604800, 86400], [1209600,172800],
|
@@ -45,12 +45,12 @@ class DetailedLegend < GraphElement
|
|
45
45
|
|
46
46
|
# toggle detail/mini legend
|
47
47
|
g.rectangle(@bounds.left-5,@bounds.top,5,5, {:href => "javascript:void(0);",
|
48
|
-
:onclick => "showMiniLegend();",
|
48
|
+
:onclick => "showMiniLegend(event);",
|
49
49
|
:fill => "white",
|
50
50
|
:stroke => "none",
|
51
51
|
:gerbiltooltip1 => "Click to show compact legend" })
|
52
|
-
g.textout(@bounds.left-4,@bounds.top+5,'>', {'
|
53
|
-
:onclick => "showMiniLegend();",
|
52
|
+
g.textout(@bounds.left-4,@bounds.top+5,'>', {:class=>'legend-tool',
|
53
|
+
:onclick => "showMiniLegend(event);",
|
54
54
|
:gerbiltooltip1 => "Click to show compact legend" })
|
55
55
|
|
56
56
|
|
@@ -25,13 +25,13 @@ class Legend < GraphElement
|
|
25
25
|
|
26
26
|
# toggle detail/mini legend
|
27
27
|
g.rectangle(@bounds.left-5,@bounds.top,5,5, {:href => "javascript:void(0);",
|
28
|
-
:onclick => "showDetailedLegend();",
|
28
|
+
:onclick => "showDetailedLegend(event);",
|
29
29
|
:fill => "white",
|
30
30
|
:stroke => "none",
|
31
31
|
:gerbiltooltip1 => "Click to show a detailed legend" })
|
32
32
|
|
33
|
-
g.textout(@bounds.left-7,@bounds.top+5,'+', {
|
34
|
-
:onclick => "showDetailedLegend();",
|
33
|
+
g.textout(@bounds.left-7,@bounds.top+5,'+', {:class=> 'legend-tool',
|
34
|
+
:onclick => "showDetailedLegend(event);",
|
35
35
|
:gerbiltooltip1 => "Click to show a detailed legend" })
|
36
36
|
|
37
37
|
# shift
|
@@ -40,8 +40,8 @@ class Legend < GraphElement
|
|
40
40
|
:fill => "white",
|
41
41
|
:stroke => "none",
|
42
42
|
:gerbiltooltip1 => "Click to move legend to left side" })
|
43
|
-
g.textout(@bounds.left-7,@bounds.top+15,'<', {'
|
44
|
-
:onclick => "shiftLegend(#{-@bounds.left+50});",
|
43
|
+
g.textout(@bounds.left-7,@bounds.top+15,'<', {:class=>'legend-tool',
|
44
|
+
:onclick => "shiftLegend(#{-@bounds.left+50});",
|
45
45
|
:gerbiltooltip1 => "Click to move legend to left side" })
|
46
46
|
|
47
47
|
|
@@ -51,8 +51,8 @@ class Legend < GraphElement
|
|
51
51
|
:fill => "white",
|
52
52
|
:stroke => "none" ,
|
53
53
|
:gerbiltooltip1 => "Click to move legend to right side"})
|
54
|
-
g.textout(@bounds.left-7,@bounds.top+25,'>', {
|
55
|
-
:onclick => "shiftLegend(0);",
|
54
|
+
g.textout(@bounds.left-7,@bounds.top+25,'>', {:class => 'legend-tool',
|
55
|
+
:onclick => "shiftLegend(0);",
|
56
56
|
:gerbiltooltip1 => "Click to move legend to right side"})
|
57
57
|
rbox = Rect.new
|
58
58
|
rbox.initfrom(@bounds)
|
@@ -0,0 +1,56 @@
|
|
1
|
+
module GerbilCharts::Surfaces
|
2
|
+
|
3
|
+
# == Link Pivots
|
4
|
+
# When time is selected, we show custom links to Jump to other places
|
5
|
+
#
|
6
|
+
class LinkPivots < GraphElement
|
7
|
+
|
8
|
+
attr_accessor :just
|
9
|
+
|
10
|
+
def initialize(opts={})
|
11
|
+
@class = "linkpivots"
|
12
|
+
super(opts)
|
13
|
+
end
|
14
|
+
|
15
|
+
def int_render(g)
|
16
|
+
opts = {:class => "linkpivots", 'text-anchor' => 'middle' }
|
17
|
+
|
18
|
+
win = g.newwin( "linkpivots", {:class => 'linkpivots' , :visibility => 'hidden' })
|
19
|
+
g.setactivewindow(win)
|
20
|
+
|
21
|
+
# count determines the bounds
|
22
|
+
@bounds.top = @bounds.bottom - 20 * parent.modelgroup.count
|
23
|
+
if @bounds.top < 0
|
24
|
+
@bounds.top =0
|
25
|
+
end
|
26
|
+
|
27
|
+
g.rectangle_r(@bounds)
|
28
|
+
|
29
|
+
# start
|
30
|
+
x = @bounds.left + @bounds.width/2
|
31
|
+
y = @bounds.top + 20
|
32
|
+
|
33
|
+
parent.modelgroup.each_model_with_index do | mod, i|
|
34
|
+
|
35
|
+
if mod.hasHrefPivot?
|
36
|
+
opts.store(:href, mod.href_pivot)
|
37
|
+
opts.store(:base_href, mod.href_pivot)
|
38
|
+
end
|
39
|
+
|
40
|
+
opts.merge!( :id => "item#{i}")
|
41
|
+
g.textout(x,y, "Drill down into #{mod.name}",opts)
|
42
|
+
|
43
|
+
y += 20;
|
44
|
+
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def align_to_anchor(anc)
|
49
|
+
super
|
50
|
+
@bounds.deflate_h(40,40)
|
51
|
+
@bounds.top = @bounds.bottom - 40
|
52
|
+
end
|
53
|
+
|
54
|
+
|
55
|
+
end
|
56
|
+
end
|
@@ -48,7 +48,7 @@ class Tracker < GraphElement
|
|
48
48
|
xfrag.tspan( :id => 'trackertextinterval', :x=>0, :y=>ty) {
|
49
49
|
"15 Minutes"
|
50
50
|
}
|
51
|
-
xfrag.tspan( :class => 'trackertextfromts', :id => 'trackertextfromts', :x=>0, :dy=>
|
51
|
+
xfrag.tspan( :class => 'trackertextfromts', :id => 'trackertextfromts', :x=>0, :dy=>25) {
|
52
52
|
"Starting: Apr 2 1973, 05:00:00 PM"
|
53
53
|
}
|
54
54
|
}
|
@@ -59,8 +59,8 @@ class Tracker < GraphElement
|
|
59
59
|
:gerb_fromts=>rx.rmin.tv_sec,
|
60
60
|
:gerb_seconds=>rx.rmax.tv_sec-rx.rmin.tv_sec,
|
61
61
|
:gerb_scale =>(rx.delta)/parent.anchor.bounds.width,
|
62
|
-
|
63
|
-
|
62
|
+
:gerb_tzoffset => Time.new.utc_offset,
|
63
|
+
:gerb_tzname => Time.new.zone,
|
64
64
|
:gerb_selts=>1,
|
65
65
|
:gerb_selsecs=>1)
|
66
66
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gerbilcharts
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.10.
|
4
|
+
version: 0.10.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- vivek
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-06-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: shoulda
|
@@ -39,7 +39,7 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: juwelier
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - ">="
|
@@ -124,6 +124,7 @@ files:
|
|
124
124
|
- lib/gerbilcharts/surfaces/impulse_surface.rb
|
125
125
|
- lib/gerbilcharts/surfaces/legend.rb
|
126
126
|
- lib/gerbilcharts/surfaces/line_surface.rb
|
127
|
+
- lib/gerbilcharts/surfaces/link_pivots.rb
|
127
128
|
- lib/gerbilcharts/surfaces/mark_band.rb
|
128
129
|
- lib/gerbilcharts/surfaces/matrix_surface.rb
|
129
130
|
- lib/gerbilcharts/surfaces/panel.rb
|
@@ -176,7 +177,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
176
177
|
version: '0'
|
177
178
|
requirements: []
|
178
179
|
rubyforge_project:
|
179
|
-
rubygems_version: 2.
|
180
|
+
rubygems_version: 2.5.1
|
180
181
|
signing_key:
|
181
182
|
specification_version: 4
|
182
183
|
summary: SVG timeseries charting
|