gruff 0.9.0 → 0.12.2

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 (57) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +21 -4
  3. data/.rubocop_todo.yml +103 -49
  4. data/.travis.yml +3 -6
  5. data/CHANGELOG.md +30 -0
  6. data/README.md +4 -0
  7. data/gruff.gemspec +8 -3
  8. data/lib/gruff.rb +9 -3
  9. data/lib/gruff/accumulator_bar.rb +13 -5
  10. data/lib/gruff/area.rb +22 -5
  11. data/lib/gruff/bar.rb +38 -10
  12. data/lib/gruff/base.rb +325 -236
  13. data/lib/gruff/bezier.rb +18 -4
  14. data/lib/gruff/bullet.rb +22 -14
  15. data/lib/gruff/dot.rb +20 -33
  16. data/lib/gruff/helper/bar_conversion.rb +7 -7
  17. data/lib/gruff/helper/bar_value_label_mixin.rb +3 -0
  18. data/lib/gruff/helper/stacked_mixin.rb +1 -1
  19. data/lib/gruff/histogram.rb +59 -0
  20. data/lib/gruff/line.rb +33 -28
  21. data/lib/gruff/mini/bar.rb +10 -2
  22. data/lib/gruff/mini/legend.rb +9 -4
  23. data/lib/gruff/mini/pie.rb +9 -3
  24. data/lib/gruff/mini/side_bar.rb +18 -4
  25. data/lib/gruff/net.rb +41 -21
  26. data/lib/gruff/patch/rmagick.rb +22 -24
  27. data/lib/gruff/patch/string.rb +9 -4
  28. data/lib/gruff/photo_bar.rb +12 -16
  29. data/lib/gruff/pie.rb +24 -34
  30. data/lib/gruff/renderer/bezier.rb +4 -3
  31. data/lib/gruff/renderer/circle.rb +4 -3
  32. data/lib/gruff/renderer/dash_line.rb +4 -3
  33. data/lib/gruff/renderer/dot.rb +4 -3
  34. data/lib/gruff/renderer/ellipse.rb +4 -3
  35. data/lib/gruff/renderer/line.rb +14 -5
  36. data/lib/gruff/renderer/polygon.rb +5 -4
  37. data/lib/gruff/renderer/polyline.rb +4 -3
  38. data/lib/gruff/renderer/rectangle.rb +3 -2
  39. data/lib/gruff/renderer/renderer.rb +31 -38
  40. data/lib/gruff/renderer/text.rb +29 -7
  41. data/lib/gruff/scatter.rb +26 -24
  42. data/lib/gruff/scene.rb +0 -1
  43. data/lib/gruff/side_bar.rb +51 -20
  44. data/lib/gruff/side_stacked_bar.rb +42 -15
  45. data/lib/gruff/spider.rb +29 -17
  46. data/lib/gruff/stacked_area.rb +19 -8
  47. data/lib/gruff/stacked_bar.rb +34 -13
  48. data/lib/gruff/store/{base_data.rb → basic_data.rb} +9 -7
  49. data/lib/gruff/store/custom_data.rb +8 -6
  50. data/lib/gruff/store/store.rb +7 -6
  51. data/lib/gruff/store/xy_data.rb +10 -7
  52. data/lib/gruff/version.rb +1 -1
  53. metadata +50 -11
  54. data/Rakefile +0 -23
  55. data/docker/Dockerfile +0 -14
  56. data/docker/build.sh +0 -4
  57. data/docker/launch.sh +0 -4
@@ -2,12 +2,11 @@
2
2
 
3
3
  module Gruff
4
4
  class Store
5
+ # @private
5
6
  class XYData < Struct.new(:label, :y_points, :color, :x_points)
6
7
  def initialize(label, y_points, color, x_points = nil)
7
- self.label = label
8
- self.y_points = Array(y_points)
9
- self.color = color
10
- self.x_points = Array(x_points) if x_points
8
+ x_points = Array(x_points) if x_points
9
+ super(label.to_s, Array(y_points), color, x_points)
11
10
  end
12
11
 
13
12
  def x_points
@@ -18,6 +17,10 @@ module Gruff
18
17
  x_points.zip(y_points)
19
18
  end
20
19
 
20
+ def empty?
21
+ y_points.empty?
22
+ end
23
+
21
24
  def columns
22
25
  y_points.length
23
26
  end
@@ -40,12 +43,12 @@ module Gruff
40
43
  x_points.compact.max
41
44
  end
42
45
 
43
- def normalize(args = {})
46
+ def normalize(minimum_x:, minimum_y:, spread_x:, spread_y:)
44
47
  norm_x_points = x_points.map do |x|
45
- x.nil? ? nil : (x.to_f - args[:minimum_x].to_f) / args[:spread_x]
48
+ x.nil? ? nil : (x.to_f - minimum_x.to_f) / spread_x
46
49
  end
47
50
  norm_y_points = y_points.map do |y|
48
- y.nil? ? nil : (y.to_f - args[:minimum_y].to_f) / args[:spread_y]
51
+ y.nil? ? nil : (y.to_f - minimum_y.to_f) / spread_y
49
52
  end
50
53
 
51
54
  self.class.new(label, norm_y_points, color, norm_x_points)
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.9.0'
4
+ VERSION = '0.12.2'
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.9.0
4
+ version: 0.12.2
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: 2020-05-27 00:00:00.000000000 Z
12
+ date: 2021-04-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rmagick
@@ -31,14 +31,42 @@ dependencies:
31
31
  requirements:
32
32
  - - "~>"
33
33
  - !ruby/object:Gem::Version
34
- version: 0.81.0
34
+ version: 1.11.0
35
35
  type: :development
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - "~>"
40
40
  - !ruby/object:Gem::Version
41
- version: 0.81.0
41
+ version: 1.11.0
42
+ - !ruby/object:Gem::Dependency
43
+ name: rubocop-performance
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: 1.10.1
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: 1.10.1
56
+ - !ruby/object:Gem::Dependency
57
+ name: histogram
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ type: :runtime
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
42
70
  - !ruby/object:Gem::Dependency
43
71
  name: rake
44
72
  requirement: !ruby/object:Gem::Requirement
@@ -53,6 +81,20 @@ dependencies:
53
81
  - - ">="
54
82
  - !ruby/object:Gem::Version
55
83
  version: '0'
84
+ - !ruby/object:Gem::Dependency
85
+ name: parallel
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
56
98
  - !ruby/object:Gem::Dependency
57
99
  name: minitest-reporters
58
100
  requirement: !ruby/object:Gem::Requirement
@@ -99,13 +141,9 @@ files:
99
141
  - Gemfile
100
142
  - MIT-LICENSE
101
143
  - README.md
102
- - Rakefile
103
144
  - assets/plastik/blue.png
104
145
  - assets/plastik/green.png
105
146
  - assets/plastik/red.png
106
- - docker/Dockerfile
107
- - docker/build.sh
108
- - docker/launch.sh
109
147
  - gruff.gemspec
110
148
  - init.rb
111
149
  - lib/gruff.rb
@@ -119,6 +157,7 @@ files:
119
157
  - lib/gruff/helper/bar_conversion.rb
120
158
  - lib/gruff/helper/bar_value_label_mixin.rb
121
159
  - lib/gruff/helper/stacked_mixin.rb
160
+ - lib/gruff/histogram.rb
122
161
  - lib/gruff/line.rb
123
162
  - lib/gruff/mini/bar.rb
124
163
  - lib/gruff/mini/legend.rb
@@ -147,7 +186,7 @@ files:
147
186
  - lib/gruff/spider.rb
148
187
  - lib/gruff/stacked_area.rb
149
188
  - lib/gruff/stacked_bar.rb
150
- - lib/gruff/store/base_data.rb
189
+ - lib/gruff/store/basic_data.rb
151
190
  - lib/gruff/store/custom_data.rb
152
191
  - lib/gruff/store/store.rb
153
192
  - lib/gruff/store/xy_data.rb
@@ -168,14 +207,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
168
207
  requirements:
169
208
  - - ">="
170
209
  - !ruby/object:Gem::Version
171
- version: 1.9.3
210
+ version: 2.4.0
172
211
  required_rubygems_version: !ruby/object:Gem::Requirement
173
212
  requirements:
174
213
  - - ">="
175
214
  - !ruby/object:Gem::Version
176
215
  version: '0'
177
216
  requirements: []
178
- rubygems_version: 3.1.2
217
+ rubygems_version: 3.1.4
179
218
  signing_key:
180
219
  specification_version: 4
181
220
  summary: Beautiful graphs for one or multiple datasets.
data/Rakefile DELETED
@@ -1,23 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'bundler/gem_tasks'
4
- require 'rake/testtask'
5
- require 'rake/clean'
6
-
7
- CLEAN.concat %w[pkg test/output/*]
8
-
9
- desc 'Run tests'
10
- task default: :test
11
-
12
- task gem: :build
13
-
14
- Rake::TestTask.new
15
-
16
- namespace :test do
17
- desc 'Run mini tests'
18
- task mini: :clean do
19
- Dir['test/test_mini*'].each do |file|
20
- system "ruby #{file}"
21
- end
22
- end
23
- end
data/docker/Dockerfile DELETED
@@ -1,14 +0,0 @@
1
- FROM ubuntu:18.04
2
-
3
- RUN apt update && apt install -y gcc libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev \
4
- libmagickwand-dev wget git pkg-config && \
5
- wget https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.1.tar.gz && \
6
- tar xvzf ruby-2.7.1.tar.gz && \
7
- cd ruby-2.7.1 && \
8
- ./configure --prefix=/usr --disable-install-rdoc && \
9
- make -j install && \
10
- cd .. && rm -rf ruby-2.7.1 && \
11
- gem install bundler -v 1.17.3 && \
12
- /usr/bin/bundle config set --local path 'vendor/bundle'
13
-
14
- WORKDIR /opt/gruff
data/docker/build.sh DELETED
@@ -1,4 +0,0 @@
1
- #!/bin/bash
2
-
3
- script_dir=$(cd $(dirname ${BASH_SOURCE:-$0}); pwd)
4
- docker build -t gruff ${script_dir}
data/docker/launch.sh DELETED
@@ -1,4 +0,0 @@
1
- #!/bin/bash
2
-
3
- prject_dir="$(cd $(dirname ${BASH_SOURCE:-$0}); pwd)/.."
4
- docker run -v $prject_dir:/opt/gruff --rm -it gruff bash