gruff 0.20.0-java → 0.22.0-java

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0470a845dea66723f512a991696cefcec76110bc625720c9de2e06b248968dfb
4
- data.tar.gz: d6d93d5ac547d1b588e8b936b8faf1bdbdd86b1f6b05859c62569dcc2096ddf0
3
+ metadata.gz: bdab668d761fffac9e5f5b128ac5b82bd10ade4a5ec36fc6b0e480308287c082
4
+ data.tar.gz: b0ee5cafca3513c965f66d3658e8e6be4d2e5a244b338414cd19144930a0afc0
5
5
  SHA512:
6
- metadata.gz: d57209f9c7dc7d3739feea9d1d1cfb41afd85db57d3723a768c17f37413f689becaabba7a119f33a97ed7e4fab7a4906c8a334a8d230cee537fa164d62cd3f01
7
- data.tar.gz: 697e7f71c16e5c8d5351144b5cd9fff0bef80a7d9f2dee100dd5e6f90daf712ca041cf8acd581830de8763b697a9c8b66b7b3ddd51df7cd40ece16fac0bc37f7
6
+ metadata.gz: c166a38bb26c5bdd480194ef23b429890123b68fe80a9aea1b5fc18d9a7fe85b6a45e520ccecc55f840458da4d303470030ee0d9cbc724018adf2da98899c435
7
+ data.tar.gz: a3a1144ec44156e47d07b1b34849898eb17a0945163cdb699918553d0adc25830a119b09da0e6daae06a8cfaf958bcbab4b3882612b20640b07ff54d3987cf90
data/CHANGELOG.md CHANGED
@@ -1,8 +1,16 @@
1
1
  # Change Log
2
2
 
3
+ ## 0.22.0
4
+ Fix Gruff::Bar and Gruff::SideBar in order to draw positive and negative mixed graph (#620)
5
+ Allow to override label margin value (#618)
6
+ Accept image format in Base#to_image in order to fix `no decode delegate for this image format` error (#619)
7
+
8
+ ## 0.21.0
9
+ - Fix legend color with empty label (#615)
10
+
3
11
  ## 0.20.0
4
12
  - Fix legend position when blank labels present (#614)
5
- - Fixed NoMethodError (undefined method `format=' for Gruff::Line (#612)
13
+ - Fixed NoMethodError (undefined method `format=` for Gruff::Line (#612)
6
14
  - Drop Ruby 2.5 support (#611)
7
15
  - Fix deprecation warning for Base#to_blob (#610)
8
16
 
data/README.md CHANGED
@@ -144,8 +144,8 @@ http://www.rubydoc.info/github/topfunky/gruff/frames
144
144
 
145
145
  ## Supported Ruby Versions
146
146
 
147
- - Ruby 2.5 or later
148
- - JRuby 9.2.x or later
147
+ - Ruby 2.6 or later
148
+ - JRuby 9.3.x or later
149
149
 
150
150
  ## Development
151
151
  1. Build docker image
data/lib/gruff/bar.rb CHANGED
@@ -123,7 +123,7 @@ private
123
123
  right_x = left_x + (bar_width * @bar_spacing)
124
124
 
125
125
  top_y, bottom_y = conversion.get_top_bottom_scaled(bar.point)
126
- if bar.point != 0
126
+ if top_y != bottom_y
127
127
  rect_renderer = Gruff::Renderer::Rectangle.new(renderer, color: bar.color)
128
128
  rect_renderer.render(left_x, bottom_y - AXIS_MARGIN, right_x, top_y)
129
129
  end
data/lib/gruff/base.rb CHANGED
@@ -27,6 +27,9 @@ module Gruff
27
27
 
28
28
  DEFAULT_TARGET_WIDTH = 800.0
29
29
 
30
+ # Blank space between graph and labels. Default is +15+.
31
+ attr_writer :label_margin
32
+
30
33
  # Blank space above the graph. Default is +20+.
31
34
  attr_writer :top_margin
32
35
 
@@ -180,6 +183,7 @@ module Gruff
180
183
  @marker_font = Gruff::Font.new(size: 21.0)
181
184
  @legend_font = Gruff::Font.new(size: 20.0)
182
185
 
186
+ @label_margin = LABEL_MARGIN
183
187
  @top_margin = @bottom_margin = @left_margin = @right_margin = DEFAULT_MARGIN
184
188
  @legend_margin = LEGEND_MARGIN
185
189
  @title_margin = TITLE_MARGIN
@@ -497,6 +501,8 @@ module Gruff
497
501
  # Return a rendered graph image.
498
502
  # This can use RMagick's methods to adjust the image before saving.
499
503
  #
504
+ # @param format [String] The output image format.
505
+ #
500
506
  # @return [Magick::Image] The rendered image.
501
507
  #
502
508
  # @example
@@ -507,22 +513,24 @@ module Gruff
507
513
  # image = image.resize(400, 300).quantize(128, Magick::RGBColorspace)
508
514
  # image.write('test.png')
509
515
  #
510
- def to_image
516
+ def to_image(format = 'PNG')
511
517
  @to_image ||= begin
512
518
  draw
513
519
  renderer.finish
514
- renderer.image
520
+ image = renderer.image
521
+ image.format = format
522
+ image
515
523
  end
516
524
  end
517
525
 
518
526
  # Return the graph as a rendered binary blob.
519
527
  #
520
- # @param image_format [String] The image format of binary blob.
528
+ # @param format [String] The image format of binary blob.
521
529
  #
522
530
  # @deprecated Please use +to_image.to_blob+ instead.
523
- def to_blob(image_format = 'PNG')
531
+ def to_blob(format = 'PNG')
524
532
  warn '#to_blob is deprecated. Please use `to_image.to_blob` instead'
525
- to_image.format = image_format
533
+ to_image.format = format
526
534
  to_image.to_blob
527
535
  end
528
536
 
@@ -646,7 +654,7 @@ module Gruff
646
654
  # X Axis
647
655
  # Centered vertically and horizontally by setting the
648
656
  # height to 1.0 and the width to the width of the graph.
649
- x_axis_label_y_coordinate = @graph_bottom + (LABEL_MARGIN * 2) + labels_caps_height
657
+ x_axis_label_y_coordinate = @graph_bottom + (@label_margin * 2) + labels_caps_height
650
658
 
651
659
  text_renderer = Gruff::Renderer::Text.new(renderer, @x_axis_label, font: @marker_font)
652
660
  text_renderer.add_to_render_queue(@raw_columns, 1.0, 0.0, x_axis_label_y_coordinate)
@@ -674,7 +682,7 @@ module Gruff
674
682
  marker_label = (BigDecimal(index.to_s) * BigDecimal(@increment.to_s)) + BigDecimal(minimum_value.to_s)
675
683
  label = y_axis_label(marker_label, @increment)
676
684
  text_renderer = Gruff::Renderer::Text.new(renderer, label, font: @marker_font)
677
- text_renderer.add_to_render_queue(@graph_left - LABEL_MARGIN, 1.0, 0.0, y, Magick::EastGravity)
685
+ text_renderer.add_to_render_queue(@graph_left - @label_margin, 1.0, 0.0, y, Magick::EastGravity)
678
686
  end
679
687
  end
680
688
  end
@@ -715,7 +723,7 @@ module Gruff
715
723
 
716
724
  current_y_offset = begin
717
725
  if @legend_at_bottom
718
- @graph_bottom + @legend_margin + labels_caps_height + LABEL_MARGIN + (@x_axis_label ? (LABEL_MARGIN * 2) + marker_caps_height : 0)
726
+ @graph_bottom + @legend_margin + labels_caps_height + @label_margin + (@x_axis_label ? (@label_margin * 2) + marker_caps_height : 0)
719
727
  else
720
728
  hide_title? ? @top_margin + @title_margin : @top_margin + @title_margin + title_caps_height
721
729
  end
@@ -771,7 +779,7 @@ module Gruff
771
779
  draw_unique_label(index) do
772
780
  if x >= @graph_left && x <= @graph_right
773
781
  y = @graph_bottom
774
- x_offset, y_offset = calculate_label_offset(@marker_font, @labels[index], LABEL_MARGIN, @label_rotation)
782
+ x_offset, y_offset = calculate_label_offset(@marker_font, @labels[index], @label_margin, @label_rotation)
775
783
 
776
784
  draw_label_at(1.0, 1.0, x + x_offset, y + y_offset, @labels[index], gravity: gravity, rotation: @label_rotation)
777
785
  yield if block
@@ -899,10 +907,10 @@ module Gruff
899
907
  if !@has_left_labels && (@hide_line_markers || @hide_line_numbers)
900
908
  0.0
901
909
  else
902
- longest_left_label_width + LABEL_MARGIN
910
+ longest_left_label_width + @label_margin
903
911
  end
904
912
  end
905
- y_axis_label_width = @y_axis_label.nil? ? 0.0 : marker_caps_height + (LABEL_MARGIN * 2)
913
+ y_axis_label_width = @y_axis_label.nil? ? 0.0 : marker_caps_height + (@label_margin * 2)
906
914
 
907
915
  bottom_label_width = extra_left_room_for_long_label
908
916
 
@@ -962,10 +970,10 @@ module Gruff
962
970
  end
963
971
 
964
972
  def setup_bottom_margin
965
- graph_bottom_margin = hide_bottom_label_area? ? @bottom_margin : @bottom_margin + labels_caps_height + LABEL_MARGIN
973
+ graph_bottom_margin = hide_bottom_label_area? ? @bottom_margin : @bottom_margin + labels_caps_height + @label_margin
966
974
  graph_bottom_margin += (calculate_legend_height + @legend_margin) if @legend_at_bottom
967
975
 
968
- x_axis_label_height = @x_axis_label.nil? ? 0.0 : marker_caps_height + (LABEL_MARGIN * 2)
976
+ x_axis_label_height = @x_axis_label.nil? ? 0.0 : marker_caps_height + (@label_margin * 2)
969
977
  @raw_rows - graph_bottom_margin - x_axis_label_height
970
978
  end
971
979
 
@@ -1035,9 +1043,13 @@ module Gruff
1035
1043
  def calculate_legend_label_widths_for_each_line(legend_labels, legend_square_width)
1036
1044
  label_widths = [[]]
1037
1045
  label_lines = [[]]
1038
- legend_labels.reject(&:empty?).each do |label|
1039
- width = calculate_width(@legend_font, label)
1040
- label_width = width + (legend_square_width * 2.7)
1046
+ legend_labels.each do |label|
1047
+ if label.empty?
1048
+ label_width = 0.0
1049
+ else
1050
+ width = calculate_width(@legend_font, label)
1051
+ label_width = width + (legend_square_width * 2.7)
1052
+ end
1041
1053
  label_widths.last.push label_width
1042
1054
  label_lines.last.push label
1043
1055
 
data/lib/gruff/dot.rb CHANGED
@@ -59,7 +59,7 @@ private
59
59
  unless @hide_line_numbers
60
60
  label = y_axis_label(marker_label, @increment)
61
61
  text_renderer = Gruff::Renderer::Text.new(renderer, label, font: @marker_font)
62
- text_renderer.add_to_render_queue(0, 0, x, @graph_bottom + (LABEL_MARGIN * 1.5), Magick::CenterGravity)
62
+ text_renderer.add_to_render_queue(0, 0, x, @graph_bottom + (@label_margin * 1.5), Magick::CenterGravity)
63
63
  end
64
64
  end
65
65
  end
@@ -69,7 +69,7 @@ private
69
69
 
70
70
  def draw_label(y_offset, index)
71
71
  draw_unique_label(index) do
72
- draw_label_at(@graph_left - LABEL_MARGIN, 1.0, 0.0, y_offset, @labels[index], gravity: Magick::EastGravity)
72
+ draw_label_at(@graph_left - @label_margin, 1.0, 0.0, y_offset, @labels[index], gravity: Magick::EastGravity)
73
73
  end
74
74
  end
75
75
  end
data/lib/gruff/net.rb CHANGED
@@ -112,8 +112,8 @@ private
112
112
  def draw_label(center_x, center_y, angle, radius, amount)
113
113
  x_offset = center_x # + 15 # The label points need to be tweaked slightly
114
114
  y_offset = center_y # + 0 # This one doesn't though
115
- x = x_offset + ((radius + LABEL_MARGIN) * Math.sin(deg2rad(angle)))
116
- y = y_offset - ((radius + LABEL_MARGIN) * Math.cos(deg2rad(angle)))
115
+ x = x_offset + ((radius + @label_margin) * Math.sin(deg2rad(angle)))
116
+ y = y_offset - ((radius + @label_margin) * Math.cos(deg2rad(angle)))
117
117
 
118
118
  draw_label_at(1.0, 1.0, x, y, amount, gravity: Magick::CenterGravity)
119
119
  end
data/lib/gruff/scatter.rb CHANGED
@@ -188,7 +188,7 @@ private
188
188
  label = x_axis_label(marker_label, x_increment)
189
189
  x = @graph_left + (increment_x_scaled * index)
190
190
  y = @graph_bottom
191
- x_offset, y_offset = calculate_label_offset(@marker_font, label, LABEL_MARGIN, @label_rotation)
191
+ x_offset, y_offset = calculate_label_offset(@marker_font, label, @label_margin, @label_rotation)
192
192
 
193
193
  draw_label_at(1.0, 1.0, x + x_offset, y + y_offset, label, rotation: @label_rotation)
194
194
  end
@@ -90,7 +90,7 @@ private
90
90
 
91
91
  if minimum_value < 0
92
92
  _, metrics = Gruff::BarValueLabel.metrics(minimum_value, @label_formatting, proc_text_metrics)
93
- width = metrics.width + LABEL_MARGIN
93
+ width = metrics.width + @label_margin
94
94
  @graph_left += width - @graph_left if width > @graph_left
95
95
  end
96
96
 
@@ -120,7 +120,7 @@ private
120
120
  right_y = left_y + (bar_width * @bar_spacing)
121
121
 
122
122
  bottom_x, top_x = conversion.get_top_bottom_scaled(bar.point).sort
123
- if bar.point != 0
123
+ if bottom_x != top_x
124
124
  rect_renderer = Gruff::Renderer::Rectangle.new(renderer, color: bar.color)
125
125
  rect_renderer.render(bottom_x + AXIS_MARGIN, left_y, top_x, right_y)
126
126
  end
@@ -160,7 +160,7 @@ private
160
160
  marker_label = (BigDecimal(diff.abs.to_s) * BigDecimal(increment.to_s)) + BigDecimal(minimum_value.to_s)
161
161
  label = x_axis_label(marker_label, @increment)
162
162
  text_renderer = Gruff::Renderer::Text.new(renderer, label, font: @marker_font)
163
- text_renderer.add_to_render_queue(0, 0, x, @graph_bottom + LABEL_MARGIN, Magick::CenterGravity)
163
+ text_renderer.add_to_render_queue(0, 0, x, @graph_bottom + @label_margin, Magick::CenterGravity)
164
164
  end
165
165
  end
166
166
  end
@@ -170,7 +170,7 @@ private
170
170
 
171
171
  def draw_label(y_offset, index)
172
172
  draw_unique_label(index) do
173
- draw_label_at(@graph_left - LABEL_MARGIN, 1.0, 0.0, y_offset, @labels[index], gravity: Magick::EastGravity)
173
+ draw_label_at(@graph_left - @label_margin, 1.0, 0.0, y_offset, @labels[index], gravity: Magick::EastGravity)
174
174
  end
175
175
  end
176
176
 
data/lib/gruff/spider.rb CHANGED
@@ -54,10 +54,10 @@ private
54
54
  def setup_graph_measurements
55
55
  super
56
56
 
57
- @graph_left += LABEL_MARGIN
58
- @graph_top += LABEL_MARGIN
59
- @graph_right -= LABEL_MARGIN
60
- @graph_bottom -= LABEL_MARGIN
57
+ @graph_left += @label_margin
58
+ @graph_top += @label_margin
59
+ @graph_right -= @label_margin
60
+ @graph_bottom -= @label_margin
61
61
 
62
62
  @graph_width = @graph_right - @graph_left
63
63
  @graph_height = @graph_bottom - @graph_top
@@ -94,7 +94,7 @@ private
94
94
  degree = rad2deg(angle)
95
95
  metrics = text_metrics(@marker_font, amount)
96
96
 
97
- r_offset = LABEL_MARGIN # The distance out from the center of the pie to get point
97
+ r_offset = @label_margin # The distance out from the center of the pie to get point
98
98
  x_offset = center_x # The label points need to be tweaked slightly
99
99
 
100
100
  x_offset -= begin
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.20.0'
4
+ VERSION = '0.22.0'
5
5
  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.20.0
4
+ version: 0.22.0
5
5
  platform: java
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: 2023-06-04 00:00:00.000000000 Z
12
+ date: 2023-06-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  requirement: !ruby/object:Gem::Requirement