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.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +66 -0
  3. data/.gitignore +1 -0
  4. data/.rubocop.yml +34 -27
  5. data/CHANGELOG.md +29 -0
  6. data/README.md +15 -7
  7. data/assets/fonts/LICENSE.txt +202 -0
  8. data/assets/fonts/Roboto-Bold.ttf +0 -0
  9. data/assets/fonts/Roboto-Regular.ttf +0 -0
  10. data/gruff.gemspec +9 -10
  11. data/lib/gruff/accumulator_bar.rb +3 -1
  12. data/lib/gruff/area.rb +5 -8
  13. data/lib/gruff/bar.rb +32 -49
  14. data/lib/gruff/base.rb +199 -115
  15. data/lib/gruff/bezier.rb +4 -6
  16. data/lib/gruff/bullet.rb +12 -11
  17. data/lib/gruff/dot.rb +13 -14
  18. data/lib/gruff/font.rb +39 -0
  19. data/lib/gruff/helper/bar_conversion.rb +27 -12
  20. data/lib/gruff/helper/bar_value_label.rb +71 -0
  21. data/lib/gruff/helper/stacked_mixin.rb +1 -2
  22. data/lib/gruff/histogram.rb +9 -7
  23. data/lib/gruff/line.rb +57 -50
  24. data/lib/gruff/mini/bar.rb +9 -6
  25. data/lib/gruff/mini/legend.rb +12 -8
  26. data/lib/gruff/mini/pie.rb +9 -6
  27. data/lib/gruff/mini/side_bar.rb +9 -6
  28. data/lib/gruff/net.rb +9 -15
  29. data/lib/gruff/patch/rmagick.rb +0 -1
  30. data/lib/gruff/patch/string.rb +1 -1
  31. data/lib/gruff/pie.rb +23 -65
  32. data/lib/gruff/renderer/bezier.rb +8 -9
  33. data/lib/gruff/renderer/circle.rb +8 -9
  34. data/lib/gruff/renderer/dash_line.rb +9 -10
  35. data/lib/gruff/renderer/dot.rb +13 -14
  36. data/lib/gruff/renderer/ellipse.rb +8 -9
  37. data/lib/gruff/renderer/line.rb +8 -9
  38. data/lib/gruff/renderer/polygon.rb +9 -10
  39. data/lib/gruff/renderer/polyline.rb +8 -9
  40. data/lib/gruff/renderer/rectangle.rb +7 -8
  41. data/lib/gruff/renderer/renderer.rb +25 -40
  42. data/lib/gruff/renderer/text.rb +21 -29
  43. data/lib/gruff/scatter.rb +55 -75
  44. data/lib/gruff/scene.rb +28 -18
  45. data/lib/gruff/side_bar.rb +35 -54
  46. data/lib/gruff/side_stacked_bar.rb +14 -17
  47. data/lib/gruff/spider.rb +11 -20
  48. data/lib/gruff/stacked_area.rb +10 -11
  49. data/lib/gruff/stacked_bar.rb +14 -15
  50. data/lib/gruff/store/store.rb +6 -10
  51. data/lib/gruff/store/xy_data.rb +2 -0
  52. data/lib/gruff/themes.rb +6 -6
  53. data/lib/gruff/version.rb +1 -1
  54. data/lib/gruff.rb +68 -55
  55. data/rails_generators/gruff/templates/controller.rb +1 -1
  56. metadata +34 -20
  57. data/.rubocop_todo.yml +0 -190
  58. data/.travis.yml +0 -23
  59. data/assets/plastik/blue.png +0 -0
  60. data/assets/plastik/green.png +0 -0
  61. data/assets/plastik/red.png +0 -0
  62. data/lib/gruff/helper/bar_value_label_mixin.rb +0 -33
  63. 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
- Gruff::Renderer.setup_transparent_background(@columns, @rows) if value
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
- def initialize_ivars
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
- end
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
- super
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
- # Draw label
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
@@ -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
- def initialize_ivars
18
- super
19
- @last_series_goes_on_bottom = false
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
- def draw
21
+ private
22
+
23
+ def setup_data
24
24
  calculate_maximum_by_stack
25
25
  super
26
+ end
26
27
 
27
- return unless data_given?
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
- iterator = @last_series_goes_on_bottom ? :reverse_each : :each
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
@@ -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 for labels using sprintf.
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
- def initialize_ivars
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
- # Draws a bar graph, but multiple sets are stacked on top of each other.
45
- def draw
44
+ def setup_data
46
45
  calculate_maximum_by_stack
47
46
  super
48
- return unless data_given?
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
- bar_value_label = BarValueLabel.new(column_count, bar_width)
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.coordinates[point_index] = [left_x, left_y, right_x, right_y]
82
- bar_value_label.values[point_index] += store.data[row_index].points[point_index]
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
- bar_value_label.prepare_rendering(@label_formatting) do |x, y, text|
88
- draw_value_label(x, y, text, true)
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
@@ -3,27 +3,23 @@
3
3
  module Gruff
4
4
  # @private
5
5
  class Store
6
- attr_reader :data, :norm_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 normalize(**keywords)
20
- unless @normalized
21
- @data.each do |data_row|
22
- @norm_data << data_row.normalize(**keywords)
23
- end
17
+ def norm_data
18
+ @norm_data || []
19
+ end
24
20
 
25
- @normalized = true
26
- end
21
+ def normalize(**keywords)
22
+ @norm_data = @data.map { |data_row| data_row.normalize(**keywords) }
27
23
  end
28
24
 
29
25
  def empty?
@@ -9,6 +9,8 @@ module Gruff
9
9
  super(label.to_s, Array(y_points), color, x_points)
10
10
  end
11
11
 
12
+ alias points y_points
13
+
12
14
  def x_points
13
15
  self[:x_points] || Array.new(y_points.length)
14
16
  end
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Gruff
4
- VERSION = '0.12.2'
4
+ VERSION = '0.15.0'
5
5
  end
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
- # Extra full path added to fix loading errors on some installations.
7
-
8
- %w[
9
- patch/rmagick
10
- patch/string
11
-
12
- base
13
-
14
- helper/bar_conversion.rb
15
- helper/stacked_mixin
16
- helper/bar_value_label_mixin
17
-
18
- themes
19
- area
20
- bar
21
- bezier
22
- bullet
23
- dot
24
- histogram
25
- line
26
- net
27
- pie
28
- scatter
29
- spider
30
- side_bar
31
- stacked_area
32
- stacked_bar
33
- side_stacked_bar
34
- accumulator_bar
35
-
36
- scene
37
-
38
- renderer/renderer
39
- renderer/rectangle
40
- renderer/circle
41
- renderer/dash_line
42
- renderer/line
43
- renderer/polyline
44
- renderer/polygon
45
- renderer/bezier
46
- renderer/ellipse
47
- renderer/dot
48
- renderer/text
49
-
50
- store/store
51
- store/basic_data
52
- store/custom_data
53
- store/xy_data
54
-
55
- mini/legend
56
- mini/bar
57
- mini/pie
58
- mini/side_bar
59
- ].each do |filename|
60
- require "gruff/#{filename}"
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.12.2
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: 2021-04-24 00:00:00.000000000 Z
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: '0'
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: '0'
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.11.0
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.11.0
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.10.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.10.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: parallel
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: minitest-reporters
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/plastik/blue.png
145
- - assets/plastik/green.png
146
- - assets/plastik/red.png
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/bar_value_label_mixin.rb
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.4.0
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.1.4
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.