gruff 0.29.0-java → 0.31.0-java
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/.github/dependabot.yml +6 -0
- data/.github/workflows/ci.yml +19 -26
- data/.github/workflows/release.yml +24 -0
- data/.rubocop.yml +15 -0
- data/.rubocop_todo.yml +11 -0
- data/CHANGELOG.md +9 -0
- data/Gemfile +2 -0
- data/gruff.gemspec +1 -0
- data/init.rb +1 -0
- data/lib/gruff/accumulator_bar.rb +1 -0
- data/lib/gruff/area.rb +2 -0
- data/lib/gruff/bar.rb +5 -0
- data/lib/gruff/base.rb +59 -2
- data/lib/gruff/bezier.rb +1 -0
- data/lib/gruff/box.rb +8 -0
- data/lib/gruff/bubble.rb +4 -0
- data/lib/gruff/bullet.rb +4 -0
- data/lib/gruff/candlestick.rb +20 -8
- data/lib/gruff/dot.rb +4 -0
- data/lib/gruff/font.rb +2 -0
- data/lib/gruff/helper/bar_value_label.rb +2 -0
- data/lib/gruff/helper/stacked_mixin.rb +1 -0
- data/lib/gruff/histogram.rb +3 -0
- data/lib/gruff/line.rb +28 -0
- data/lib/gruff/mini/bar.rb +4 -0
- data/lib/gruff/mini/legend.rb +15 -3
- data/lib/gruff/mini/pie.rb +4 -0
- data/lib/gruff/mini/side_bar.rb +4 -0
- data/lib/gruff/net.rb +7 -1
- data/lib/gruff/patch/rmagick.rb +11 -0
- data/lib/gruff/patch/string.rb +3 -0
- data/lib/gruff/pie.rb +8 -0
- data/lib/gruff/renderer/bezier.rb +1 -0
- data/lib/gruff/renderer/circle.rb +1 -0
- data/lib/gruff/renderer/dash_line.rb +1 -0
- data/lib/gruff/renderer/dot.rb +13 -0
- data/lib/gruff/renderer/ellipse.rb +1 -0
- data/lib/gruff/renderer/line.rb +7 -0
- data/lib/gruff/renderer/polygon.rb +2 -0
- data/lib/gruff/renderer/polyline.rb +1 -0
- data/lib/gruff/renderer/rectangle.rb +1 -0
- data/lib/gruff/renderer/renderer.rb +26 -3
- data/lib/gruff/renderer/text.rb +5 -1
- data/lib/gruff/scatter.rb +17 -0
- data/lib/gruff/side_bar.rb +9 -0
- data/lib/gruff/side_stacked_bar.rb +3 -0
- data/lib/gruff/spider.rb +26 -2
- data/lib/gruff/stacked_area.rb +5 -0
- data/lib/gruff/stacked_bar.rb +5 -0
- data/lib/gruff/store/basic_data.rb +4 -0
- data/lib/gruff/store/store.rb +8 -0
- data/lib/gruff/store/xy_data.rb +2 -0
- data/lib/gruff/store/xy_pointsizes_data.rb +2 -0
- data/lib/gruff/version.rb +1 -1
- data/lib/gruff.rb +2 -0
- data/sig/generated/gruff/accumulator_bar.rbs +2 -1
- data/sig/generated/gruff/area.rbs +4 -2
- data/sig/generated/gruff/bar.rbs +10 -5
- data/sig/generated/gruff/base.rbs +113 -53
- data/sig/generated/gruff/bezier.rbs +2 -1
- data/sig/generated/gruff/box.rbs +13 -5
- data/sig/generated/gruff/bubble.rbs +8 -4
- data/sig/generated/gruff/bullet.rbs +8 -4
- data/sig/generated/gruff/candlestick.rbs +26 -14
- data/sig/generated/gruff/dot.rbs +8 -4
- data/sig/generated/gruff/font.rbs +3 -1
- data/sig/generated/gruff/helper/bar_value_label.rbs +4 -2
- data/sig/generated/gruff/helper/stacked_mixin.rbs +2 -1
- data/sig/generated/gruff/histogram.rbs +6 -3
- data/sig/generated/gruff/line.rbs +44 -16
- data/sig/generated/gruff/mini/bar.rbs +27 -0
- data/sig/generated/gruff/mini/legend.rbs +36 -0
- data/sig/generated/gruff/mini/pie.rbs +26 -0
- data/sig/generated/gruff/mini/side_bar.rbs +34 -0
- data/sig/generated/gruff/net.rbs +12 -6
- data/sig/generated/gruff/patch/rmagick.rbs +25 -0
- data/sig/generated/gruff/patch/string.rbs +11 -0
- data/sig/generated/gruff/pie.rbs +15 -7
- data/sig/generated/gruff/renderer/bezier.rbs +2 -1
- data/sig/generated/gruff/renderer/circle.rbs +2 -1
- data/sig/generated/gruff/renderer/dash_line.rbs +2 -1
- data/sig/generated/gruff/renderer/dot.rbs +17 -4
- data/sig/generated/gruff/renderer/ellipse.rbs +2 -1
- data/sig/generated/gruff/renderer/line.rbs +9 -2
- data/sig/generated/gruff/renderer/polygon.rbs +17 -0
- data/sig/generated/gruff/renderer/polyline.rbs +2 -1
- data/sig/generated/gruff/renderer/rectangle.rbs +2 -1
- data/sig/generated/gruff/renderer/renderer.rbs +31 -8
- data/sig/generated/gruff/renderer/text.rbs +7 -3
- data/sig/generated/gruff/scatter.rbs +30 -13
- data/sig/generated/gruff/side_bar.rbs +15 -6
- data/sig/generated/gruff/side_stacked_bar.rbs +6 -3
- data/sig/generated/gruff/spider.rbs +35 -11
- data/sig/generated/gruff/stacked_area.rbs +9 -4
- data/sig/generated/gruff/stacked_bar.rbs +10 -5
- data/sig/generated/gruff/store/basic_data.rbs +8 -4
- data/sig/generated/gruff/store/store.rbs +12 -4
- data/sig/generated/gruff/store/xy_data.rbs +4 -2
- data/sig/generated/gruff/store/xy_pointsizes_data.rbs +4 -2
- data/sig/generated/gruff.rbs +3 -1
- metadata +13 -3
data/lib/gruff/scatter.rb
CHANGED
|
@@ -31,6 +31,8 @@ class Gruff::Scatter < Gruff::Base
|
|
|
31
31
|
|
|
32
32
|
# Allow enabling vertical lines. When you have a lot of data, they can work great.
|
|
33
33
|
# @deprecated Please use {#show_vertical_markers=} instead.
|
|
34
|
+
# @rbs value: bool
|
|
35
|
+
# @rbs return: void
|
|
34
36
|
def enable_vertical_line_markers=(value)
|
|
35
37
|
warn '#enable_vertical_line_markers= is deprecated. Please use `show_vertical_markers` attribute instead'
|
|
36
38
|
@show_vertical_markers = value
|
|
@@ -38,12 +40,16 @@ class Gruff::Scatter < Gruff::Base
|
|
|
38
40
|
|
|
39
41
|
# Allow using vertical labels in the X axis.
|
|
40
42
|
# @deprecated Please use {Gruff::Base#label_rotation=} instead.
|
|
43
|
+
# @rbs _value: untyped
|
|
44
|
+
# @rbs return: void
|
|
41
45
|
def use_vertical_x_labels=(_value)
|
|
42
46
|
warn '#use_vertical_x_labels= is deprecated. It is no longer effective. Please use `#label_rotation=` instead'
|
|
43
47
|
end
|
|
44
48
|
|
|
45
49
|
# Allow using vertical labels in the X axis (and setting the label margin).
|
|
46
50
|
# @deprecated
|
|
51
|
+
# @rbs _value: untyped
|
|
52
|
+
# @rbs return: void
|
|
47
53
|
def x_label_margin=(_value)
|
|
48
54
|
warn '#x_label_margin= is deprecated. It is no longer effective.'
|
|
49
55
|
end
|
|
@@ -51,6 +57,8 @@ class Gruff::Scatter < Gruff::Base
|
|
|
51
57
|
# Allow disabling the significant rounding when labeling the X axis.
|
|
52
58
|
# This is useful when working with a small range of high values (for example, a date range of months, while seconds as units).
|
|
53
59
|
# @deprecated
|
|
60
|
+
# @rbs _value: untyped
|
|
61
|
+
# @rbs return: void
|
|
54
62
|
def disable_significant_rounding_x_axis=(_value)
|
|
55
63
|
warn '#disable_significant_rounding_x_axis= is deprecated. It is no longer effective.'
|
|
56
64
|
end
|
|
@@ -93,6 +101,7 @@ class Gruff::Scatter < Gruff::Base
|
|
|
93
101
|
# @rbs x_data_points: Array[nil | Float | Integer] | nil
|
|
94
102
|
# @rbs y_data_points: Array[nil | Float | Integer] | nil
|
|
95
103
|
# @rbs color: String
|
|
104
|
+
# @rbs return: void
|
|
96
105
|
def data(name, x_data_points = [], y_data_points = [], color = nil)
|
|
97
106
|
# make sure it's an array
|
|
98
107
|
x_data_points = Array(x_data_points)
|
|
@@ -111,10 +120,12 @@ class Gruff::Scatter < Gruff::Base
|
|
|
111
120
|
|
|
112
121
|
private
|
|
113
122
|
|
|
123
|
+
# @rbs return: void
|
|
114
124
|
def initialize_store
|
|
115
125
|
@store = Gruff::Store.new(Gruff::Store::XYData)
|
|
116
126
|
end
|
|
117
127
|
|
|
128
|
+
# @rbs return: void
|
|
118
129
|
def initialize_attributes
|
|
119
130
|
super
|
|
120
131
|
|
|
@@ -125,11 +136,13 @@ private
|
|
|
125
136
|
@stroke_width = nil
|
|
126
137
|
end
|
|
127
138
|
|
|
139
|
+
# @rbs return: void
|
|
128
140
|
def setup_drawing
|
|
129
141
|
@center_labels_over_point = false
|
|
130
142
|
super
|
|
131
143
|
end
|
|
132
144
|
|
|
145
|
+
# @rbs return: void
|
|
133
146
|
def setup_data
|
|
134
147
|
# TODO: Need to get x-axis labels working. Current behavior will be to not allow.
|
|
135
148
|
@labels = {}
|
|
@@ -147,6 +160,7 @@ private
|
|
|
147
160
|
super
|
|
148
161
|
end
|
|
149
162
|
|
|
163
|
+
# @rbs return: void
|
|
150
164
|
def draw_graph
|
|
151
165
|
stroke_width = @stroke_width || clip_value_if_greater_than(@columns / (store.norm_data.first.x_points.size * 4.0), 5.0)
|
|
152
166
|
circle_radius = @circle_radius || clip_value_if_greater_than(@columns / (store.norm_data.first.x_points.size * 2.5), 5.0)
|
|
@@ -163,18 +177,21 @@ private
|
|
|
163
177
|
end
|
|
164
178
|
end
|
|
165
179
|
|
|
180
|
+
# @rbs return: void
|
|
166
181
|
def calculate_spread
|
|
167
182
|
super
|
|
168
183
|
@x_spread = @maximum_x_value.to_f - @minimum_x_value.to_f
|
|
169
184
|
@x_spread = @x_spread > 0 ? @x_spread : 1.0
|
|
170
185
|
end
|
|
171
186
|
|
|
187
|
+
# @rbs return: void
|
|
172
188
|
def normalize
|
|
173
189
|
return unless data_given?
|
|
174
190
|
|
|
175
191
|
store.normalize(minimum_x: @minimum_x_value, spread_x: @x_spread, minimum_y: minimum_value, spread_y: @spread)
|
|
176
192
|
end
|
|
177
193
|
|
|
194
|
+
# @rbs return: void
|
|
178
195
|
def draw_line_markers
|
|
179
196
|
# do all of the stuff for the horizontal lines on the y-axis
|
|
180
197
|
super
|
data/lib/gruff/side_bar.rb
CHANGED
|
@@ -55,12 +55,15 @@ class Gruff::SideBar < Gruff::Base
|
|
|
55
55
|
|
|
56
56
|
# With Side Bars use the data label for the marker value to the left of the bar.
|
|
57
57
|
# @deprecated
|
|
58
|
+
# @rbs _value: untyped
|
|
59
|
+
# @rbs return: void
|
|
58
60
|
def use_data_label=(_value)
|
|
59
61
|
warn '#use_data_label is deprecated. It is no longer effective.'
|
|
60
62
|
end
|
|
61
63
|
|
|
62
64
|
private
|
|
63
65
|
|
|
66
|
+
# @rbs return: void
|
|
64
67
|
def initialize_attributes
|
|
65
68
|
super
|
|
66
69
|
@bar_spacing = 0.9
|
|
@@ -85,6 +88,7 @@ private
|
|
|
85
88
|
@hide_line_markers && @x_axis_label.nil? && @legend_at_bottom == false
|
|
86
89
|
end
|
|
87
90
|
|
|
91
|
+
# @rbs return: void
|
|
88
92
|
def setup_graph_measurements
|
|
89
93
|
super
|
|
90
94
|
return if @hide_line_markers
|
|
@@ -105,6 +109,7 @@ private
|
|
|
105
109
|
end
|
|
106
110
|
end
|
|
107
111
|
|
|
112
|
+
# @rbs return: void
|
|
108
113
|
def draw_graph
|
|
109
114
|
# Setup spacing.
|
|
110
115
|
#
|
|
@@ -148,6 +153,7 @@ private
|
|
|
148
153
|
end
|
|
149
154
|
|
|
150
155
|
# Instead of base class version, draws vertical background lines and label
|
|
156
|
+
# @rbs return: void
|
|
151
157
|
def draw_line_markers
|
|
152
158
|
return if @hide_line_markers
|
|
153
159
|
|
|
@@ -176,6 +182,9 @@ private
|
|
|
176
182
|
##
|
|
177
183
|
# Draw on the Y axis instead of the X
|
|
178
184
|
|
|
185
|
+
# @rbs y_offset: Float | Integer
|
|
186
|
+
# @rbs index: Integer
|
|
187
|
+
# @rbs return: void
|
|
179
188
|
def draw_label(y_offset, index)
|
|
180
189
|
draw_unique_label(index) do
|
|
181
190
|
draw_label_at(@graph_left - @label_margin, 1.0, 0.0, y_offset, @labels[index], gravity: Magick::EastGravity)
|
|
@@ -52,6 +52,7 @@ class Gruff::SideStackedBar < Gruff::SideBar
|
|
|
52
52
|
|
|
53
53
|
private
|
|
54
54
|
|
|
55
|
+
# @rbs return: void
|
|
55
56
|
def initialize_attributes
|
|
56
57
|
super
|
|
57
58
|
@bar_spacing = 0.9
|
|
@@ -62,11 +63,13 @@ private
|
|
|
62
63
|
@minimum_value = 0.0
|
|
63
64
|
end
|
|
64
65
|
|
|
66
|
+
# @rbs return: void
|
|
65
67
|
def setup_data
|
|
66
68
|
calculate_maximum_by_stack
|
|
67
69
|
super
|
|
68
70
|
end
|
|
69
71
|
|
|
72
|
+
# @rbs return: void
|
|
70
73
|
def draw_graph
|
|
71
74
|
# Setup spacing.
|
|
72
75
|
#
|
data/lib/gruff/spider.rb
CHANGED
|
@@ -30,12 +30,14 @@ class Gruff::Spider < Gruff::Base
|
|
|
30
30
|
end
|
|
31
31
|
|
|
32
32
|
# @rbs value: bool
|
|
33
|
+
# @rbs return: void
|
|
33
34
|
def hide_text=(value)
|
|
34
35
|
@hide_title = @hide_text = value
|
|
35
36
|
end
|
|
36
37
|
|
|
37
38
|
private
|
|
38
39
|
|
|
40
|
+
# @rbs return: void
|
|
39
41
|
def initialize_attributes
|
|
40
42
|
super
|
|
41
43
|
@hide_legend = true
|
|
@@ -48,11 +50,13 @@ private
|
|
|
48
50
|
@hide_line_markers.freeze
|
|
49
51
|
end
|
|
50
52
|
|
|
53
|
+
# @rbs return: void
|
|
51
54
|
def setup_drawing
|
|
52
55
|
@center_labels_over_point = false
|
|
53
56
|
super
|
|
54
57
|
end
|
|
55
58
|
|
|
59
|
+
# @rbs return: void
|
|
56
60
|
def setup_graph_measurements
|
|
57
61
|
super
|
|
58
62
|
|
|
@@ -65,12 +69,14 @@ private
|
|
|
65
69
|
@graph_height = @graph_bottom - @graph_top
|
|
66
70
|
end
|
|
67
71
|
|
|
72
|
+
# @rbs return: void
|
|
68
73
|
def setup_data
|
|
69
74
|
raise(Gruff::IncorrectNumberOfDatasetsException, 'Requires 3 or more data sets') if store.length < 3
|
|
70
75
|
|
|
71
76
|
super
|
|
72
77
|
end
|
|
73
78
|
|
|
79
|
+
# @rbs return: void
|
|
74
80
|
def draw_graph
|
|
75
81
|
# Setup basic positioning
|
|
76
82
|
radius = @graph_height / 2.0
|
|
@@ -88,11 +94,18 @@ private
|
|
|
88
94
|
draw_polygon(center_x, center_y, additive_angle)
|
|
89
95
|
end
|
|
90
96
|
|
|
91
|
-
# @rbs value:
|
|
97
|
+
# @rbs value: Float | Integer
|
|
98
|
+
# @rbs return: Float
|
|
92
99
|
def normalize_points(value)
|
|
93
|
-
value.to_f * @unit_length
|
|
100
|
+
(value.to_f * @unit_length).to_f
|
|
94
101
|
end
|
|
95
102
|
|
|
103
|
+
# @rbs center_x: Float | Integer
|
|
104
|
+
# @rbs center_y: Float | Integer
|
|
105
|
+
# @rbs angle: Float | Integer
|
|
106
|
+
# @rbs radius: Float | Integer
|
|
107
|
+
# @rbs amount: Float | Integer
|
|
108
|
+
# @rbs return: void
|
|
96
109
|
def draw_label(center_x, center_y, angle, radius, amount)
|
|
97
110
|
degree = rad2deg(angle)
|
|
98
111
|
metrics = text_metrics(@marker_font, amount)
|
|
@@ -118,6 +131,12 @@ private
|
|
|
118
131
|
draw_label_at(metrics.width, metrics.height, x, y, amount, gravity: Magick::CenterGravity)
|
|
119
132
|
end
|
|
120
133
|
|
|
134
|
+
# @rbs center_x: Float | Integer
|
|
135
|
+
# @rbs center_y: Float | Integer
|
|
136
|
+
# @rbs radius: Float | Integer
|
|
137
|
+
# @rbs additive_angle: Float | Integer
|
|
138
|
+
# @rbs line_color: String | nil
|
|
139
|
+
# @rbs return: void
|
|
121
140
|
def draw_axes(center_x, center_y, radius, additive_angle, line_color = nil)
|
|
122
141
|
return if @hide_axes
|
|
123
142
|
|
|
@@ -136,6 +155,11 @@ private
|
|
|
136
155
|
end
|
|
137
156
|
end
|
|
138
157
|
|
|
158
|
+
# @rbs center_x: Float | Integer
|
|
159
|
+
# @rbs center_y: Float | Integer
|
|
160
|
+
# @rbs additive_angle: Float | Integer
|
|
161
|
+
# @rbs color: String | nil
|
|
162
|
+
# @rbs return: void
|
|
139
163
|
def draw_polygon(center_x, center_y, additive_angle, color = nil)
|
|
140
164
|
points = []
|
|
141
165
|
current_angle = deg2rad(@rotation)
|
data/lib/gruff/stacked_area.rb
CHANGED
|
@@ -18,22 +18,27 @@ class Gruff::StackedArea < Gruff::Base
|
|
|
18
18
|
include Gruff::Base::StackedMixin
|
|
19
19
|
|
|
20
20
|
# @deprecated
|
|
21
|
+
# @rbs _value: untyped
|
|
22
|
+
# @rbs return: void
|
|
21
23
|
def last_series_goes_on_bottom=(_value)
|
|
22
24
|
warn '#last_series_goes_on_bottom is deprecated. It is no longer effective.'
|
|
23
25
|
end
|
|
24
26
|
|
|
25
27
|
private
|
|
26
28
|
|
|
29
|
+
# @rbs return: void
|
|
27
30
|
def initialize_attributes
|
|
28
31
|
super
|
|
29
32
|
@minimum_value = 0.0
|
|
30
33
|
end
|
|
31
34
|
|
|
35
|
+
# @rbs return: void
|
|
32
36
|
def setup_data
|
|
33
37
|
calculate_maximum_by_stack
|
|
34
38
|
super
|
|
35
39
|
end
|
|
36
40
|
|
|
41
|
+
# @rbs return: void
|
|
37
42
|
def draw_graph
|
|
38
43
|
x_increment = (@graph_width / (column_count - 1)).to_f
|
|
39
44
|
|
data/lib/gruff/stacked_bar.rb
CHANGED
|
@@ -36,6 +36,7 @@ class Gruff::StackedBar < Gruff::Base
|
|
|
36
36
|
|
|
37
37
|
private
|
|
38
38
|
|
|
39
|
+
# @rbs return: void
|
|
39
40
|
def initialize_attributes
|
|
40
41
|
super
|
|
41
42
|
@bar_spacing = 0.9
|
|
@@ -46,6 +47,7 @@ private
|
|
|
46
47
|
@minimum_value = 0.0
|
|
47
48
|
end
|
|
48
49
|
|
|
50
|
+
# @rbs return: void
|
|
49
51
|
def setup_drawing
|
|
50
52
|
# Labels will be centered over the left of the bar if
|
|
51
53
|
# there are more labels than columns. This is basically the same
|
|
@@ -55,11 +57,13 @@ private
|
|
|
55
57
|
super
|
|
56
58
|
end
|
|
57
59
|
|
|
60
|
+
# @rbs return: void
|
|
58
61
|
def setup_data
|
|
59
62
|
calculate_maximum_by_stack
|
|
60
63
|
super
|
|
61
64
|
end
|
|
62
65
|
|
|
66
|
+
# @rbs return: void
|
|
63
67
|
def setup_graph_measurements
|
|
64
68
|
super
|
|
65
69
|
return if @hide_line_markers
|
|
@@ -75,6 +79,7 @@ private
|
|
|
75
79
|
end
|
|
76
80
|
|
|
77
81
|
# Draws a bar graph, but multiple sets are stacked on top of each other.
|
|
82
|
+
# @rbs return: void
|
|
78
83
|
def draw_graph
|
|
79
84
|
# Setup spacing.
|
|
80
85
|
#
|
|
@@ -13,6 +13,7 @@ module Gruff
|
|
|
13
13
|
# @rbs label: String | Symbol
|
|
14
14
|
# @rbs points: Array[nil | Float | Integer] | nil
|
|
15
15
|
# @rbs color: String
|
|
16
|
+
# @rbs return: void
|
|
16
17
|
def initialize(label, points, color)
|
|
17
18
|
@label = label.to_s
|
|
18
19
|
@points = Array(points)
|
|
@@ -21,14 +22,17 @@ module Gruff
|
|
|
21
22
|
|
|
22
23
|
alias x_points points
|
|
23
24
|
|
|
25
|
+
# @rbs return: void
|
|
24
26
|
def y_points
|
|
25
27
|
raise NotImplementedError, 'x_points is not implemented for BasicData'
|
|
26
28
|
end
|
|
27
29
|
|
|
30
|
+
# @rbs return: void
|
|
28
31
|
def coordinates
|
|
29
32
|
raise NotImplementedError, 'This method is not implemented for BasicData'
|
|
30
33
|
end
|
|
31
34
|
|
|
35
|
+
# @rbs return: void
|
|
32
36
|
def coordinate_and_pointsizes
|
|
33
37
|
raise NotImplementedError, 'This method is not implemented for BasicData'
|
|
34
38
|
end
|
data/lib/gruff/store/store.rb
CHANGED
|
@@ -7,12 +7,15 @@ module Gruff
|
|
|
7
7
|
class Store
|
|
8
8
|
attr_reader :data #: Array[Gruff::Store::BasicData | Gruff::Store::XYData | Gruff::Store::XYPointsizeData]
|
|
9
9
|
|
|
10
|
+
# @rbs data_class: untyped
|
|
10
11
|
# @rbs return: void
|
|
11
12
|
def initialize(data_class)
|
|
12
13
|
@data_class = data_class
|
|
13
14
|
@data = []
|
|
14
15
|
end
|
|
15
16
|
|
|
17
|
+
# @rbs *args: untyped
|
|
18
|
+
# @rbs return: void
|
|
16
19
|
def add(*args)
|
|
17
20
|
@data << @data_class.new(*args)
|
|
18
21
|
end
|
|
@@ -22,6 +25,8 @@ module Gruff
|
|
|
22
25
|
@norm_data || []
|
|
23
26
|
end
|
|
24
27
|
|
|
28
|
+
# @rbs **keywords: untyped
|
|
29
|
+
# @rbs return: untyped
|
|
25
30
|
def normalize(**keywords)
|
|
26
31
|
@norm_data = @data.map { |data_row| data_row.normalize(**keywords) } # steep:ignore
|
|
27
32
|
end
|
|
@@ -63,10 +68,12 @@ module Gruff
|
|
|
63
68
|
@max_x ||= @data.filter_map(&:max_x).max
|
|
64
69
|
end
|
|
65
70
|
|
|
71
|
+
# @rbs return: void
|
|
66
72
|
def sort_data!
|
|
67
73
|
@data = @data.sort_by { |a| -a.points.sum(&:to_f) }
|
|
68
74
|
end
|
|
69
75
|
|
|
76
|
+
# @rbs return: void
|
|
70
77
|
def sort_norm_data!
|
|
71
78
|
@norm_data = @norm_data.sort_by { |a| -a.points.sum(&:to_f) }
|
|
72
79
|
end
|
|
@@ -77,6 +84,7 @@ module Gruff
|
|
|
77
84
|
end
|
|
78
85
|
|
|
79
86
|
# @rbs colors: Array[String]
|
|
87
|
+
# @rbs return: void
|
|
80
88
|
def change_colors(colors)
|
|
81
89
|
index = 0
|
|
82
90
|
@data.each do |data_row|
|
data/lib/gruff/store/xy_data.rb
CHANGED
|
@@ -15,6 +15,7 @@ module Gruff
|
|
|
15
15
|
# @rbs x_points: Array[nil | Float | Integer] | nil
|
|
16
16
|
# @rbs y_points: Array[nil | Float | Integer] | nil
|
|
17
17
|
# @rbs color: String
|
|
18
|
+
# @rbs return: void
|
|
18
19
|
def initialize(label, x_points, y_points, color)
|
|
19
20
|
y_points = Array(y_points)
|
|
20
21
|
x_points = x_points ? Array(x_points) : Array.new(y_points.length)
|
|
@@ -33,6 +34,7 @@ module Gruff
|
|
|
33
34
|
x_points.zip(y_points)
|
|
34
35
|
end
|
|
35
36
|
|
|
37
|
+
# @rbs return: void
|
|
36
38
|
def coordinate_and_pointsizes
|
|
37
39
|
raise NotImplementedError, 'This method is not implemented for XYData'
|
|
38
40
|
end
|
|
@@ -17,6 +17,7 @@ module Gruff
|
|
|
17
17
|
# @rbs y_points: Array[nil | Float | Integer] | nil
|
|
18
18
|
# @rbs point_sizes: Array[nil | Float | Integer]
|
|
19
19
|
# @rbs color: String
|
|
20
|
+
# @rbs return: void
|
|
20
21
|
def initialize(label, x_points, y_points, point_sizes, color)
|
|
21
22
|
y_points = Array(y_points)
|
|
22
23
|
x_points = x_points ? Array(x_points) : Array.new(y_points.length)
|
|
@@ -32,6 +33,7 @@ module Gruff
|
|
|
32
33
|
|
|
33
34
|
alias points y_points
|
|
34
35
|
|
|
36
|
+
# @rbs return: void
|
|
35
37
|
def coordinates
|
|
36
38
|
raise NotImplementedError, 'This method is not implemented for XYPointsizeData'
|
|
37
39
|
end
|
data/lib/gruff/version.rb
CHANGED
data/lib/gruff.rb
CHANGED
data/sig/generated/gruff/bar.rbs
CHANGED
|
@@ -45,13 +45,16 @@ class Gruff::Bar < Gruff::Base
|
|
|
45
45
|
# Default value is +0.9+.
|
|
46
46
|
#
|
|
47
47
|
# @rbs space_percent: Float | Integer
|
|
48
|
-
|
|
48
|
+
# @rbs return: void
|
|
49
|
+
def spacing_factor=: (Float | Integer space_percent) -> void
|
|
49
50
|
|
|
50
51
|
private
|
|
51
52
|
|
|
52
|
-
|
|
53
|
+
# @rbs return: void
|
|
54
|
+
def initialize_attributes: () -> void
|
|
53
55
|
|
|
54
|
-
|
|
56
|
+
# @rbs return: void
|
|
57
|
+
def setup_drawing: () -> void
|
|
55
58
|
|
|
56
59
|
# @rbs return: bool
|
|
57
60
|
def hide_labels?: () -> bool
|
|
@@ -62,9 +65,11 @@ class Gruff::Bar < Gruff::Base
|
|
|
62
65
|
# @rbs return: bool
|
|
63
66
|
def hide_bottom_label_area?: () -> bool
|
|
64
67
|
|
|
65
|
-
|
|
68
|
+
# @rbs return: void
|
|
69
|
+
def setup_graph_measurements: () -> void
|
|
66
70
|
|
|
67
|
-
|
|
71
|
+
# @rbs return: void
|
|
72
|
+
def draw_graph: () -> void
|
|
68
73
|
|
|
69
74
|
# @rbs return: Float | Integer
|
|
70
75
|
def calculate_spacing: () -> (Float | Integer)
|