gruff 0.9.0 → 0.12.2

Sign up to get free protection for your applications and to get access to all the features.
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