gruff 0.12.2 → 0.15.0
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/workflows/ci.yml +66 -0
- data/.gitignore +1 -0
- data/.rubocop.yml +34 -27
- data/CHANGELOG.md +29 -0
- data/README.md +15 -7
- data/assets/fonts/LICENSE.txt +202 -0
- data/assets/fonts/Roboto-Bold.ttf +0 -0
- data/assets/fonts/Roboto-Regular.ttf +0 -0
- data/gruff.gemspec +9 -10
- data/lib/gruff/accumulator_bar.rb +3 -1
- data/lib/gruff/area.rb +5 -8
- data/lib/gruff/bar.rb +32 -49
- data/lib/gruff/base.rb +199 -115
- data/lib/gruff/bezier.rb +4 -6
- data/lib/gruff/bullet.rb +12 -11
- data/lib/gruff/dot.rb +13 -14
- data/lib/gruff/font.rb +39 -0
- data/lib/gruff/helper/bar_conversion.rb +27 -12
- data/lib/gruff/helper/bar_value_label.rb +71 -0
- data/lib/gruff/helper/stacked_mixin.rb +1 -2
- data/lib/gruff/histogram.rb +9 -7
- data/lib/gruff/line.rb +57 -50
- data/lib/gruff/mini/bar.rb +9 -6
- data/lib/gruff/mini/legend.rb +12 -8
- data/lib/gruff/mini/pie.rb +9 -6
- data/lib/gruff/mini/side_bar.rb +9 -6
- data/lib/gruff/net.rb +9 -15
- data/lib/gruff/patch/rmagick.rb +0 -1
- data/lib/gruff/patch/string.rb +1 -1
- data/lib/gruff/pie.rb +23 -65
- data/lib/gruff/renderer/bezier.rb +8 -9
- data/lib/gruff/renderer/circle.rb +8 -9
- data/lib/gruff/renderer/dash_line.rb +9 -10
- data/lib/gruff/renderer/dot.rb +13 -14
- data/lib/gruff/renderer/ellipse.rb +8 -9
- data/lib/gruff/renderer/line.rb +8 -9
- data/lib/gruff/renderer/polygon.rb +9 -10
- data/lib/gruff/renderer/polyline.rb +8 -9
- data/lib/gruff/renderer/rectangle.rb +7 -8
- data/lib/gruff/renderer/renderer.rb +25 -40
- data/lib/gruff/renderer/text.rb +21 -29
- data/lib/gruff/scatter.rb +55 -75
- data/lib/gruff/scene.rb +28 -18
- data/lib/gruff/side_bar.rb +35 -54
- data/lib/gruff/side_stacked_bar.rb +14 -17
- data/lib/gruff/spider.rb +11 -20
- data/lib/gruff/stacked_area.rb +10 -11
- data/lib/gruff/stacked_bar.rb +14 -15
- data/lib/gruff/store/store.rb +6 -10
- data/lib/gruff/store/xy_data.rb +2 -0
- data/lib/gruff/themes.rb +6 -6
- data/lib/gruff/version.rb +1 -1
- data/lib/gruff.rb +68 -55
- data/rails_generators/gruff/templates/controller.rb +1 -1
- metadata +34 -20
- data/.rubocop_todo.yml +0 -190
- data/.travis.yml +0 -23
- data/assets/plastik/blue.png +0 -0
- data/assets/plastik/green.png +0 -0
- data/assets/plastik/red.png +0 -0
- data/lib/gruff/helper/bar_value_label_mixin.rb +0 -33
- data/lib/gruff/photo_bar.rb +0 -93
data/lib/gruff/spider.rb
CHANGED
@@ -20,7 +20,7 @@ class Gruff::Spider < Gruff::Base
|
|
20
20
|
attr_writer :rotation
|
21
21
|
|
22
22
|
def transparent_background=(value)
|
23
|
-
|
23
|
+
renderer.transparent_background(@columns, @rows) if value
|
24
24
|
end
|
25
25
|
|
26
26
|
def hide_text=(value)
|
@@ -32,22 +32,21 @@ class Gruff::Spider < Gruff::Base
|
|
32
32
|
@max_value = max_value
|
33
33
|
end
|
34
34
|
|
35
|
-
|
35
|
+
private
|
36
|
+
|
37
|
+
def initialize_attributes
|
36
38
|
super
|
37
39
|
@hide_legend = true
|
38
40
|
@hide_axes = false
|
39
41
|
@hide_text = false
|
40
42
|
@rotation = 0
|
41
|
-
|
42
|
-
private :initialize_ivars
|
43
|
+
@marker_font.bold = true
|
43
44
|
|
44
|
-
def draw
|
45
45
|
@hide_line_markers = true
|
46
|
+
@hide_line_markers.freeze
|
47
|
+
end
|
46
48
|
|
47
|
-
|
48
|
-
|
49
|
-
return unless data_given?
|
50
|
-
|
49
|
+
def draw_graph
|
51
50
|
# Setup basic positioning
|
52
51
|
radius = @graph_height / 2.0
|
53
52
|
center_x = @graph_left + (@graph_width / 2.0)
|
@@ -64,8 +63,6 @@ class Gruff::Spider < Gruff::Base
|
|
64
63
|
draw_polygon(center_x, center_y, additive_angle)
|
65
64
|
end
|
66
65
|
|
67
|
-
private
|
68
|
-
|
69
66
|
def normalize_points(value)
|
70
67
|
value * @unit_length
|
71
68
|
end
|
@@ -77,9 +74,7 @@ private
|
|
77
74
|
x = x_offset + ((radius + r_offset) * Math.cos(angle))
|
78
75
|
y = y_offset + ((radius + r_offset) * Math.sin(angle))
|
79
76
|
|
80
|
-
|
81
|
-
text_renderer = Gruff::Renderer::Text.new(amount, font: @font, size: @legend_font_size, color: @marker_color, weight: Magick::BoldWeight)
|
82
|
-
text_renderer.add_to_render_queue(0, 0, x, y, Magick::CenterGravity)
|
77
|
+
draw_label_at(1.0, 1.0, x, y, amount, Magick::CenterGravity)
|
83
78
|
end
|
84
79
|
|
85
80
|
def draw_axes(center_x, center_y, radius, additive_angle, line_color = nil)
|
@@ -91,7 +86,7 @@ private
|
|
91
86
|
x_offset = radius * Math.cos(current_angle)
|
92
87
|
y_offset = radius * Math.sin(current_angle)
|
93
88
|
|
94
|
-
Gruff::Renderer::Line.new(color: line_color || data_row.color, width: 5.0)
|
89
|
+
Gruff::Renderer::Line.new(renderer, color: line_color || data_row.color, width: 5.0)
|
95
90
|
.render(center_x, center_y, center_x + x_offset, center_y + y_offset)
|
96
91
|
|
97
92
|
draw_label(center_x, center_y, current_angle, radius, data_row.label.to_s) unless @hide_text
|
@@ -110,10 +105,6 @@ private
|
|
110
105
|
current_angle += additive_angle
|
111
106
|
end
|
112
107
|
|
113
|
-
Gruff::Renderer::Polygon.new(color: color || @marker_color, opacity: 0.4).render(points)
|
114
|
-
end
|
115
|
-
|
116
|
-
def sums_for_spider
|
117
|
-
store.data.sum { |data_row| data_row.points.first }
|
108
|
+
Gruff::Renderer::Polygon.new(renderer, color: color || @marker_color, opacity: 0.4).render(points)
|
118
109
|
end
|
119
110
|
end
|
data/lib/gruff/stacked_area.rb
CHANGED
@@ -12,27 +12,26 @@
|
|
12
12
|
#
|
13
13
|
class Gruff::StackedArea < Gruff::Base
|
14
14
|
include StackedMixin
|
15
|
-
attr_writer :last_series_goes_on_bottom
|
16
15
|
|
17
|
-
|
18
|
-
|
19
|
-
|
16
|
+
# @deprecated
|
17
|
+
def last_series_goes_on_bottom=(_value)
|
18
|
+
warn '#last_series_goes_on_bottom is deprecated. It is no longer effective.'
|
20
19
|
end
|
21
|
-
private :initialize_ivars
|
22
20
|
|
23
|
-
|
21
|
+
private
|
22
|
+
|
23
|
+
def setup_data
|
24
24
|
calculate_maximum_by_stack
|
25
25
|
super
|
26
|
+
end
|
26
27
|
|
27
|
-
|
28
|
-
|
28
|
+
def draw_graph
|
29
29
|
x_increment = @graph_width / (column_count - 1).to_f
|
30
30
|
|
31
31
|
height = Array.new(column_count, 0)
|
32
32
|
|
33
33
|
data_points = nil
|
34
|
-
|
35
|
-
store.norm_data.public_send(iterator) do |data_row|
|
34
|
+
store.norm_data.each do |data_row|
|
36
35
|
prev_data_points = data_points
|
37
36
|
data_points = []
|
38
37
|
|
@@ -64,7 +63,7 @@ class Gruff::StackedArea < Gruff::Base
|
|
64
63
|
poly_points << data_points[0]
|
65
64
|
poly_points << data_points[1]
|
66
65
|
|
67
|
-
Gruff::Renderer::Polygon.new(color: data_row.color).render(poly_points)
|
66
|
+
Gruff::Renderer::Polygon.new(renderer, color: data_row.color).render(poly_points)
|
68
67
|
end
|
69
68
|
end
|
70
69
|
end
|
data/lib/gruff/stacked_bar.rb
CHANGED
@@ -12,7 +12,6 @@
|
|
12
12
|
#
|
13
13
|
class Gruff::StackedBar < Gruff::Base
|
14
14
|
include StackedMixin
|
15
|
-
include BarValueLabelMixin
|
16
15
|
|
17
16
|
# Spacing factor applied between bars.
|
18
17
|
attr_writer :bar_spacing
|
@@ -20,7 +19,7 @@ class Gruff::StackedBar < Gruff::Base
|
|
20
19
|
# Number of pixels between bar segments.
|
21
20
|
attr_writer :segment_spacing
|
22
21
|
|
23
|
-
# Set the number output format
|
22
|
+
# Set the number output format string or lambda.
|
24
23
|
# Default is +"%.2f"+.
|
25
24
|
attr_writer :label_formatting
|
26
25
|
|
@@ -31,7 +30,9 @@ class Gruff::StackedBar < Gruff::Base
|
|
31
30
|
# Prevent drawing of column labels below a stacked bar graph. Default is +false+.
|
32
31
|
attr_writer :hide_labels
|
33
32
|
|
34
|
-
|
33
|
+
private
|
34
|
+
|
35
|
+
def initialize_attributes
|
35
36
|
super
|
36
37
|
@bar_spacing = 0.9
|
37
38
|
@segment_spacing = 2
|
@@ -39,14 +40,14 @@ class Gruff::StackedBar < Gruff::Base
|
|
39
40
|
@show_labels_for_bar_values = false
|
40
41
|
@hide_labels = false
|
41
42
|
end
|
42
|
-
private :initialize_ivars
|
43
43
|
|
44
|
-
|
45
|
-
def draw
|
44
|
+
def setup_data
|
46
45
|
calculate_maximum_by_stack
|
47
46
|
super
|
48
|
-
|
47
|
+
end
|
49
48
|
|
49
|
+
# Draws a bar graph, but multiple sets are stacked on top of each other.
|
50
|
+
def draw_graph
|
50
51
|
# Setup spacing.
|
51
52
|
#
|
52
53
|
# Columns sit stacked.
|
@@ -54,7 +55,7 @@ class Gruff::StackedBar < Gruff::Base
|
|
54
55
|
padding = (bar_width * (1 - @bar_spacing)) / 2
|
55
56
|
|
56
57
|
height = Array.new(column_count, 0)
|
57
|
-
|
58
|
+
stack_bar_value_label = Gruff::BarValueLabel::StackedBar.new
|
58
59
|
|
59
60
|
store.norm_data.each_with_index do |data_row, row_index|
|
60
61
|
data_row.points.each_with_index do |data_point, point_index|
|
@@ -71,27 +72,25 @@ class Gruff::StackedBar < Gruff::Base
|
|
71
72
|
# update the total height of the current stacked bar
|
72
73
|
height[point_index] += (data_point * @graph_height)
|
73
74
|
|
74
|
-
rect_renderer = Gruff::Renderer::Rectangle.new(color: data_row.color)
|
75
|
+
rect_renderer = Gruff::Renderer::Rectangle.new(renderer, color: data_row.color)
|
75
76
|
rect_renderer.render(left_x, left_y, right_x, right_y)
|
76
77
|
|
77
78
|
# Calculate center based on bar_width and current row
|
78
79
|
label_center = left_x + bar_width * @bar_spacing / 2.0
|
79
80
|
draw_label(label_center, point_index)
|
80
81
|
|
81
|
-
bar_value_label
|
82
|
-
bar_value_label
|
82
|
+
bar_value_label = Gruff::BarValueLabel::Bar.new([left_x, left_y, right_x, right_y], store.data[row_index].points[point_index])
|
83
|
+
stack_bar_value_label.add(bar_value_label, point_index)
|
83
84
|
end
|
84
85
|
end
|
85
86
|
|
86
87
|
if @show_labels_for_bar_values
|
87
|
-
|
88
|
-
draw_value_label(x, y, text
|
88
|
+
stack_bar_value_label.prepare_rendering(@label_formatting, bar_width) do |x, y, text|
|
89
|
+
draw_value_label(x, y, text)
|
89
90
|
end
|
90
91
|
end
|
91
92
|
end
|
92
93
|
|
93
|
-
protected
|
94
|
-
|
95
94
|
def hide_labels?
|
96
95
|
@hide_labels
|
97
96
|
end
|
data/lib/gruff/store/store.rb
CHANGED
@@ -3,27 +3,23 @@
|
|
3
3
|
module Gruff
|
4
4
|
# @private
|
5
5
|
class Store
|
6
|
-
attr_reader :data
|
6
|
+
attr_reader :data
|
7
7
|
|
8
8
|
def initialize(data_class)
|
9
9
|
@data_class = data_class
|
10
10
|
@data = []
|
11
|
-
@norm_data = []
|
12
|
-
@normalized = false
|
13
11
|
end
|
14
12
|
|
15
13
|
def add(*args)
|
16
14
|
@data << @data_class.new(*args)
|
17
15
|
end
|
18
16
|
|
19
|
-
def
|
20
|
-
|
21
|
-
|
22
|
-
@norm_data << data_row.normalize(**keywords)
|
23
|
-
end
|
17
|
+
def norm_data
|
18
|
+
@norm_data || []
|
19
|
+
end
|
24
20
|
|
25
|
-
|
26
|
-
|
21
|
+
def normalize(**keywords)
|
22
|
+
@norm_data = @data.map { |data_row| data_row.normalize(**keywords) }
|
27
23
|
end
|
28
24
|
|
29
25
|
def empty?
|
data/lib/gruff/store/xy_data.rb
CHANGED
data/lib/gruff/themes.rb
CHANGED
@@ -16,7 +16,7 @@ module Gruff
|
|
16
16
|
marker_color: 'white',
|
17
17
|
font_color: 'white',
|
18
18
|
background_colors: %w[black #4a465a]
|
19
|
-
}
|
19
|
+
}.freeze
|
20
20
|
|
21
21
|
# A color scheme plucked from the colors on the popular usability blog.
|
22
22
|
THIRTYSEVEN_SIGNALS = {
|
@@ -32,7 +32,7 @@ module Gruff
|
|
32
32
|
marker_color: 'black',
|
33
33
|
font_color: 'black',
|
34
34
|
background_colors: %w[#d1edf5 white]
|
35
|
-
}
|
35
|
+
}.freeze
|
36
36
|
|
37
37
|
# A color scheme from the colors used on the 2005 Rails keynote
|
38
38
|
# presentation at RubyConf.
|
@@ -49,7 +49,7 @@ module Gruff
|
|
49
49
|
marker_color: 'white',
|
50
50
|
font_color: 'white',
|
51
51
|
background_colors: %w[#0083a3 #0083a3]
|
52
|
-
}
|
52
|
+
}.freeze
|
53
53
|
|
54
54
|
# A color scheme similar to that used on the popular podcast site.
|
55
55
|
ODEO = {
|
@@ -65,7 +65,7 @@ module Gruff
|
|
65
65
|
marker_color: 'white',
|
66
66
|
font_color: 'white',
|
67
67
|
background_colors: %w[#ff47a4 #ff1f81]
|
68
|
-
}
|
68
|
+
}.freeze
|
69
69
|
|
70
70
|
# A pastel theme
|
71
71
|
PASTEL = {
|
@@ -81,7 +81,7 @@ module Gruff
|
|
81
81
|
marker_color: '#aea9a9', # Grey
|
82
82
|
font_color: 'black',
|
83
83
|
background_colors: 'white'
|
84
|
-
}
|
84
|
+
}.freeze
|
85
85
|
|
86
86
|
# A greyscale theme
|
87
87
|
GREYSCALE = {
|
@@ -96,6 +96,6 @@ module Gruff
|
|
96
96
|
marker_color: '#aea9a9', # Grey
|
97
97
|
font_color: 'black',
|
98
98
|
background_colors: 'white'
|
99
|
-
}
|
99
|
+
}.freeze
|
100
100
|
end
|
101
101
|
end
|
data/lib/gruff/version.rb
CHANGED
data/lib/gruff.rb
CHANGED
@@ -1,61 +1,74 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'rmagick'
|
4
|
+
|
5
|
+
require 'gruff/patch/rmagick'
|
6
|
+
require 'gruff/patch/string'
|
7
|
+
require 'gruff/renderer/renderer'
|
8
|
+
require 'gruff/store/store'
|
9
|
+
require 'gruff/font'
|
10
|
+
require 'gruff/base'
|
4
11
|
require 'gruff/version'
|
5
12
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
helper/
|
16
|
-
helper/
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
13
|
+
##
|
14
|
+
# = Gruff. Graphs.
|
15
|
+
#
|
16
|
+
module Gruff
|
17
|
+
# @private
|
18
|
+
def self.libpath(path)
|
19
|
+
File.join(__dir__, 'gruff', path)
|
20
|
+
end
|
21
|
+
|
22
|
+
autoload :BarConversion, Gruff.libpath('helper/bar_conversion')
|
23
|
+
autoload :BarValueLabel, Gruff.libpath('helper/bar_value_label')
|
24
|
+
class Base
|
25
|
+
autoload :StackedMixin, Gruff.libpath('helper/stacked_mixin')
|
26
|
+
end
|
27
|
+
|
28
|
+
autoload :AccumulatorBar, Gruff.libpath('accumulator_bar')
|
29
|
+
autoload :Area, Gruff.libpath('area')
|
30
|
+
autoload :Bar, Gruff.libpath('bar')
|
31
|
+
autoload :Bezier, Gruff.libpath('bezier')
|
32
|
+
autoload :Bullet, Gruff.libpath('bullet')
|
33
|
+
autoload :Dot, Gruff.libpath('dot')
|
34
|
+
autoload :Histogram, Gruff.libpath('histogram')
|
35
|
+
autoload :Line, Gruff.libpath('line')
|
36
|
+
autoload :Net, Gruff.libpath('net')
|
37
|
+
autoload :Pie, Gruff.libpath('pie')
|
38
|
+
autoload :Scatter, Gruff.libpath('scatter')
|
39
|
+
autoload :Scene, Gruff.libpath('scene')
|
40
|
+
autoload :SideBar, Gruff.libpath('side_bar')
|
41
|
+
autoload :SideStackedBar, Gruff.libpath('side_stacked_bar')
|
42
|
+
autoload :Spider, Gruff.libpath('spider')
|
43
|
+
autoload :StackedArea, Gruff.libpath('stacked_area')
|
44
|
+
autoload :StackedBar, Gruff.libpath('stacked_bar')
|
45
|
+
|
46
|
+
autoload :Layer, Gruff.libpath('scene')
|
47
|
+
autoload :Themes, Gruff.libpath('themes')
|
48
|
+
|
49
|
+
class Renderer
|
50
|
+
autoload :Bezier, Gruff.libpath('renderer/bezier')
|
51
|
+
autoload :Circle, Gruff.libpath('renderer/circle')
|
52
|
+
autoload :DashLine, Gruff.libpath('renderer/dash_line')
|
53
|
+
autoload :Dot, Gruff.libpath('renderer/dot')
|
54
|
+
autoload :Ellipse, Gruff.libpath('renderer/ellipse')
|
55
|
+
autoload :Line, Gruff.libpath('renderer/line')
|
56
|
+
autoload :Polygon, Gruff.libpath('renderer/polygon')
|
57
|
+
autoload :Polyline, Gruff.libpath('renderer/polyline')
|
58
|
+
autoload :Rectangle, Gruff.libpath('renderer/rectangle')
|
59
|
+
autoload :Text, Gruff.libpath('renderer/text')
|
60
|
+
end
|
61
|
+
|
62
|
+
class Store
|
63
|
+
autoload :BasicData, Gruff.libpath('store/basic_data')
|
64
|
+
autoload :CustomData, Gruff.libpath('store/custom_data')
|
65
|
+
autoload :XYData, Gruff.libpath('store/xy_data')
|
66
|
+
end
|
67
|
+
|
68
|
+
module Mini
|
69
|
+
autoload :Bar, Gruff.libpath('mini/bar')
|
70
|
+
autoload :Legend, Gruff.libpath('mini/legend')
|
71
|
+
autoload :Pie, Gruff.libpath('mini/pie')
|
72
|
+
autoload :SideBar, Gruff.libpath('mini/side_bar')
|
73
|
+
end
|
61
74
|
end
|
@@ -26,7 +26,7 @@ class <%= controller_class_name %>Controller < ApplicationController
|
|
26
26
|
|
27
27
|
g.labels = {0 => '2004', 2 => '2005', 4 => '2006'}
|
28
28
|
|
29
|
-
send_data(g.to_blob, :disposition => 'inline', :type => 'image/png', :filename => "gruff.png")
|
29
|
+
send_data(g.to_image.to_blob, :disposition => 'inline', :type => 'image/png', :filename => "gruff.png")
|
30
30
|
end
|
31
31
|
|
32
32
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gruff
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.15.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Geoffrey Grosenbach
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2022-04-17 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rmagick
|
@@ -17,42 +17,56 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - ">="
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: '
|
20
|
+
version: '4.2'
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
25
|
- - ">="
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: '
|
27
|
+
version: '4.2'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: rubocop
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
32
|
- - "~>"
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: 1.
|
34
|
+
version: 1.27.0
|
35
35
|
type: :development
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
39
|
- - "~>"
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version: 1.
|
41
|
+
version: 1.27.0
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: rubocop-performance
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
46
|
- - "~>"
|
47
47
|
- !ruby/object:Gem::Version
|
48
|
-
version: 1.
|
48
|
+
version: 1.13.3
|
49
49
|
type: :development
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
53
|
- - "~>"
|
54
54
|
- !ruby/object:Gem::Version
|
55
|
-
version: 1.
|
55
|
+
version: 1.13.3
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: rubocop-rake
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - "~>"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: 0.6.0
|
63
|
+
type: :development
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - "~>"
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 0.6.0
|
56
70
|
- !ruby/object:Gem::Dependency
|
57
71
|
name: histogram
|
58
72
|
requirement: !ruby/object:Gem::Requirement
|
@@ -82,7 +96,7 @@ dependencies:
|
|
82
96
|
- !ruby/object:Gem::Version
|
83
97
|
version: '0'
|
84
98
|
- !ruby/object:Gem::Dependency
|
85
|
-
name:
|
99
|
+
name: minitest-reporters
|
86
100
|
requirement: !ruby/object:Gem::Requirement
|
87
101
|
requirements:
|
88
102
|
- - ">="
|
@@ -96,7 +110,7 @@ dependencies:
|
|
96
110
|
- !ruby/object:Gem::Version
|
97
111
|
version: '0'
|
98
112
|
- !ruby/object:Gem::Dependency
|
99
|
-
name:
|
113
|
+
name: simplecov
|
100
114
|
requirement: !ruby/object:Gem::Requirement
|
101
115
|
requirements:
|
102
116
|
- - ">="
|
@@ -132,18 +146,17 @@ extra_rdoc_files: []
|
|
132
146
|
files:
|
133
147
|
- ".editorconfig"
|
134
148
|
- ".github/ISSUE_TEMPLATE.md"
|
149
|
+
- ".github/workflows/ci.yml"
|
135
150
|
- ".gitignore"
|
136
151
|
- ".rubocop.yml"
|
137
|
-
- ".rubocop_todo.yml"
|
138
|
-
- ".travis.yml"
|
139
152
|
- ".yardopts"
|
140
153
|
- CHANGELOG.md
|
141
154
|
- Gemfile
|
142
155
|
- MIT-LICENSE
|
143
156
|
- README.md
|
144
|
-
- assets/
|
145
|
-
- assets/
|
146
|
-
- assets/
|
157
|
+
- assets/fonts/LICENSE.txt
|
158
|
+
- assets/fonts/Roboto-Bold.ttf
|
159
|
+
- assets/fonts/Roboto-Regular.ttf
|
147
160
|
- gruff.gemspec
|
148
161
|
- init.rb
|
149
162
|
- lib/gruff.rb
|
@@ -154,8 +167,9 @@ files:
|
|
154
167
|
- lib/gruff/bezier.rb
|
155
168
|
- lib/gruff/bullet.rb
|
156
169
|
- lib/gruff/dot.rb
|
170
|
+
- lib/gruff/font.rb
|
157
171
|
- lib/gruff/helper/bar_conversion.rb
|
158
|
-
- lib/gruff/helper/
|
172
|
+
- lib/gruff/helper/bar_value_label.rb
|
159
173
|
- lib/gruff/helper/stacked_mixin.rb
|
160
174
|
- lib/gruff/histogram.rb
|
161
175
|
- lib/gruff/line.rb
|
@@ -166,7 +180,6 @@ files:
|
|
166
180
|
- lib/gruff/net.rb
|
167
181
|
- lib/gruff/patch/rmagick.rb
|
168
182
|
- lib/gruff/patch/string.rb
|
169
|
-
- lib/gruff/photo_bar.rb
|
170
183
|
- lib/gruff/pie.rb
|
171
184
|
- lib/gruff/renderer/bezier.rb
|
172
185
|
- lib/gruff/renderer/circle.rb
|
@@ -198,7 +211,8 @@ files:
|
|
198
211
|
homepage: https://github.com/topfunky/gruff
|
199
212
|
licenses:
|
200
213
|
- MIT
|
201
|
-
metadata:
|
214
|
+
metadata:
|
215
|
+
rubygems_mfa_required: 'true'
|
202
216
|
post_install_message:
|
203
217
|
rdoc_options: []
|
204
218
|
require_paths:
|
@@ -207,14 +221,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
207
221
|
requirements:
|
208
222
|
- - ">="
|
209
223
|
- !ruby/object:Gem::Version
|
210
|
-
version: 2.
|
224
|
+
version: 2.5.0
|
211
225
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
212
226
|
requirements:
|
213
227
|
- - ">="
|
214
228
|
- !ruby/object:Gem::Version
|
215
229
|
version: '0'
|
216
230
|
requirements: []
|
217
|
-
rubygems_version: 3.
|
231
|
+
rubygems_version: 3.3.7
|
218
232
|
signing_key:
|
219
233
|
specification_version: 4
|
220
234
|
summary: Beautiful graphs for one or multiple datasets.
|