gruff 0.26.0-java → 0.27.0-java

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 (100) hide show
  1. checksums.yaml +4 -4
  2. data/.github/ISSUE_TEMPLATE/report.yml +1 -1
  3. data/.github/workflows/ci.yml +37 -0
  4. data/.rubocop.yml +3 -0
  5. data/CHANGELOG.md +18 -1
  6. data/Gemfile +5 -0
  7. data/README.md +7 -1
  8. data/gruff.gemspec +1 -1
  9. data/lib/gruff/accumulator_bar.rb +3 -1
  10. data/lib/gruff/area.rb +5 -2
  11. data/lib/gruff/bar.rb +18 -9
  12. data/lib/gruff/base.rb +193 -68
  13. data/lib/gruff/bezier.rb +6 -3
  14. data/lib/gruff/box.rb +40 -16
  15. data/lib/gruff/bubble.rb +9 -2
  16. data/lib/gruff/bullet.rb +8 -1
  17. data/lib/gruff/candlestick.rb +30 -8
  18. data/lib/gruff/dot.rb +13 -3
  19. data/lib/gruff/font.rb +12 -4
  20. data/lib/gruff/helper/bar_conversion.rb +12 -1
  21. data/lib/gruff/helper/bar_mixin.rb +19 -1
  22. data/lib/gruff/helper/bar_value_label.rb +22 -4
  23. data/lib/gruff/helper/stacked_mixin.rb +21 -1
  24. data/lib/gruff/histogram.rb +14 -5
  25. data/lib/gruff/line.rb +31 -12
  26. data/lib/gruff/mini/bar.rb +2 -2
  27. data/lib/gruff/mini/legend.rb +10 -1
  28. data/lib/gruff/mini/pie.rb +2 -2
  29. data/lib/gruff/mini/side_bar.rb +2 -2
  30. data/lib/gruff/net.rb +12 -7
  31. data/lib/gruff/patch/rmagick.rb +2 -0
  32. data/lib/gruff/patch/string.rb +1 -1
  33. data/lib/gruff/pie.rb +46 -11
  34. data/lib/gruff/renderer/bezier.rb +7 -0
  35. data/lib/gruff/renderer/circle.rb +11 -0
  36. data/lib/gruff/renderer/dash_line.rb +11 -0
  37. data/lib/gruff/renderer/dot.rb +11 -0
  38. data/lib/gruff/renderer/ellipse.rb +12 -0
  39. data/lib/gruff/renderer/line.rb +10 -0
  40. data/lib/gruff/renderer/polygon.rb +6 -0
  41. data/lib/gruff/renderer/polyline.rb +8 -0
  42. data/lib/gruff/renderer/rectangle.rb +11 -0
  43. data/lib/gruff/renderer/renderer.rb +16 -5
  44. data/lib/gruff/renderer/text.rb +19 -2
  45. data/lib/gruff/scatter.rb +16 -8
  46. data/lib/gruff/side_bar.rb +19 -10
  47. data/lib/gruff/side_stacked_bar.rb +15 -11
  48. data/lib/gruff/spider.rb +9 -2
  49. data/lib/gruff/stacked_area.rb +6 -1
  50. data/lib/gruff/stacked_bar.rb +16 -10
  51. data/lib/gruff/store/basic_data.rb +36 -2
  52. data/lib/gruff/store/store.rb +16 -3
  53. data/lib/gruff/store/xy_data.rb +32 -2
  54. data/lib/gruff/store/xy_pointsizes_data.rb +36 -3
  55. data/lib/gruff/themes.rb +2 -0
  56. data/lib/gruff/version.rb +3 -1
  57. data/lib/gruff.rb +3 -1
  58. data/sig/generated/gruff/accumulator_bar.rbs +19 -0
  59. data/sig/generated/gruff/area.rbs +27 -0
  60. data/sig/generated/gruff/bar.rbs +74 -0
  61. data/sig/generated/gruff/base.rbs +672 -0
  62. data/sig/generated/gruff/bezier.rbs +24 -0
  63. data/sig/generated/gruff/box.rbs +88 -0
  64. data/sig/generated/gruff/bubble.rbs +69 -0
  65. data/sig/generated/gruff/bullet.rbs +30 -0
  66. data/sig/generated/gruff/candlestick.rbs +79 -0
  67. data/sig/generated/gruff/dot.rbs +44 -0
  68. data/sig/generated/gruff/font.rbs +35 -0
  69. data/sig/generated/gruff/helper/bar_conversion.rbs +27 -0
  70. data/sig/generated/gruff/helper/bar_mixin.rbs +22 -0
  71. data/sig/generated/gruff/helper/bar_value_label.rbs +41 -0
  72. data/sig/generated/gruff/helper/stacked_mixin.rbs +27 -0
  73. data/sig/generated/gruff/histogram.rbs +42 -0
  74. data/sig/generated/gruff/line.rbs +165 -0
  75. data/sig/generated/gruff/net.rbs +52 -0
  76. data/sig/generated/gruff/pie.rbs +131 -0
  77. data/sig/generated/gruff/renderer/bezier.rbs +15 -0
  78. data/sig/generated/gruff/renderer/circle.rbs +19 -0
  79. data/sig/generated/gruff/renderer/dash_line.rbs +19 -0
  80. data/sig/generated/gruff/renderer/dot.rbs +27 -0
  81. data/sig/generated/gruff/renderer/ellipse.rbs +20 -0
  82. data/sig/generated/gruff/renderer/line.rbs +24 -0
  83. data/sig/generated/gruff/renderer/polyline.rbs +16 -0
  84. data/sig/generated/gruff/renderer/rectangle.rbs +19 -0
  85. data/sig/generated/gruff/renderer/renderer.rbs +43 -0
  86. data/sig/generated/gruff/renderer/text.rbs +38 -0
  87. data/sig/generated/gruff/scatter.rbs +112 -0
  88. data/sig/generated/gruff/side_bar.rbs +78 -0
  89. data/sig/generated/gruff/side_stacked_bar.rbs +52 -0
  90. data/sig/generated/gruff/spider.rbs +50 -0
  91. data/sig/generated/gruff/stacked_area.rbs +25 -0
  92. data/sig/generated/gruff/stacked_bar.rbs +56 -0
  93. data/sig/generated/gruff/store/basic_data.rbs +48 -0
  94. data/sig/generated/gruff/store/store.rbs +53 -0
  95. data/sig/generated/gruff/store/xy_data.rbs +58 -0
  96. data/sig/generated/gruff/store/xy_pointsizes_data.rbs +61 -0
  97. data/sig/generated/gruff/themes.rbs +24 -0
  98. data/sig/generated/gruff/version.rbs +5 -0
  99. data/sig/generated/gruff.rbs +20 -0
  100. metadata +51 -6
@@ -0,0 +1,52 @@
1
+ # Generated from lib/gruff/net.rb with RBS::Inline
2
+
3
+ # See also the Spider graph.
4
+ #
5
+ # Here's how to make a Gruff::Net.
6
+ #
7
+ # g = Gruff::Net.new
8
+ # g.title = "Net Graph"
9
+ # g.labels = {
10
+ # 0 => '5/6',
11
+ # 1 => '5/15',
12
+ # 2 => '5/24',
13
+ # 3 => '5/30',
14
+ # 4 => '6/4',
15
+ # 5 => '6/12',
16
+ # 6 => '6/21',
17
+ # 7 => '6/28'
18
+ # }
19
+ # g.line_width = 3
20
+ # g.dot_radius = 4
21
+ # g.data :Jimmy, [25, 36, 86, 39, 25, 31, 79, 88]
22
+ # g.data :Julie, [22, 29, 35, 38, 36, 40, 46, 57]
23
+ # g.write("net.png")
24
+ class Gruff::Net < Gruff::Base
25
+ # Hide parts of the graph to fit more data points, or for a different appearance.
26
+ attr_writer hide_dots: bool
27
+
28
+ # Dimensions of lines and dots; calculated based on dataset size if left unspecified.
29
+ attr_writer line_width: Float | Integer
30
+
31
+ attr_writer dot_radius: Float | Integer
32
+
33
+ private
34
+
35
+ def initialize_attributes: () -> untyped
36
+
37
+ def setup_drawing: () -> untyped
38
+
39
+ def setup_graph_measurements: () -> untyped
40
+
41
+ def draw_graph: () -> untyped
42
+
43
+ # the lines connecting in the center, with the first line vertical
44
+ def draw_line_markers: () -> untyped
45
+
46
+ # @rbs center_x: Float | Integer
47
+ # @rbs center_y: Float | Integer
48
+ # @rbs angle: Float | Integer
49
+ # @rbs radius: Float
50
+ # @rbs amount: String | Integer
51
+ def draw_label: (Float | Integer center_x, Float | Integer center_y, Float | Integer angle, Float radius, String | Integer amount) -> untyped
52
+ end
@@ -0,0 +1,131 @@
1
+ # Generated from lib/gruff/pie.rb with RBS::Inline
2
+
3
+ #
4
+ # Here's how to make a Gruff::Pie.
5
+ #
6
+ # g = Gruff::Pie.new
7
+ # g.title = "Visual Pie Graph Test"
8
+ # g.data 'Fries', 20
9
+ # g.data 'Hamburgers', 50
10
+ # g.write("pie_keynote.png")
11
+ #
12
+ # To control where the pie chart starts creating slices, use {#start_degree=}.
13
+ class Gruff::Pie < Gruff::Base
14
+ DEFAULT_TEXT_OFFSET_PERCENTAGE: ::Float
15
+
16
+ # Can be used to make the pie start cutting slices at the top (-90.0)
17
+ # or at another angle. Default is +-90.0+, which starts at 3 o'clock.
18
+ attr_writer start_degree: Float | Integer
19
+
20
+ # Set the number output format lambda.
21
+ attr_writer label_formatting: Proc
22
+
23
+ # Do not show labels for slices that are less than this percent. Use 0 to always show all labels.
24
+ # Defaults to +0+.
25
+ attr_writer hide_labels_less_than: Float | Integer
26
+
27
+ # Affect the distance between the percentages and the pie chart.
28
+ # Defaults to +0.1+.
29
+ attr_writer text_offset_percentage: Float | Integer
30
+
31
+ # # Use values instead of percentages.
32
+ attr_writer show_values_as_labels: bool
33
+
34
+ # Set to +true+ if you want the data sets sorted with largest avg values drawn
35
+ # first. Default is +true+.
36
+ attr_writer sort: bool
37
+
38
+ # Can be used to make the pie start cutting slices at the top (-90.0)
39
+ # or at another angle. Default is +-90.0+, which starts at 3 o'clock.
40
+ # @deprecated Please use {#start_degree=} instead.
41
+ def zero_degree=: (untyped value) -> untyped
42
+
43
+ private
44
+
45
+ def initialize_attributes: () -> untyped
46
+
47
+ def setup_drawing: () -> untyped
48
+
49
+ def draw_graph: () -> untyped
50
+
51
+ def slices: () -> untyped
52
+
53
+ # @rbs degree: Float | Integer
54
+ def update_chart_degrees_with: (untyped degrees) -> untyped
55
+
56
+ # @rbs return: Float | Integer
57
+ def chart_degrees: () -> (Float | Integer)
58
+
59
+ attr_reader graph_height: Float | Integer
60
+
61
+ attr_reader graph_width: Float | Integer
62
+
63
+ # @rbs return: Float | Integer
64
+ def half_width: () -> (Float | Integer)
65
+
66
+ # @rbs return: Float | Integer
67
+ def half_height: () -> (Float | Integer)
68
+
69
+ # @rbs return: Float | Integer
70
+ def radius: () -> (Float | Integer)
71
+
72
+ # @rbs return: Float | Integer
73
+ def center_x: () -> (Float | Integer)
74
+
75
+ # @rbs return: Float | Integer
76
+ def center_y: () -> (Float | Integer)
77
+
78
+ # @rbs return: Float | Integer
79
+ def distance_from_center: () -> (Float | Integer)
80
+
81
+ # @rbs return: Float | Integer | BigDecimal
82
+ def radius_offset: () -> (Float | Integer | BigDecimal)
83
+
84
+ # @rbs return: Float | Integer
85
+ def ellipse_factor: () -> (Float | Integer)
86
+
87
+ # @rbs slice: Gruff::Pie::PieSlice
88
+ def process_label_for: (Gruff::Pie::PieSlice slice) -> untyped
89
+
90
+ # @rbs slice: Gruff::Pie::PieSlice
91
+ # @rbs return: [Float | Integer, Float | Integer]
92
+ def label_coordinates_for: (Gruff::Pie::PieSlice slice) -> [ Float | Integer, Float | Integer ]
93
+
94
+ # @rbs angle: Float | Integer
95
+ # @rbs return: Float
96
+ def x_label_coordinate: (Float | Integer angle) -> Float
97
+
98
+ # @rbs angle: Float | Integer
99
+ # @rbs return: Float
100
+ def y_label_coordinate: (Float | Integer angle) -> Float
101
+
102
+ # Helper Classes
103
+ #
104
+ # @private
105
+ class PieSlice
106
+ attr_accessor label: String | Symbol
107
+
108
+ attr_accessor value: Float | Integer
109
+
110
+ attr_accessor color: String
111
+
112
+ attr_accessor total: Float | Integer
113
+
114
+ # @rbs label: String | Symbol
115
+ # @rbs value: nil | Float | Integer
116
+ # @rbs color: String
117
+ # @rbs return: void
118
+ def initialize: (String | Symbol label, nil | Float | Integer value, String color) -> void
119
+
120
+ # @rbs return: Float | Integer
121
+ def percentage: () -> (Float | Integer)
122
+
123
+ # @rbs return: Float
124
+ def degrees: () -> Float
125
+
126
+ private
127
+
128
+ # @rbs return: Float | Integer
129
+ def size: () -> (Float | Integer)
130
+ end
131
+ end
@@ -0,0 +1,15 @@
1
+ # Generated from lib/gruff/renderer/bezier.rb with RBS::Inline
2
+
3
+ module Gruff
4
+ # @private
5
+ class Renderer::Bezier
6
+ # @rbs renderer: Gruff::Renderer
7
+ # @rbs color: String
8
+ # @rbs width: Float | Integer
9
+ # @rbs return: void
10
+ def initialize: (Gruff::Renderer renderer, color: String, ?width: Float | Integer) -> void
11
+
12
+ # @rbs points: Array[Float | Integer]
13
+ def render: (Array[Float | Integer] points) -> untyped
14
+ end
15
+ end
@@ -0,0 +1,19 @@
1
+ # Generated from lib/gruff/renderer/circle.rb with RBS::Inline
2
+
3
+ module Gruff
4
+ # @private
5
+ class Renderer::Circle
6
+ # @rbs renderer: Gruff::Renderer
7
+ # @rbs color: String
8
+ # @rbs width: Float | Integer
9
+ # @rbs opacity: Float | Integer
10
+ # @rbs return: void
11
+ def initialize: (Gruff::Renderer renderer, color: String, ?width: Float | Integer, ?opacity: Float | Integer) -> void
12
+
13
+ # @rbs origin_x: Float | Integer
14
+ # @rbs origin_y: Float | Integer
15
+ # @rbs perim_x: Float | Integer
16
+ # @rbs perim_y: Float | Integer
17
+ def render: (Float | Integer origin_x, Float | Integer origin_y, Float | Integer perim_x, Float | Integer perim_y) -> untyped
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ # Generated from lib/gruff/renderer/dash_line.rb with RBS::Inline
2
+
3
+ module Gruff
4
+ # @private
5
+ class Renderer::DashLine
6
+ # @rbs renderer: Gruff::Renderer
7
+ # @rbs color: String
8
+ # @rbs width: Float | Integer
9
+ # @rbs dasharray: Array[Float | Integer]
10
+ # @rbs return: void
11
+ def initialize: (Gruff::Renderer renderer, color: String, width: Float | Integer, ?dasharray: Array[Float | Integer]) -> void
12
+
13
+ # @rbs start_x: Float | Integer
14
+ # @rbs start_y: Float | Integer
15
+ # @rbs end_x: Float | Integer
16
+ # @rbs end_y: Float | Integer
17
+ def render: (Float | Integer start_x, Float | Integer start_y, Float | Integer end_x, Float | Integer end_y) -> untyped
18
+ end
19
+ end
@@ -0,0 +1,27 @@
1
+ # Generated from lib/gruff/renderer/dot.rb with RBS::Inline
2
+
3
+ module Gruff
4
+ # @private
5
+ class Renderer::Dot
6
+ # @rbs renderer: Gruff::Renderer
7
+ # @rbs style: :square | :circle | :diamond | 'square' | 'circle' | 'diamond'
8
+ # @rbs color: String
9
+ # @rbs width: Float | Integer
10
+ # @rbs opacity: Float | Integer
11
+ # @rbs return: void
12
+ def initialize: (Gruff::Renderer renderer, :square | :circle | :diamond | "square" | "circle" | "diamond" style, color: String, ?width: Float | Integer, ?opacity: Float | Integer) -> void
13
+
14
+ # @rbs new_x: Float | Integer
15
+ # @rbs new_y: Float | Integer
16
+ # @rbs radius: Float | Integer
17
+ def render: (Float | Integer new_x, Float | Integer new_y, Float | Integer radius) -> untyped
18
+
19
+ private
20
+
21
+ def circle: (untyped new_x, untyped new_y, untyped radius) -> untyped
22
+
23
+ def square: (untyped new_x, untyped new_y, untyped radius) -> untyped
24
+
25
+ def diamond: (untyped new_x, untyped new_y, untyped radius) -> untyped
26
+ end
27
+ end
@@ -0,0 +1,20 @@
1
+ # Generated from lib/gruff/renderer/ellipse.rb with RBS::Inline
2
+
3
+ module Gruff
4
+ # @private
5
+ class Renderer::Ellipse
6
+ # @rbs renderer: Gruff::Renderer
7
+ # @rbs color: String
8
+ # @rbs width: Float | Integer
9
+ # @rbs return: void
10
+ def initialize: (Gruff::Renderer renderer, color: String, ?width: Float | Integer) -> void
11
+
12
+ # @rbs origin_x: Float | Integer
13
+ # @rbs origin_y: Float | Integer
14
+ # @rbs width: Float | Integer
15
+ # @rbs height: Float | Integer
16
+ # @rbs arc_start: Float | Integer
17
+ # @rbs arc_end: Float | Integer
18
+ def render: (Float | Integer origin_x, Float | Integer origin_y, Float | Integer width, Float | Integer height, Float | Integer arc_start, Float | Integer arc_end) -> untyped
19
+ end
20
+ end
@@ -0,0 +1,24 @@
1
+ # Generated from lib/gruff/renderer/line.rb with RBS::Inline
2
+
3
+ module Gruff
4
+ # @private
5
+ class Renderer::Line
6
+ EPSILON: ::Float
7
+
8
+ # @rbs renderer: Gruff::Renderer
9
+ # @rbs color: String
10
+ # @rbs width: Float | Integer
11
+ # @rbs return: void
12
+ def initialize: (Gruff::Renderer renderer, color: String, ?width: Float | Integer) -> void
13
+
14
+ # @rbs start_x: Float | Integer
15
+ # @rbs start_y: Float | Integer
16
+ # @rbs end_x: Float | Integer
17
+ # @rbs end_y: Float | Integer
18
+ def render: (Float | Integer start_x, Float | Integer start_y, Float | Integer end_x, Float | Integer end_y) -> untyped
19
+
20
+ private
21
+
22
+ def render_line: (untyped start_x, untyped start_y, untyped end_x, untyped end_y, untyped color) -> untyped
23
+ end
24
+ end
@@ -0,0 +1,16 @@
1
+ # Generated from lib/gruff/renderer/polyline.rb with RBS::Inline
2
+
3
+ module Gruff
4
+ # @private
5
+ class Renderer::Polyline
6
+ # @rbs renderer: Gruff::Renderer
7
+ # @rbs color: String
8
+ # @rbs width: Float | Integer
9
+ # @rbs linejoin: String
10
+ # @rbs return: void
11
+ def initialize: (Gruff::Renderer renderer, color: String, ?width: Float | Integer, ?linejoin: String) -> void
12
+
13
+ # @rbs points: Array[Float | Integer]
14
+ def render: (Array[Float | Integer] points) -> untyped
15
+ end
16
+ end
@@ -0,0 +1,19 @@
1
+ # Generated from lib/gruff/renderer/rectangle.rb with RBS::Inline
2
+
3
+ module Gruff
4
+ # @private
5
+ class Renderer::Rectangle
6
+ # @rbs renderer: Gruff::Renderer
7
+ # @rbs color: String
8
+ # @rbs width: Float | Integer
9
+ # @rbs opacity: Float | Integer
10
+ # @rbs return: void
11
+ def initialize: (Gruff::Renderer renderer, ?color: String, ?width: Float | Integer, ?opacity: Float | Integer) -> void
12
+
13
+ # @rbs upper_left_x: Float | Integer
14
+ # @rbs upper_left_y: Float | Integer
15
+ # @rbs lower_right_x: Float | Integer
16
+ # @rbs lower_right_y: Float | Integer
17
+ def render: (Float | Integer upper_left_x, Float | Integer upper_left_y, Float | Integer lower_right_x, Float | Integer lower_right_y) -> untyped
18
+ end
19
+ end
@@ -0,0 +1,43 @@
1
+ # Generated from lib/gruff/renderer/renderer.rb with RBS::Inline
2
+
3
+ module Gruff
4
+ # @private
5
+ class Renderer
6
+ attr_accessor text_renderers: Array[Gruff::Renderer::Text]
7
+
8
+ attr_reader draw: untyped
9
+
10
+ attr_reader image: untyped
11
+
12
+ attr_reader scale: real
13
+
14
+ # @rbs columns: Integer
15
+ # @rbs rows: Integer
16
+ # @rbs scale: Float | Integer
17
+ # @rbs theme_options: ::Hash[Symbol, untyped]
18
+ # @rbs return: void
19
+ def initialize: (Integer columns, Integer rows, Float | Integer scale, ::Hash[Symbol, untyped] theme_options) -> void
20
+
21
+ def finish: () -> untyped
22
+
23
+ # @rbs columns: Integer
24
+ # @rbs rows: Integer
25
+ def transparent_background: (Integer columns, Integer rows) -> untyped
26
+
27
+ private
28
+
29
+ def background: (untyped columns, untyped rows, untyped scale, untyped theme_options) -> untyped
30
+
31
+ # Use with a theme to use an image (800x600 original) background.
32
+ def image_background: (untyped scale, untyped image_path) -> untyped
33
+
34
+ # Make a new image at the current size with a solid +color+.
35
+ def solid_background: (untyped columns, untyped rows, untyped color) -> untyped
36
+
37
+ # Use with a theme definition method to draw a gradated background.
38
+ def gradated_background: (untyped columns, untyped rows, untyped top_color, untyped bottom_color, ?untyped direct) -> untyped
39
+
40
+ # Use with a theme to make a transparent background
41
+ def render_transparent_background: (untyped columns, untyped rows) -> untyped
42
+ end
43
+ end
@@ -0,0 +1,38 @@
1
+ # Generated from lib/gruff/renderer/text.rb with RBS::Inline
2
+
3
+ module Gruff
4
+ # @private
5
+ class Renderer::Text
6
+ # @rbs renderer: Gruff::Renderer
7
+ # @rbs text: String
8
+ # @rbs font: Gruff::Font
9
+ # @rbs rotation: Float | Integer
10
+ def initialize: (Gruff::Renderer renderer, String text, font: Gruff::Font, ?rotation: Float | Integer) -> untyped
11
+
12
+ attr_reader width: Float | Integer
13
+
14
+ attr_reader height: Float | Integer
15
+
16
+ attr_reader x: Float | Integer
17
+
18
+ attr_reader y: Float | Integer
19
+
20
+ attr_reader gravity: untyped
21
+
22
+ # @rbs width: Float | Integer
23
+ # @rbs height: Float | Integer
24
+ # @rbs x: Float | Integer
25
+ # @rbs y: Float | Integer
26
+ # @rbs gravity: untyped
27
+ def add_to_render_queue: (Float | Integer width, Float | Integer height, Float | Integer x, Float | Integer y, ?untyped gravity) -> untyped
28
+
29
+ # @rbs width: Float | Integer
30
+ # @rbs height: Float | Integer
31
+ # @rbs x: Float | Integer
32
+ # @rbs y: Float | Integer
33
+ # @rbs gravity: untyped
34
+ def render: (Float | Integer width, Float | Integer height, Float | Integer x, Float | Integer y, ?untyped gravity) -> untyped
35
+
36
+ def metrics: () -> untyped
37
+ end
38
+ end
@@ -0,0 +1,112 @@
1
+ # Generated from lib/gruff/scatter.rb with RBS::Inline
2
+
3
+ #
4
+ # Here's how to set up a Gruff::Scatter.
5
+ #
6
+ # g = Gruff::Scatter.new(800)
7
+ # g.data :apples, [1,2,3,4], [4,3,2,1]
8
+ # g.data 'oranges', [5,7,8], [4,1,7]
9
+ # g.write('scatter.png')
10
+ class Gruff::Scatter < Gruff::Base
11
+ # Maximum X Value. The value will get overwritten by the max in the
12
+ # datasets.
13
+ attr_writer maximum_x_value: Float | Integer
14
+
15
+ # Minimum X Value. The value will get overwritten by the min in the
16
+ # datasets.
17
+ attr_writer minimum_x_value: Float | Integer
18
+
19
+ # The number of vertical lines shown for reference.
20
+ attr_writer marker_x_count: Integer
21
+
22
+ # Attributes to allow customising the size of the points.
23
+ attr_writer circle_radius: Float | Integer
24
+
25
+ attr_writer stroke_width: Float | Integer
26
+
27
+ # Allow for vertical marker lines.
28
+ attr_writer show_vertical_markers: bool
29
+
30
+ # Allow enabling vertical lines. When you have a lot of data, they can work great.
31
+ # @deprecated Please use {#show_vertical_markers=} instead.
32
+ def enable_vertical_line_markers=: (untyped value) -> untyped
33
+
34
+ # Allow using vertical labels in the X axis.
35
+ # @deprecated Please use {Gruff::Base#label_rotation=} instead.
36
+ def use_vertical_x_labels=: (untyped _value) -> untyped
37
+
38
+ # Allow using vertical labels in the X axis (and setting the label margin).
39
+ # @deprecated
40
+ def x_label_margin=: (untyped _value) -> untyped
41
+
42
+ # Allow disabling the significant rounding when labeling the X axis.
43
+ # This is useful when working with a small range of high values (for example, a date range of months, while seconds as units).
44
+ # @deprecated
45
+ def disable_significant_rounding_x_axis=: (untyped _value) -> untyped
46
+
47
+ # The first parameter is the name of the dataset. The next two are the
48
+ # x and y axis data points contain in their own array in that respective
49
+ # order. The final parameter is the color.
50
+ #
51
+ # Can be called multiple times with different datasets for a multi-valued
52
+ # graph.
53
+ #
54
+ # If the color argument is nil, the next color from the default theme will
55
+ # be used.
56
+ #
57
+ # @note If you want to use a preset theme, you must set it before calling {#data}.
58
+ #
59
+ # @param name [String, Symbol] containing the name of the dataset.
60
+ # @param x_data_points [Array] An Array of x-axis data points.
61
+ # @param y_data_points [Array] An Array of y-axis data points.
62
+ # @param color [String] The hex string for the color of the dataset. Defaults to nil.
63
+ #
64
+ # @raise [ArgumentError] Data points contain nil values.
65
+ # This error will get raised if either the x or y axis data points array
66
+ # contains a +nil+ value. The graph will not make an assumption
67
+ # as how to graph +nil+.
68
+ # @raise [ArgumentError] +x_data_points+ is empty.
69
+ # This error is raised when the array for the x-axis points are empty
70
+ # @raise [ArgumentError] +y_data_points+ is empty.
71
+ # This error is raised when the array for the y-axis points are empty.
72
+ # @raise [ArgumentError] +x_data_points.length != y_data_points.length+.
73
+ # Error means that the x and y axis point arrays do not match in length.
74
+ #
75
+ # @example
76
+ # g = Gruff::Scatter.new
77
+ # g.data(:apples, [1,2,3], [3,2,1])
78
+ # g.data('oranges', [1,1,1], [2,3,4])
79
+ # g.data('bitter_melon', [3,5,6], [6,7,8], '#000000')
80
+ #
81
+ # @rbs name: String | Symbol
82
+ # @rbs x_data_points: Array[nil | Float | Integer] | nil
83
+ # @rbs y_data_points: Array[nil | Float | Integer] | nil
84
+ # @rbs color: String
85
+ def data: (String | Symbol name, ?Array[nil | Float | Integer] | nil x_data_points, ?Array[nil | Float | Integer] | nil y_data_points, ?String color) -> untyped
86
+
87
+ alias dataxy data
88
+
89
+ private
90
+
91
+ def initialize_store: () -> untyped
92
+
93
+ def initialize_attributes: () -> untyped
94
+
95
+ def setup_drawing: () -> untyped
96
+
97
+ def setup_data: () -> untyped
98
+
99
+ def draw_graph: () -> untyped
100
+
101
+ def calculate_spread: () -> untyped
102
+
103
+ def normalize: () -> untyped
104
+
105
+ def draw_line_markers: () -> untyped
106
+
107
+ # @rbs return: Integer
108
+ def marker_x_count: () -> Integer
109
+
110
+ # @rbs return: Float | Integer | BigDecimal
111
+ def x_increment: () -> (Float | Integer | BigDecimal)
112
+ end
@@ -0,0 +1,78 @@
1
+ # Generated from lib/gruff/side_bar.rb with RBS::Inline
2
+
3
+ # Graph with individual horizontal bars instead of vertical bars.
4
+ #
5
+ # Here's how to set up a Gruff::SideBar.
6
+ #
7
+ # g = Gruff::SideBar.new
8
+ # g.title = 'SideBar Graph'
9
+ # g.labels = {
10
+ # 0 => '5/6',
11
+ # 1 => '5/15',
12
+ # 2 => '5/24',
13
+ # 3 => '5/30',
14
+ # }
15
+ # g.group_spacing = 20
16
+ # g.data :Art, [0, 5, 8, 15]
17
+ # g.data :Philosophy, [10, 3, 2, 8]
18
+ # g.data :Science, [2, 15, 8, 11]
19
+ # g.write('sidebar.png')
20
+ class Gruff::SideBar < Gruff::Base
21
+ include Gruff::Base::BarMixin
22
+
23
+ # Spacing factor applied between bars.
24
+ attr_writer bar_spacing: Float | Integer
25
+
26
+ # Spacing factor applied between a group of bars belonging to the same label.
27
+ attr_writer group_spacing: Float | Integer
28
+
29
+ # Set the number output format string or lambda.
30
+ # Default is +"%.2f"+.
31
+ attr_writer label_formatting: nil | String | Proc
32
+
33
+ # Output the values for the bars on a bar graph.
34
+ # Default is +false+.
35
+ attr_writer show_labels_for_bar_values: bool
36
+
37
+ # Prevent drawing of column labels left of a side bar graph. Default is +false+.
38
+ attr_writer hide_labels: bool
39
+
40
+ # Value to avoid completely overwriting the coordinate axis
41
+ AXIS_MARGIN: ::Float
42
+
43
+ # @rbs target_width: (String | Float | Integer)
44
+ # @rbs return: void
45
+ def initialize: (?String | Float | Integer target_width) -> void
46
+
47
+ # With Side Bars use the data label for the marker value to the left of the bar.
48
+ # @deprecated
49
+ def use_data_label=: (untyped _value) -> untyped
50
+
51
+ private
52
+
53
+ def initialize_attributes: () -> untyped
54
+
55
+ # @rbs return: bool
56
+ def hide_labels?: () -> bool
57
+
58
+ # @rbs return: bool
59
+ def hide_left_label_area?: () -> bool
60
+
61
+ # @rbs return: bool
62
+ def hide_bottom_label_area?: () -> bool
63
+
64
+ def setup_graph_measurements: () -> untyped
65
+
66
+ def draw_graph: () -> untyped
67
+
68
+ # Instead of base class version, draws vertical background lines and label
69
+ def draw_line_markers: () -> untyped
70
+
71
+ def draw_label: (untyped y_offset, untyped index) -> untyped
72
+
73
+ # @rbs return: Float | Integer
74
+ def calculate_spacing: () -> (Float | Integer)
75
+
76
+ # @rbs return: Proc
77
+ def proc_text_metrics: () -> Proc
78
+ end
@@ -0,0 +1,52 @@
1
+ # Generated from lib/gruff/side_stacked_bar.rb with RBS::Inline
2
+
3
+ #
4
+ # New gruff graph type added to enable sideways stacking bar charts
5
+ # (basically looks like a x/y flip of a standard stacking bar chart)
6
+ #
7
+ # Here's how to set up a Gruff::SideStackedBar.
8
+ #
9
+ # g = Gruff::SideStackedBar.new
10
+ # g.title = 'SideStackedBar Graph'
11
+ # g.labels = {
12
+ # 0 => '5/6',
13
+ # 1 => '5/15',
14
+ # 2 => '5/24',
15
+ # 3 => '5/30',
16
+ # }
17
+ # g.data :Art, [0, 5, 8, 15]
18
+ # g.data :Philosophy, [10, 3, 2, 8]
19
+ # g.data :Science, [2, 15, 8, 11]
20
+ # g.write('side_stacked_bar.png')
21
+ class Gruff::SideStackedBar < Gruff::SideBar
22
+ include Gruff::Base::StackedMixin
23
+
24
+ # Spacing factor applied between bars.
25
+ attr_writer bar_spacing: Float | Integer
26
+
27
+ # Number of pixels between bar segments.
28
+ attr_writer segment_spacing: Float | Integer
29
+
30
+ # Set the number output format string or lambda.
31
+ # Default is +"%.2f"+.
32
+ attr_writer label_formatting: nil | String | Proc
33
+
34
+ # Output the values for the bars on a bar graph.
35
+ # Default is +false+.
36
+ attr_writer show_labels_for_bar_values: bool
37
+
38
+ # Prevent drawing of column labels left of a side stacked bar graph. Default is +false+.
39
+ attr_writer hide_labels: bool
40
+
41
+ # @rbs target_width: (String | Float | Integer)
42
+ # @rbs return: void
43
+ def initialize: (?String | Float | Integer target_width) -> void
44
+
45
+ private
46
+
47
+ def initialize_attributes: () -> untyped
48
+
49
+ def setup_data: () -> untyped
50
+
51
+ def draw_graph: () -> untyped
52
+ end