gruff 0.30.0 → 0.32.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 (98) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +3 -3
  3. data/.github/workflows/release.yml +24 -0
  4. data/.rubocop.yml +4 -0
  5. data/.rubocop_todo.yml +0 -6
  6. data/CHANGELOG.md +21 -0
  7. data/lib/gruff/accumulator_bar.rb +1 -0
  8. data/lib/gruff/area.rb +2 -0
  9. data/lib/gruff/bar.rb +5 -5
  10. data/lib/gruff/base.rb +144 -90
  11. data/lib/gruff/bezier.rb +1 -0
  12. data/lib/gruff/box.rb +8 -0
  13. data/lib/gruff/bubble.rb +4 -0
  14. data/lib/gruff/bullet.rb +4 -0
  15. data/lib/gruff/candlestick.rb +17 -5
  16. data/lib/gruff/dot.rb +4 -5
  17. data/lib/gruff/font.rb +2 -0
  18. data/lib/gruff/helper/bar_value_label.rb +2 -0
  19. data/lib/gruff/helper/stacked_mixin.rb +1 -0
  20. data/lib/gruff/histogram.rb +3 -0
  21. data/lib/gruff/line.rb +28 -0
  22. data/lib/gruff/mini/bar.rb +3 -0
  23. data/lib/gruff/mini/legend.rb +13 -2
  24. data/lib/gruff/mini/pie.rb +3 -0
  25. data/lib/gruff/mini/side_bar.rb +3 -0
  26. data/lib/gruff/net.rb +6 -0
  27. data/lib/gruff/patch/rmagick.rb +10 -0
  28. data/lib/gruff/patch/string.rb +2 -0
  29. data/lib/gruff/pie.rb +8 -0
  30. data/lib/gruff/renderer/bezier.rb +1 -0
  31. data/lib/gruff/renderer/circle.rb +1 -0
  32. data/lib/gruff/renderer/dash_line.rb +1 -0
  33. data/lib/gruff/renderer/dot.rb +13 -0
  34. data/lib/gruff/renderer/ellipse.rb +1 -0
  35. data/lib/gruff/renderer/line.rb +7 -0
  36. data/lib/gruff/renderer/polygon.rb +1 -0
  37. data/lib/gruff/renderer/polyline.rb +1 -0
  38. data/lib/gruff/renderer/rectangle.rb +15 -5
  39. data/lib/gruff/renderer/renderer.rb +26 -3
  40. data/lib/gruff/renderer/text.rb +5 -1
  41. data/lib/gruff/scatter.rb +17 -0
  42. data/lib/gruff/side_bar.rb +9 -5
  43. data/lib/gruff/side_stacked_bar.rb +3 -0
  44. data/lib/gruff/spider.rb +26 -2
  45. data/lib/gruff/stacked_area.rb +5 -0
  46. data/lib/gruff/stacked_bar.rb +5 -5
  47. data/lib/gruff/store/basic_data.rb +4 -0
  48. data/lib/gruff/store/store.rb +8 -0
  49. data/lib/gruff/store/xy_data.rb +2 -0
  50. data/lib/gruff/store/xy_pointsizes_data.rb +2 -0
  51. data/lib/gruff/version.rb +1 -1
  52. data/lib/gruff.rb +2 -0
  53. data/sig/generated/gruff/accumulator_bar.rbs +2 -1
  54. data/sig/generated/gruff/area.rbs +4 -2
  55. data/sig/generated/gruff/bar.rbs +10 -8
  56. data/sig/generated/gruff/base.rbs +129 -64
  57. data/sig/generated/gruff/bezier.rbs +2 -1
  58. data/sig/generated/gruff/box.rbs +13 -5
  59. data/sig/generated/gruff/bubble.rbs +8 -4
  60. data/sig/generated/gruff/bullet.rbs +8 -4
  61. data/sig/generated/gruff/candlestick.rbs +24 -12
  62. data/sig/generated/gruff/dot.rbs +8 -7
  63. data/sig/generated/gruff/font.rbs +3 -1
  64. data/sig/generated/gruff/helper/bar_value_label.rbs +4 -2
  65. data/sig/generated/gruff/helper/stacked_mixin.rbs +2 -1
  66. data/sig/generated/gruff/histogram.rbs +6 -3
  67. data/sig/generated/gruff/line.rbs +44 -16
  68. data/sig/generated/gruff/mini/bar.rbs +6 -3
  69. data/sig/generated/gruff/mini/legend.rbs +20 -10
  70. data/sig/generated/gruff/mini/pie.rbs +6 -3
  71. data/sig/generated/gruff/mini/side_bar.rbs +6 -3
  72. data/sig/generated/gruff/net.rbs +12 -6
  73. data/sig/generated/gruff/patch/rmagick.rbs +12 -2
  74. data/sig/generated/gruff/patch/string.rbs +3 -1
  75. data/sig/generated/gruff/pie.rbs +15 -7
  76. data/sig/generated/gruff/renderer/bezier.rbs +2 -1
  77. data/sig/generated/gruff/renderer/circle.rbs +2 -1
  78. data/sig/generated/gruff/renderer/dash_line.rbs +2 -1
  79. data/sig/generated/gruff/renderer/dot.rbs +17 -4
  80. data/sig/generated/gruff/renderer/ellipse.rbs +2 -1
  81. data/sig/generated/gruff/renderer/line.rbs +9 -2
  82. data/sig/generated/gruff/renderer/polygon.rbs +2 -1
  83. data/sig/generated/gruff/renderer/polyline.rbs +2 -1
  84. data/sig/generated/gruff/renderer/rectangle.rbs +4 -2
  85. data/sig/generated/gruff/renderer/renderer.rbs +31 -8
  86. data/sig/generated/gruff/renderer/text.rbs +7 -3
  87. data/sig/generated/gruff/scatter.rbs +30 -13
  88. data/sig/generated/gruff/side_bar.rbs +15 -9
  89. data/sig/generated/gruff/side_stacked_bar.rbs +6 -3
  90. data/sig/generated/gruff/spider.rbs +35 -11
  91. data/sig/generated/gruff/stacked_area.rbs +9 -4
  92. data/sig/generated/gruff/stacked_bar.rbs +10 -8
  93. data/sig/generated/gruff/store/basic_data.rbs +8 -4
  94. data/sig/generated/gruff/store/store.rbs +12 -4
  95. data/sig/generated/gruff/store/xy_data.rbs +4 -2
  96. data/sig/generated/gruff/store/xy_pointsizes_data.rbs +4 -2
  97. data/sig/generated/gruff.rbs +3 -1
  98. metadata +3 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 75e12531ea04a32fe92c5d2eb922eee2b4464c266a7291fca8b50a3aaf772aeb
4
- data.tar.gz: b5ad337b9e726f30ab9dbcf97612d83fb32e0842a788e9d1ce427a53b0d8ff3a
3
+ metadata.gz: e181e214f060da981e6c156e2d6944cd95d4027755508ecc7e2b21a04a167f10
4
+ data.tar.gz: 07a12faf510f8210d5265f1b1861a9996df22d57cc17141c4d7e3406ffccccc7
5
5
  SHA512:
6
- metadata.gz: f98f73af84275229589343c3e5dc8a7ca0aca73f044cfd918bfcd3efb3c7072ae6e04d307061c8ac7ed33c3c9221bc588505ee6dc737c083d61263aeca32e46c
7
- data.tar.gz: 9ec8af554b9ddc3d6dbcdb99742aeffa4b4574b8a5800883058fa80951991cf3192a875f70372cd3a151b10b5528cfa5fb1bc49406cef41986e92cc06ed8e21b
6
+ metadata.gz: 1bf50811b2efbfe2020b1b68dbc1547f6c60e25e4d1de62f327f920944b158fe210d0b24da4687ea2cf66c0952bae37a9b6d1fd7d8f9bc5ac5d91b4943db1e73
7
+ data.tar.gz: 585d55b1c181ec016e8add6ca4499f500adcc4ab805fef949c703a913f138d1735ca364271d52c0096d18a4da47c13204b5dde97d55ca9e1bceeeabfd6531b54
@@ -17,7 +17,7 @@ jobs:
17
17
  matrix:
18
18
  ruby-version: ['4.0']
19
19
  imagemagick-version:
20
- - { full: 7.1.2-10, major-minor: '7.1' }
20
+ - { full: 7.1.2-22, major-minor: '7.1' }
21
21
  name: Lint (Ruby ${{ matrix.ruby-version }}, ImageMagick ${{ matrix.imagemagick-version.major-minor }})
22
22
  steps:
23
23
  - uses: actions/checkout@v6
@@ -51,7 +51,7 @@ jobs:
51
51
  matrix:
52
52
  ruby-version: ['4.0']
53
53
  imagemagick-version:
54
- - { full: 7.1.2-10, major-minor: '7.1' }
54
+ - { full: 7.1.2-22, major-minor: '7.1' }
55
55
  name: Check RBS (Ruby ${{ matrix.ruby-version }}, ImageMagick ${{ matrix.imagemagick-version.major-minor }})
56
56
  steps:
57
57
  - uses: actions/checkout@v6
@@ -87,7 +87,7 @@ jobs:
87
87
  matrix:
88
88
  ruby-version: ['3.0', '3.1', '3.2', '3.3', '3.4', '4.0']
89
89
  imagemagick-version:
90
- - { full: 7.1.2-10, major-minor: '7.1' }
90
+ - { full: 7.1.2-22, major-minor: '7.1' }
91
91
  name: Ruby ${{ matrix.ruby-version }}
92
92
  steps:
93
93
  - uses: actions/checkout@v6
@@ -0,0 +1,24 @@
1
+ name: Release
2
+ on:
3
+ push:
4
+ tags:
5
+ - "v*"
6
+ jobs:
7
+ rubygems:
8
+ runs-on: ubuntu-latest
9
+ permissions:
10
+ id-token: write
11
+ environment: release
12
+ strategy:
13
+ matrix:
14
+ ruby: [ 'ruby', 'jruby' ]
15
+ steps:
16
+ - uses: actions/checkout@v6
17
+ - uses: ruby/setup-ruby@v1
18
+ with:
19
+ ruby-version: ${{ matrix.ruby }}
20
+ bundler-cache: true
21
+ - uses: rubygems/configure-rubygems-credentials@v1.0.0
22
+ - name: Publish gem
23
+ run: |
24
+ bundle exec rake release:rubygem_push
data/.rubocop.yml CHANGED
@@ -154,3 +154,7 @@ Style/YodaExpression:
154
154
 
155
155
  Performance/ChainArrayAllocation:
156
156
  Enabled: false
157
+
158
+ Style/RbsInline/MissingTypeAnnotation:
159
+ Exclude:
160
+ - 'test/**/*'
data/.rubocop_todo.yml CHANGED
@@ -6,12 +6,6 @@
6
6
  # Note that changes in the inspected code, or installation of new
7
7
  # versions of RuboCop, may require this file to be generated again.
8
8
 
9
- # Offense count: 726
10
- # Configuration parameters: EnforcedStyle, Visibility.
11
- # SupportedStyles: doc_style, doc_style_and_return_annotation, method_type_signature, method_type_signature_or_return_annotation
12
- Style/RbsInline/MissingTypeAnnotation:
13
- Enabled: false
14
-
15
9
  # Offense count: 193
16
10
  Style/RbsInline/UntypedInstanceVariable:
17
11
  Enabled: false
data/CHANGELOG.md CHANGED
@@ -1,5 +1,26 @@
1
1
  # Change Log
2
2
 
3
+ ## 0.32.0
4
+ ### Added
5
+ * Add floating legend support (#679)
6
+ * The legend is now rendered as a modern floating box over the graph area by default.
7
+ * `legend_position=`
8
+ * Allows setting the corner position of the floating legend. Accepts `:top_right` (default), `:top_left`, `:bottom_right`, or `:bottom_left`.
9
+ * `legend_spacing=`
10
+ * Sets the vertical spacing between individual legend items (default: `5.0`).
11
+ * `legend_padding=`
12
+ * Sets the inner padding between the legend frame and its contents (default: `7.0`).
13
+ * Tweaked default sizes for a cleaner look
14
+ * `legend_font` size reduced to `12.0`, `legend_box_size` to `10.0`, and `legend_margin` to `10.0`.
15
+
16
+ ### Deprecated
17
+ * `legend_at_bottom=`
18
+ * This attribute is deprecated and no longer has any effect. Use `legend_position = :bottom_left` or `:bottom_right` instead.
19
+
20
+ ## 0.31.0
21
+
22
+ - RBS: Add missing RBS signatures (#677)
23
+
3
24
  ## 0.30.0
4
25
 
5
26
  - RBS: Add missing signatures (#674)
@@ -18,6 +18,7 @@
18
18
  class Gruff::AccumulatorBar < Gruff::StackedBar
19
19
  private
20
20
 
21
+ # @rbs return: void
21
22
  def setup_data
22
23
  raise(Gruff::IncorrectNumberOfDatasetsException) unless store.length == 1
23
24
 
data/lib/gruff/area.rb CHANGED
@@ -24,6 +24,7 @@ class Gruff::Area < Gruff::Base
24
24
 
25
25
  private
26
26
 
27
+ # @rbs return: void
27
28
  def initialize_attributes
28
29
  super
29
30
  @sorted_drawing = true
@@ -31,6 +32,7 @@ private
31
32
  @stroke_width = 2.0
32
33
  end
33
34
 
35
+ # @rbs return: void
34
36
  def draw_graph
35
37
  x_increment = (@graph_width / (column_count - 1)).to_f
36
38
 
data/lib/gruff/bar.rb CHANGED
@@ -51,6 +51,7 @@ class Gruff::Bar < Gruff::Base
51
51
  # Default value is +0.9+.
52
52
  #
53
53
  # @rbs space_percent: Float | Integer
54
+ # @rbs return: void
54
55
  def spacing_factor=(space_percent)
55
56
  raise ArgumentError, 'spacing_factor must be between 0.00 and 1.00' if (space_percent < 0) || (space_percent > 1)
56
57
 
@@ -59,6 +60,7 @@ class Gruff::Bar < Gruff::Base
59
60
 
60
61
  private
61
62
 
63
+ # @rbs return: void
62
64
  def initialize_attributes
63
65
  super
64
66
  @spacing_factor = 0.9
@@ -68,6 +70,7 @@ private
68
70
  @hide_labels = false
69
71
  end
70
72
 
73
+ # @rbs return: void
71
74
  def setup_drawing
72
75
  # Labels will be centered over the left of the bar if
73
76
  # there are more labels than columns. This is basically the same
@@ -87,11 +90,7 @@ private
87
90
  @hide_line_markers && @y_axis_label.nil?
88
91
  end
89
92
 
90
- # @rbs return: bool
91
- def hide_bottom_label_area?
92
- hide_labels? && @x_axis_label.nil? && @legend_at_bottom == false
93
- end
94
-
93
+ # @rbs return: void
95
94
  def setup_graph_measurements
96
95
  super
97
96
  return if @hide_line_markers
@@ -106,6 +105,7 @@ private
106
105
  end
107
106
  end
108
107
 
108
+ # @rbs return: void
109
109
  def draw_graph
110
110
  # Setup spacing.
111
111
  #