gruff 0.21.0 → 0.22.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/CHANGELOG.md +5 -0
- data/README.md +2 -2
- data/lib/gruff/bar.rb +1 -1
- data/lib/gruff/base.rb +21 -13
- data/lib/gruff/dot.rb +2 -2
- data/lib/gruff/net.rb +2 -2
- data/lib/gruff/scatter.rb +1 -1
- data/lib/gruff/side_bar.rb +4 -4
- data/lib/gruff/spider.rb +5 -5
- data/lib/gruff/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 94b068b7869b405ca194785d34d320aba16ff0cff793982571039498590b31e8
|
4
|
+
data.tar.gz: 1e423203482f8b02d5a678f48237c627f39d09b3bbe7921b758284caf2a3f978
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 30e1d06427a70bb4dd5c551f7154a34825f3800890f96fb56649e0b95f0eb0d8539c636535f292217b6730c0ff27652246d7444a20d60aa49c4ef50ca2eca59b
|
7
|
+
data.tar.gz: 03af63b9451e5e7f62ed7260026cf6e968694f82f43d50f6eb0efd7dbf03b112d3ea6a00deb63b0b20248321f847ad1bb3c5bccd0148e337ae755526bc85ccc7
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,10 @@
|
|
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
|
+
|
3
8
|
## 0.21.0
|
4
9
|
- Fix legend color with empty label (#615)
|
5
10
|
|
data/README.md
CHANGED
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
|
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
|
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(
|
531
|
+
def to_blob(format = 'PNG')
|
524
532
|
warn '#to_blob is deprecated. Please use `to_image.to_blob` instead'
|
525
|
-
to_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 + (
|
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 -
|
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 +
|
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],
|
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 +
|
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 + (
|
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 +
|
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 + (
|
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
|
|
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 + (
|
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 -
|
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 +
|
116
|
-
y = y_offset - ((radius +
|
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,
|
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
|
data/lib/gruff/side_bar.rb
CHANGED
@@ -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 +
|
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
|
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 +
|
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 -
|
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 +=
|
58
|
-
@graph_top +=
|
59
|
-
@graph_right -=
|
60
|
-
@graph_bottom -=
|
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 =
|
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
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.22.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: 2023-06-
|
12
|
+
date: 2023-06-17 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rmagick
|