gerbilcharts 0.10.3 → 0.10.10
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.
- 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
|