gruff 0.24.0 → 0.25.0

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: e8ff88f3f42e4e18cbada5384d6bc3ddad3c19c216bd3bd11787d45625559780
4
- data.tar.gz: 199aa40584af1ece67f4aa2f1b9ff12c80d1591d664c529e2e41de393925307a
3
+ metadata.gz: 65feb5dbcbd853713080e3d0abe3afbd2f023fd3975541588989f6566a0596d5
4
+ data.tar.gz: a99d0dea53b51b0066d01338502029e2b75a0a8c53ed22a537143fbb009d1ae8
5
5
  SHA512:
6
- metadata.gz: c87fa241d9f6130689d54145ad78ce2d8520d0c0eaebd256c4df3428325eda2765287621287e12f596f474b4912f0c036772366a707e6a4d584544a3bc9d77f1
7
- data.tar.gz: 404de18f0980fb59ed3afe9db6fac75e56903ecbc532604cceb879c3666396c8d86c7206941829757c70d725738109126d151eb90b120ae96d555347538b2831
6
+ metadata.gz: ac92183768c0a0921f49b525f003928f45bef16699c55a415c0aec95de7ef54e32351cfa509aac9b06184d41df513b0b4ca1e725809a39416fb37a4518726c16
7
+ data.tar.gz: b1d5a8e374ba3ba75f03a6ce4195d14d708eed5bc912e1622f1232efa3c73ee3cc39f6f43d30bdd9ade4c514509e34c6aecb2ae5a12369638a58bfe6f219774c
@@ -18,10 +18,10 @@ jobs:
18
18
  - uses: actions/checkout@v4
19
19
  with:
20
20
  ref: ${{ github.event.pull_request.head.sha }}
21
- - name: Set up Ruby 2.6
21
+ - name: Set up Ruby 3.0
22
22
  uses: ruby/setup-ruby@master
23
23
  with:
24
- ruby-version: '2.6'
24
+ ruby-version: '3.0'
25
25
  bundler-cache: true
26
26
  - name: Install dependencies
27
27
  run: bundle install --path=vendor/bundle --jobs 4 --retry 3
@@ -35,9 +35,9 @@ jobs:
35
35
  timeout-minutes: 20
36
36
  strategy:
37
37
  matrix:
38
- ruby-version: ['2.6', '2.7', '3.0', '3.1', '3.2', '3.3']
38
+ ruby-version: ['3.0', '3.1', '3.2', '3.3']
39
39
  imagemagick-version:
40
- - { full: 7.1.1-15, major-minor: '7.1' }
40
+ - { full: 7.1.1-29, major-minor: '7.1' }
41
41
  name: Ruby ${{ matrix.ruby-version }}
42
42
  steps:
43
43
  - uses: actions/checkout@v4
@@ -67,7 +67,7 @@ jobs:
67
67
  timeout-minutes: 20
68
68
  strategy:
69
69
  matrix:
70
- ruby-version: ['9.3.10.0', '9.4.3.0']
70
+ ruby-version: ['9.4.6.0']
71
71
  name: JRuby ${{ matrix.ruby-version }}
72
72
  steps:
73
73
  - uses: actions/checkout@v4
data/.rubocop.yml CHANGED
@@ -5,7 +5,7 @@ require:
5
5
 
6
6
  AllCops:
7
7
  EnabledByDefault: true
8
- TargetRubyVersion: 2.6
8
+ TargetRubyVersion: 3.0
9
9
  Exclude:
10
10
  - 'vendor/bundle/**/*'
11
11
  - 'rails_generators/gruff/**/*'
@@ -13,13 +13,13 @@ AllCops:
13
13
  Metrics:
14
14
  Enabled: false
15
15
 
16
- Gemspec/DependencyVersion:
16
+ Bundler/GemComment:
17
17
  Enabled: false
18
18
 
19
- Gemspec/DevelopmentDependencies:
19
+ Bundler/GemVersion:
20
20
  Enabled: false
21
21
 
22
- Gemspec/OrderedDependencies:
22
+ Gemspec/DependencyVersion:
23
23
  Enabled: false
24
24
 
25
25
  Gemspec/RequiredRubyVersion:
@@ -67,6 +67,9 @@ Naming/VariableNumber:
67
67
  Style/AccessorGrouping:
68
68
  Enabled: false
69
69
 
70
+ Style/ArrayFirstLast:
71
+ Enabled: false
72
+
70
73
  Style/ClassAndModuleChildren:
71
74
  Enabled: false
72
75
 
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # Change Log
2
2
 
3
+ ## 0.25.0
4
+ - Add bigdecimal gem as dependency for Ruby 3.4
5
+ - Update dependent RMagick version to 5.5.0 or later
6
+ - Drop Ruby 2.6 and 2.7 support (#632)
7
+
3
8
  ## 0.24.0
4
9
  - Add the way to make background transparent (#631)
5
10
  - Adjust line number position on side graph (#624)
data/Gemfile CHANGED
@@ -4,3 +4,15 @@ source 'https://rubygems.org'
4
4
 
5
5
  # Specify your gem's dependencies in gruff.gemspec
6
6
  gemspec
7
+
8
+ unless defined? JRUBY_VERSION
9
+ gem 'rubocop', '~> 1.63.4'
10
+ gem 'rubocop-minitest', '~> 0.35.0'
11
+ gem 'rubocop-performance', '~> 1.21'
12
+ gem 'rubocop-rake', '~> 0.6.0'
13
+ end
14
+
15
+ gem 'minitest-reporters'
16
+ gem 'rake'
17
+ gem 'simplecov'
18
+ gem 'yard', '~> 0.9.28'
data/gruff.gemspec CHANGED
@@ -22,19 +22,13 @@ Gem::Specification.new do |s|
22
22
  s.platform = 'java'
23
23
  s.add_dependency 'rmagick4j'
24
24
  else
25
- s.add_dependency 'rmagick', '>= 5.3'
26
- s.add_development_dependency 'rubocop', '~> 1.50.2'
27
- s.add_development_dependency 'rubocop-minitest', '~> 0.30.0'
28
- s.add_development_dependency 'rubocop-performance', '~> 1.17.1'
29
- s.add_development_dependency 'rubocop-rake', '~> 0.6.0'
25
+ s.add_dependency 'rmagick', '>= 5.5'
30
26
  end
27
+ s.add_dependency 'bigdecimal', '>= 3.0'
31
28
  s.add_dependency 'histogram'
32
- s.required_ruby_version = '>= 2.6.0'
33
-
34
- s.add_development_dependency 'rake'
35
- s.add_development_dependency 'minitest-reporters'
36
- s.add_development_dependency 'simplecov'
37
- s.add_development_dependency 'yard', '~> 0.9.28'
29
+ s.required_ruby_version = '>= 3.0.0'
38
30
 
31
+ s.metadata['bug_tracker_uri'] = 'https://github.com/topfunky/gruff/issues'
32
+ s.metadata['changelog_uri'] = 'https://github.com/topfunky/gruff/blob/master/CHANGELOG.md'
39
33
  s.metadata['rubygems_mfa_required'] = 'true'
40
34
  end
data/lib/gruff/line.rb CHANGED
@@ -53,7 +53,7 @@ class Gruff::Line < Gruff::Base
53
53
  if args.empty? || (!args.first.is_a?(Numeric) && !args.first.is_a?(String))
54
54
  super()
55
55
  else
56
- super args.shift
56
+ super(args.shift)
57
57
  end
58
58
  end
59
59
 
@@ -308,7 +308,7 @@ private
308
308
  if x_data.nil?
309
309
  draw_label(new_x, index)
310
310
  else
311
- @labels.each do |label_pos, _|
311
+ @labels.each_key do |label_pos|
312
312
  draw_label(@graph_left + (((label_pos - @minimum_x_value) * @graph_width) / (@maximum_x_value - @minimum_x_value)), label_pos)
313
313
  end
314
314
  end
@@ -5,7 +5,7 @@ module Gruff
5
5
  class Renderer::Dot
6
6
  def initialize(renderer, style, color:, width: 1.0, opacity: 1.0)
7
7
  @renderer = renderer
8
- @style = style
8
+ @style = style.to_sym
9
9
  @color = color
10
10
  @width = width
11
11
  @opacity = opacity
@@ -17,7 +17,7 @@ module Gruff
17
17
  @renderer.draw.stroke(@color)
18
18
  @renderer.draw.fill_opacity(@opacity)
19
19
  @renderer.draw.fill(@color)
20
- case @style.to_sym
20
+ case @style
21
21
  when :square
22
22
  square(new_x, new_y, radius)
23
23
  when :diamond
@@ -28,6 +28,8 @@ module Gruff
28
28
  @renderer.draw.pop
29
29
  end
30
30
 
31
+ private
32
+
31
33
  def circle(new_x, new_y, radius)
32
34
  @renderer.draw.circle(new_x, new_y, new_x - radius, new_y)
33
35
  end
@@ -13,7 +13,7 @@ module Gruff
13
13
  def render(upper_left_x, upper_left_y, lower_right_x, lower_right_y)
14
14
  @renderer.draw.push
15
15
  @renderer.draw.stroke_width(@width)
16
- @renderer.draw.stroke(@color) if @width > 1.0
16
+ @renderer.draw.stroke(@color) if @color && @width > 1.0
17
17
  @renderer.draw.fill_opacity(@opacity)
18
18
  @renderer.draw.fill(@color) if @color
19
19
  @renderer.draw.rectangle(upper_left_x, upper_left_y, lower_right_x, lower_right_y)
@@ -23,6 +23,12 @@ module Gruff
23
23
  end
24
24
  end
25
25
 
26
+ def transparent_background(columns, rows)
27
+ @image = render_transparent_background(columns, rows)
28
+ end
29
+
30
+ private
31
+
26
32
  def background(columns, rows, scale, theme_options)
27
33
  return image_background(scale, *theme_options[:background_image]) if theme_options[:background_image]
28
34
 
@@ -36,8 +42,13 @@ module Gruff
36
42
  end
37
43
  end
38
44
 
39
- def transparent_background(columns, rows)
40
- @image = render_transparent_background(columns, rows)
45
+ # Use with a theme to use an image (800x600 original) background.
46
+ def image_background(scale, image_path)
47
+ image = Magick::Image.read(image_path)
48
+ if scale != 1.0
49
+ image[0].resize!(scale) # TODO: Resize with new scale (crop if necessary for wide graph)
50
+ end
51
+ image[0]
41
52
  end
42
53
 
43
54
  # Make a new image at the current size with a solid +color+.
@@ -82,17 +93,6 @@ module Gruff
82
93
  end
83
94
  end
84
95
 
85
- private
86
-
87
- # Use with a theme to use an image (800x600 original) background.
88
- def image_background(scale, image_path)
89
- image = Magick::Image.read(image_path)
90
- if scale != 1.0
91
- image[0].resize!(scale) # TODO: Resize with new scale (crop if necessary for wide graph)
92
- end
93
- image[0]
94
- end
95
-
96
96
  # Use with a theme to make a transparent background
97
97
  def render_transparent_background(columns, rows)
98
98
  Magick::Image.new(columns, rows) do |img|
@@ -35,21 +35,21 @@ module Gruff
35
35
  end
36
36
 
37
37
  def min
38
- @min ||= @data.map(&:min).compact.min
38
+ @min ||= @data.filter_map(&:min).min
39
39
  end
40
40
  alias min_y min
41
41
 
42
42
  def max
43
- @max ||= @data.map(&:max).compact.max
43
+ @max ||= @data.filter_map(&:max).max
44
44
  end
45
45
  alias max_y max
46
46
 
47
47
  def min_x
48
- @min_x ||= @data.map(&:min_x).compact.min
48
+ @min_x ||= @data.filter_map(&:min_x).min
49
49
  end
50
50
 
51
51
  def max_x
52
- @max_x ||= @data.map(&:max_x).compact.max
52
+ @max_x ||= @data.filter_map(&:max_x).max
53
53
  end
54
54
 
55
55
  def sort_data!
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.24.0'
4
+ VERSION = '0.25.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.24.0
4
+ version: 0.25.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: 2024-03-13 00:00:00.000000000 Z
12
+ date: 2024-05-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rmagick
@@ -17,140 +17,42 @@ dependencies:
17
17
  requirements:
18
18
  - - ">="
19
19
  - !ruby/object:Gem::Version
20
- version: '5.3'
20
+ version: '5.5'
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: '5.3'
27
+ version: '5.5'
28
28
  - !ruby/object:Gem::Dependency
29
- name: rubocop
30
- requirement: !ruby/object:Gem::Requirement
31
- requirements:
32
- - - "~>"
33
- - !ruby/object:Gem::Version
34
- version: 1.50.2
35
- type: :development
36
- prerelease: false
37
- version_requirements: !ruby/object:Gem::Requirement
38
- requirements:
39
- - - "~>"
40
- - !ruby/object:Gem::Version
41
- version: 1.50.2
42
- - !ruby/object:Gem::Dependency
43
- name: rubocop-minitest
44
- requirement: !ruby/object:Gem::Requirement
45
- requirements:
46
- - - "~>"
47
- - !ruby/object:Gem::Version
48
- version: 0.30.0
49
- type: :development
50
- prerelease: false
51
- version_requirements: !ruby/object:Gem::Requirement
52
- requirements:
53
- - - "~>"
54
- - !ruby/object:Gem::Version
55
- version: 0.30.0
56
- - !ruby/object:Gem::Dependency
57
- name: rubocop-performance
58
- requirement: !ruby/object:Gem::Requirement
59
- requirements:
60
- - - "~>"
61
- - !ruby/object:Gem::Version
62
- version: 1.17.1
63
- type: :development
64
- prerelease: false
65
- version_requirements: !ruby/object:Gem::Requirement
66
- requirements:
67
- - - "~>"
68
- - !ruby/object:Gem::Version
69
- version: 1.17.1
70
- - !ruby/object:Gem::Dependency
71
- name: rubocop-rake
72
- requirement: !ruby/object:Gem::Requirement
73
- requirements:
74
- - - "~>"
75
- - !ruby/object:Gem::Version
76
- version: 0.6.0
77
- type: :development
78
- prerelease: false
79
- version_requirements: !ruby/object:Gem::Requirement
80
- requirements:
81
- - - "~>"
82
- - !ruby/object:Gem::Version
83
- version: 0.6.0
84
- - !ruby/object:Gem::Dependency
85
- name: histogram
29
+ name: bigdecimal
86
30
  requirement: !ruby/object:Gem::Requirement
87
31
  requirements:
88
32
  - - ">="
89
33
  - !ruby/object:Gem::Version
90
- version: '0'
34
+ version: '3.0'
91
35
  type: :runtime
92
36
  prerelease: false
93
37
  version_requirements: !ruby/object:Gem::Requirement
94
38
  requirements:
95
39
  - - ">="
96
40
  - !ruby/object:Gem::Version
97
- version: '0'
41
+ version: '3.0'
98
42
  - !ruby/object:Gem::Dependency
99
- name: rake
100
- requirement: !ruby/object:Gem::Requirement
101
- requirements:
102
- - - ">="
103
- - !ruby/object:Gem::Version
104
- version: '0'
105
- type: :development
106
- prerelease: false
107
- version_requirements: !ruby/object:Gem::Requirement
108
- requirements:
109
- - - ">="
110
- - !ruby/object:Gem::Version
111
- version: '0'
112
- - !ruby/object:Gem::Dependency
113
- name: minitest-reporters
114
- requirement: !ruby/object:Gem::Requirement
115
- requirements:
116
- - - ">="
117
- - !ruby/object:Gem::Version
118
- version: '0'
119
- type: :development
120
- prerelease: false
121
- version_requirements: !ruby/object:Gem::Requirement
122
- requirements:
123
- - - ">="
124
- - !ruby/object:Gem::Version
125
- version: '0'
126
- - !ruby/object:Gem::Dependency
127
- name: simplecov
43
+ name: histogram
128
44
  requirement: !ruby/object:Gem::Requirement
129
45
  requirements:
130
46
  - - ">="
131
47
  - !ruby/object:Gem::Version
132
48
  version: '0'
133
- type: :development
49
+ type: :runtime
134
50
  prerelease: false
135
51
  version_requirements: !ruby/object:Gem::Requirement
136
52
  requirements:
137
53
  - - ">="
138
54
  - !ruby/object:Gem::Version
139
55
  version: '0'
140
- - !ruby/object:Gem::Dependency
141
- name: yard
142
- requirement: !ruby/object:Gem::Requirement
143
- requirements:
144
- - - "~>"
145
- - !ruby/object:Gem::Version
146
- version: 0.9.28
147
- type: :development
148
- prerelease: false
149
- version_requirements: !ruby/object:Gem::Requirement
150
- requirements:
151
- - - "~>"
152
- - !ruby/object:Gem::Version
153
- version: 0.9.28
154
56
  description: Beautiful graphs for one or multiple datasets. Can be used on websites
155
57
  or in documents.
156
58
  email: boss@topfunky.com
@@ -230,6 +132,8 @@ homepage: https://github.com/topfunky/gruff
230
132
  licenses:
231
133
  - MIT
232
134
  metadata:
135
+ bug_tracker_uri: https://github.com/topfunky/gruff/issues
136
+ changelog_uri: https://github.com/topfunky/gruff/blob/master/CHANGELOG.md
233
137
  rubygems_mfa_required: 'true'
234
138
  post_install_message:
235
139
  rdoc_options: []
@@ -239,14 +143,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
239
143
  requirements:
240
144
  - - ">="
241
145
  - !ruby/object:Gem::Version
242
- version: 2.6.0
146
+ version: 3.0.0
243
147
  required_rubygems_version: !ruby/object:Gem::Requirement
244
148
  requirements:
245
149
  - - ">="
246
150
  - !ruby/object:Gem::Version
247
151
  version: '0'
248
152
  requirements: []
249
- rubygems_version: 3.5.3
153
+ rubygems_version: 3.5.9
250
154
  signing_key:
251
155
  specification_version: 4
252
156
  summary: Beautiful graphs for one or multiple datasets.