gruff 0.7.0-java → 0.12.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.
- checksums.yaml +5 -5
- data/{History.txt → CHANGELOG.md} +81 -25
- data/Gemfile +3 -1
- data/README.md +51 -23
- data/assets/plastik/blue.png +0 -0
- data/assets/plastik/green.png +0 -0
- data/assets/plastik/red.png +0 -0
- data/gruff.gemspec +23 -13
- data/init.rb +2 -0
- data/lib/gruff.rb +33 -4
- data/lib/gruff/accumulator_bar.rb +17 -9
- data/lib/gruff/area.rb +31 -21
- data/lib/gruff/bar.rb +90 -46
- data/lib/gruff/base.rb +476 -710
- data/lib/gruff/bezier.rb +29 -18
- data/lib/gruff/bullet.rb +58 -71
- data/lib/gruff/dot.rb +35 -83
- data/lib/gruff/helper/bar_conversion.rb +47 -0
- data/lib/gruff/helper/bar_value_label_mixin.rb +33 -0
- data/lib/gruff/helper/stacked_mixin.rb +23 -0
- data/lib/gruff/histogram.rb +59 -0
- data/lib/gruff/line.rb +121 -199
- data/lib/gruff/mini/bar.rb +17 -10
- data/lib/gruff/mini/legend.rb +26 -38
- data/lib/gruff/mini/pie.rb +18 -13
- data/lib/gruff/mini/side_bar.rb +25 -12
- data/lib/gruff/net.rb +69 -83
- data/lib/gruff/patch/rmagick.rb +31 -0
- data/lib/gruff/patch/string.rb +13 -0
- data/lib/gruff/photo_bar.rb +36 -43
- data/lib/gruff/pie.rb +42 -103
- data/lib/gruff/renderer/bezier.rb +22 -0
- data/lib/gruff/renderer/circle.rb +22 -0
- data/lib/gruff/renderer/dash_line.rb +23 -0
- data/lib/gruff/renderer/dot.rb +40 -0
- data/lib/gruff/renderer/ellipse.rb +22 -0
- data/lib/gruff/renderer/line.rb +43 -0
- data/lib/gruff/renderer/polygon.rb +24 -0
- data/lib/gruff/renderer/polyline.rb +22 -0
- data/lib/gruff/renderer/rectangle.rb +20 -0
- data/lib/gruff/renderer/renderer.rb +120 -0
- data/lib/gruff/renderer/text.rb +57 -0
- data/lib/gruff/scatter.rb +128 -201
- data/lib/gruff/scene.rb +30 -41
- data/lib/gruff/side_bar.rb +100 -68
- data/lib/gruff/side_stacked_bar.rb +92 -63
- data/lib/gruff/spider.rb +47 -53
- data/lib/gruff/stacked_area.rb +37 -34
- data/lib/gruff/stacked_bar.rb +99 -54
- data/lib/gruff/store/basic_data.rb +36 -0
- data/lib/gruff/store/custom_data.rb +36 -0
- data/lib/gruff/store/store.rb +81 -0
- data/lib/gruff/store/xy_data.rb +58 -0
- data/lib/gruff/themes.rb +32 -33
- data/lib/gruff/version.rb +3 -1
- metadata +74 -102
- data/.gitignore +0 -7
- data/.travis.yml +0 -19
- data/Manifest.txt +0 -81
- data/RELEASE.md +0 -30
- data/Rakefile +0 -218
- data/assets/bubble.png +0 -0
- data/assets/city_scene/background/0000.png +0 -0
- data/assets/city_scene/background/0600.png +0 -0
- data/assets/city_scene/background/2000.png +0 -0
- data/assets/city_scene/clouds/cloudy.png +0 -0
- data/assets/city_scene/clouds/partly_cloudy.png +0 -0
- data/assets/city_scene/clouds/stormy.png +0 -0
- data/assets/city_scene/grass/default.png +0 -0
- data/assets/city_scene/haze/true.png +0 -0
- data/assets/city_scene/number_sample/1.png +0 -0
- data/assets/city_scene/number_sample/2.png +0 -0
- data/assets/city_scene/number_sample/default.png +0 -0
- data/assets/city_scene/sky/0000.png +0 -0
- data/assets/city_scene/sky/0200.png +0 -0
- data/assets/city_scene/sky/0400.png +0 -0
- data/assets/city_scene/sky/0600.png +0 -0
- data/assets/city_scene/sky/0800.png +0 -0
- data/assets/city_scene/sky/1000.png +0 -0
- data/assets/city_scene/sky/1200.png +0 -0
- data/assets/city_scene/sky/1400.png +0 -0
- data/assets/city_scene/sky/1500.png +0 -0
- data/assets/city_scene/sky/1700.png +0 -0
- data/assets/city_scene/sky/2000.png +0 -0
- data/assets/pc306715.jpg +0 -0
- data/lib/gruff/bar_conversion.rb +0 -46
- data/lib/gruff/deprecated.rb +0 -39
- data/lib/gruff/stacked_mixin.rb +0 -23
- data/test/gruff_test_case.rb +0 -152
- data/test/image_compare.rb +0 -58
- data/test/test_accumulator_bar.rb +0 -51
- data/test/test_area.rb +0 -134
- data/test/test_bar.rb +0 -505
- data/test/test_base.rb +0 -33
- data/test/test_bezier.rb +0 -33
- data/test/test_bullet.rb +0 -26
- data/test/test_dot.rb +0 -263
- data/test/test_labels_for_null_data.rb +0 -27
- data/test/test_legend.rb +0 -68
- data/test/test_line.rb +0 -674
- data/test/test_mini_bar.rb +0 -33
- data/test/test_mini_pie.rb +0 -25
- data/test/test_mini_side_bar.rb +0 -36
- data/test/test_net.rb +0 -231
- data/test/test_photo.rb +0 -41
- data/test/test_pie.rb +0 -194
- data/test/test_scatter.rb +0 -270
- data/test/test_scene.rb +0 -100
- data/test/test_side_bar.rb +0 -56
- data/test/test_sidestacked_bar.rb +0 -105
- data/test/test_spider.rb +0 -226
- data/test/test_stacked_area.rb +0 -52
- data/test/test_stacked_bar.rb +0 -68
data/.gitignore
DELETED
data/.travis.yml
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
language: ruby
|
2
|
-
sudo: false
|
3
|
-
rvm:
|
4
|
-
- "1.9.3"
|
5
|
-
- "2.0.0"
|
6
|
-
- "2.1"
|
7
|
-
- "2.2"
|
8
|
-
- "2.3.1"
|
9
|
-
- jruby-1.7.25
|
10
|
-
- jruby-9.0.5.0
|
11
|
-
- jruby-9.1.2.0
|
12
|
-
- jruby-head
|
13
|
-
- rbx
|
14
|
-
- rbx-2
|
15
|
-
before_install:
|
16
|
-
- gem query -i -n ^bundler$ > /dev/null || gem install --no-ri --no-rdoc bundler
|
17
|
-
notifications:
|
18
|
-
email:
|
19
|
-
- uwe@kubosch.no
|
data/Manifest.txt
DELETED
@@ -1,81 +0,0 @@
|
|
1
|
-
History.txt
|
2
|
-
MIT-LICENSE
|
3
|
-
Manifest.txt
|
4
|
-
README.txt
|
5
|
-
Rakefile
|
6
|
-
assets/bubble.png
|
7
|
-
assets/city_scene/background/0000.png
|
8
|
-
assets/city_scene/background/0600.png
|
9
|
-
assets/city_scene/background/2000.png
|
10
|
-
assets/city_scene/clouds/cloudy.png
|
11
|
-
assets/city_scene/clouds/partly_cloudy.png
|
12
|
-
assets/city_scene/clouds/stormy.png
|
13
|
-
assets/city_scene/grass/default.png
|
14
|
-
assets/city_scene/haze/true.png
|
15
|
-
assets/city_scene/number_sample/1.png
|
16
|
-
assets/city_scene/number_sample/2.png
|
17
|
-
assets/city_scene/number_sample/default.png
|
18
|
-
assets/city_scene/sky/0000.png
|
19
|
-
assets/city_scene/sky/0200.png
|
20
|
-
assets/city_scene/sky/0400.png
|
21
|
-
assets/city_scene/sky/0600.png
|
22
|
-
assets/city_scene/sky/0800.png
|
23
|
-
assets/city_scene/sky/1000.png
|
24
|
-
assets/city_scene/sky/1200.png
|
25
|
-
assets/city_scene/sky/1400.png
|
26
|
-
assets/city_scene/sky/1500.png
|
27
|
-
assets/city_scene/sky/1700.png
|
28
|
-
assets/city_scene/sky/2000.png
|
29
|
-
assets/pc306715.jpg
|
30
|
-
assets/plastik/blue.png
|
31
|
-
assets/plastik/green.png
|
32
|
-
assets/plastik/red.png
|
33
|
-
init.rb
|
34
|
-
lib/gruff.rb
|
35
|
-
lib/gruff/accumulator_bar.rb
|
36
|
-
lib/gruff/area.rb
|
37
|
-
lib/gruff/bar.rb
|
38
|
-
lib/gruff/bar_conversion.rb
|
39
|
-
lib/gruff/base.rb
|
40
|
-
lib/gruff/bullet.rb
|
41
|
-
lib/gruff/deprecated.rb
|
42
|
-
lib/gruff/dot.rb
|
43
|
-
lib/gruff/line.rb
|
44
|
-
lib/gruff/mini/bar.rb
|
45
|
-
lib/gruff/mini/legend.rb
|
46
|
-
lib/gruff/mini/pie.rb
|
47
|
-
lib/gruff/mini/side_bar.rb
|
48
|
-
lib/gruff/net.rb
|
49
|
-
lib/gruff/photo_bar.rb
|
50
|
-
lib/gruff/pie.rb
|
51
|
-
lib/gruff/scene.rb
|
52
|
-
lib/gruff/side_bar.rb
|
53
|
-
lib/gruff/side_stacked_bar.rb
|
54
|
-
lib/gruff/spider.rb
|
55
|
-
lib/gruff/stacked_area.rb
|
56
|
-
lib/gruff/stacked_bar.rb
|
57
|
-
lib/gruff/stacked_mixin.rb
|
58
|
-
rails_generators/gruff/gruff_generator.rb
|
59
|
-
rails_generators/gruff/templates/controller.rb
|
60
|
-
rails_generators/gruff/templates/functional_test.rb
|
61
|
-
test/gruff_test_case.rb
|
62
|
-
test/test_accumulator_bar.rb
|
63
|
-
test/test_area.rb
|
64
|
-
test/test_bar.rb
|
65
|
-
test/test_base.rb
|
66
|
-
test/test_bullet.rb
|
67
|
-
test/test_dot.rb
|
68
|
-
test/test_legend.rb
|
69
|
-
test/test_line.rb
|
70
|
-
test/test_mini_bar.rb
|
71
|
-
test/test_mini_pie.rb
|
72
|
-
test/test_mini_side_bar.rb
|
73
|
-
test/test_net.rb
|
74
|
-
test/test_photo.rb
|
75
|
-
test/test_pie.rb
|
76
|
-
test/test_scene.rb
|
77
|
-
test/test_side_bar.rb
|
78
|
-
test/test_sidestacked_bar.rb
|
79
|
-
test/test_spider.rb
|
80
|
-
test/test_stacked_area.rb
|
81
|
-
test/test_stacked_bar.rb
|
data/RELEASE.md
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
Subject: [ANN] Gruff 0.5.1 released!
|
2
|
-
|
3
|
-
The Gruff team is pleased to announce the release of Gruff 0.5.1.
|
4
|
-
|
5
|
-
New in version 0.5.1:
|
6
|
-
|
7
|
-
Skip packaging the test images. This reduces the gem from 20MB+ to
|
8
|
-
300KB+.
|
9
|
-
|
10
|
-
Bugfixes:
|
11
|
-
|
12
|
-
* Issue #92 Reduce the gem size by not shipping the test images.
|
13
|
-
|
14
|
-
You can find a complete list of issues here:
|
15
|
-
|
16
|
-
* https://github.com/topfunky/gruff/issues?state=closed&milestone=7
|
17
|
-
|
18
|
-
|
19
|
-
Installation:
|
20
|
-
|
21
|
-
gem install gruff
|
22
|
-
|
23
|
-
You can find an introductory tutorial at
|
24
|
-
https://github.com/topfunky/gruff
|
25
|
-
|
26
|
-
Enjoy!
|
27
|
-
|
28
|
-
|
29
|
-
--
|
30
|
-
The Gruff Team
|
data/Rakefile
DELETED
@@ -1,218 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'bundler/gem_tasks'
|
3
|
-
require 'rake/testtask'
|
4
|
-
require 'rake/clean'
|
5
|
-
|
6
|
-
CLEAN.concat %w(pkg test/output/*)
|
7
|
-
|
8
|
-
desc 'Run tests'
|
9
|
-
task :default => :test
|
10
|
-
|
11
|
-
task :gem => :build
|
12
|
-
|
13
|
-
Rake::TestTask.new
|
14
|
-
|
15
|
-
namespace :test do
|
16
|
-
desc 'Run mini tests'
|
17
|
-
task :mini => :clean do
|
18
|
-
Dir['test/test_mini*'].each do |file|
|
19
|
-
system "ruby #{file}"
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
desc 'Generate release docs for a given milestone'
|
25
|
-
task :release_docs do
|
26
|
-
raise "\n This task requires Ruby 1.9 or newer to parse JSON as YAML.\n\n" if RUBY_VERSION == '1.8.7'
|
27
|
-
categories, grouped_issues, milestone, milestone_description, milestone_name = get_github_issues
|
28
|
-
|
29
|
-
puts '=' * 80
|
30
|
-
puts
|
31
|
-
release_doc = <<EOF
|
32
|
-
Subject: [ANN] Gruff #{milestone_name} released!
|
33
|
-
|
34
|
-
The Gruff team is pleased to announce the release of Gruff #{milestone_name}.
|
35
|
-
|
36
|
-
New in version #{milestone_name}:
|
37
|
-
|
38
|
-
#{milestone_description}
|
39
|
-
|
40
|
-
#{(categories.keys & grouped_issues.keys).map do |cat|
|
41
|
-
"#{cat}:\n
|
42
|
-
#{grouped_issues[cat].map { |i| wrap(%Q{* Issue ##{i['number']} #{i['title']}},2) }.join("\n")}
|
43
|
-
"
|
44
|
-
end.join("\n")}
|
45
|
-
You can find a complete list of issues here:
|
46
|
-
|
47
|
-
* https://github.com/topfunky/gruff/issues?state=closed&milestone=#{milestone}
|
48
|
-
|
49
|
-
|
50
|
-
Installation:
|
51
|
-
|
52
|
-
gem install gruff
|
53
|
-
|
54
|
-
You can find an introductory tutorial at
|
55
|
-
https://github.com/topfunky/gruff
|
56
|
-
|
57
|
-
Enjoy!
|
58
|
-
|
59
|
-
|
60
|
-
--
|
61
|
-
The Gruff Team
|
62
|
-
EOF
|
63
|
-
|
64
|
-
puts release_doc
|
65
|
-
puts
|
66
|
-
puts '=' * 80
|
67
|
-
|
68
|
-
unless Gem::Version.new(Gruff::VERSION).prerelease?
|
69
|
-
File.write('RELEASE.md', release_doc)
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
desc 'Fetch download stats form rubygems.org'
|
74
|
-
task :stats do
|
75
|
-
require 'time'
|
76
|
-
require 'date'
|
77
|
-
require 'rubygems'
|
78
|
-
require 'uri'
|
79
|
-
require 'net/http'
|
80
|
-
require 'net/https'
|
81
|
-
require 'openssl'
|
82
|
-
require 'yaml'
|
83
|
-
host = 'rubygems.org'
|
84
|
-
base_uri = "https://#{host}/api/v1"
|
85
|
-
https = Net::HTTP.new(host, 443)
|
86
|
-
https.use_ssl = true
|
87
|
-
https.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
88
|
-
|
89
|
-
counts_per_month = Hash.new { |h, k| h[k] = Hash.new { |mh, mk| mh[mk] = 0 } }
|
90
|
-
total = 0
|
91
|
-
|
92
|
-
%w{gruff}.each do |gem|
|
93
|
-
versions_uri = URI("#{base_uri}/versions/#{gem}.yaml")
|
94
|
-
req = Net::HTTP::Get.new(versions_uri.request_uri)
|
95
|
-
res = https.start { |http| http.request(req) }
|
96
|
-
versions = YAML.load(res.body).sort_by { |v| Gem::Version.new(v['number']) }
|
97
|
-
puts "\n#{gem}:\n#{versions.map { |v| "#{Time.parse(v['built_at']).strftime('%Y-%m-%d')} #{'%10s' % v['number']} #{v['downloads_count']}" }.join("\n")}"
|
98
|
-
|
99
|
-
versions.each do |v|
|
100
|
-
downloads_uri = URI("#{base_uri}/versions/#{gem}-#{v['number']}/downloads/search.yaml?from=#{Time.parse(v['built_at']).strftime('%Y-%m-%d')}&to=#{Date.today}")
|
101
|
-
req = Net::HTTP::Get.new(downloads_uri.request_uri)
|
102
|
-
res = https.start { |http| http.request(req) }
|
103
|
-
counts = YAML.load(res.body)
|
104
|
-
counts.delete_if { |date_str, count| count == 0 }
|
105
|
-
counts.each do |date_str, count|
|
106
|
-
date = Date.parse(date_str)
|
107
|
-
counts_per_month[date.year][date.month] += count
|
108
|
-
total += count
|
109
|
-
end
|
110
|
-
print '.'; STDOUT.flush
|
111
|
-
end
|
112
|
-
puts
|
113
|
-
end
|
114
|
-
|
115
|
-
puts "\nDownloads statistics per month:"
|
116
|
-
years = counts_per_month.keys
|
117
|
-
puts "\n #{years.map { |year| '%6s:' % year }.join(' ')}"
|
118
|
-
(1..12).each do |month|
|
119
|
-
print "#{'%2d' % month}:"
|
120
|
-
years.each do |year|
|
121
|
-
count = counts_per_month[year][month]
|
122
|
-
print count > 0 ? '%8d' % count : ' ' * 8
|
123
|
-
end
|
124
|
-
puts
|
125
|
-
end
|
126
|
-
|
127
|
-
puts "\nTotal: #{total}\n\n"
|
128
|
-
|
129
|
-
puts "\nRubyGems download statistics per month:"
|
130
|
-
years = counts_per_month.keys
|
131
|
-
puts ' ' + years.map { |year| '%-12s' % year }.join
|
132
|
-
(0..20).each do |l|
|
133
|
-
print (l % 10 == 0) ? '%4d' % ((20-l) * 100) : ' '
|
134
|
-
years.each do |year|
|
135
|
-
(1..12).each do |month|
|
136
|
-
count = counts_per_month[year][month]
|
137
|
-
if [year, month] == [Date.today.year, Date.today.month]
|
138
|
-
count *= (Date.new(Date.today.year, Date.today.month, -1).day.to_f / Date.today.day).to_i
|
139
|
-
end
|
140
|
-
print count > ((20-l) * 100) ? '*' : ' '
|
141
|
-
end
|
142
|
-
end
|
143
|
-
puts
|
144
|
-
end
|
145
|
-
puts ' ' + years.map { |year| '%-12s' % year }.join
|
146
|
-
|
147
|
-
puts "\nTotal: #{total}\n\n"
|
148
|
-
end
|
149
|
-
|
150
|
-
|
151
|
-
def get_github_issues
|
152
|
-
puts 'GitHub login:'
|
153
|
-
begin
|
154
|
-
require 'rubygems'
|
155
|
-
require 'highline/import'
|
156
|
-
user = ask('login : ') { |q| q.echo = true }
|
157
|
-
pass = ask('password: ') { |q| q.echo = '*' }
|
158
|
-
rescue Exception
|
159
|
-
print 'user name: '; user = STDIN.gets.chomp
|
160
|
-
print ' password: '; pass = STDIN.gets.chomp
|
161
|
-
end
|
162
|
-
require 'uri'
|
163
|
-
require 'net/http'
|
164
|
-
require 'net/https'
|
165
|
-
require 'openssl'
|
166
|
-
require 'yaml'
|
167
|
-
host = 'api.github.com'
|
168
|
-
base_uri = "https://#{host}/repos/topfunky/gruff"
|
169
|
-
https = Net::HTTP.new(host, 443)
|
170
|
-
https.use_ssl = true
|
171
|
-
https.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
172
|
-
|
173
|
-
milestone_uri = URI("#{base_uri}/milestones")
|
174
|
-
req = Net::HTTP::Get.new(milestone_uri.request_uri)
|
175
|
-
req.basic_auth(user, pass)
|
176
|
-
res = https.start { |http| http.request(req) }
|
177
|
-
milestones = YAML.load(res.body).sort_by { |i| Date.parse(i['due_on']) }
|
178
|
-
puts milestones.map { |m| "#{'%2d' % m['number']} #{m['title']}" }.join("\n")
|
179
|
-
|
180
|
-
if defined? ask
|
181
|
-
milestone = ask('milestone: ', Integer) { |q| q.echo = true }
|
182
|
-
else
|
183
|
-
print 'milestone: '; milestone = STDIN.gets.chomp
|
184
|
-
end
|
185
|
-
|
186
|
-
uri = URI("#{base_uri}/issues?milestone=#{milestone}&state=closed&per_page=1000")
|
187
|
-
req = Net::HTTP::Get.new(uri.request_uri)
|
188
|
-
req.basic_auth(user, pass)
|
189
|
-
res = https.start { |http| http.request(req) }
|
190
|
-
issues = YAML.load(res.body).sort_by { |i| i['number'] }
|
191
|
-
milestone_name = issues[0] ? issues[0]['milestone']['title'] : "No issues for milestone #{milestone}"
|
192
|
-
milestone_description = issues[0] ? issues[0]['milestone']['description'] : "No issues for milestone #{milestone}"
|
193
|
-
milestone_description = milestone_description.split("\r\n").map{|l|wrap l}.join("\r\n")
|
194
|
-
categories = {
|
195
|
-
'Features' => 'feature', 'Bugfixes' => 'bug', 'Support' => 'support',
|
196
|
-
'Documentation' => 'documentation', 'Pull requests' => nil,
|
197
|
-
'Internal' => 'internal', 'Rejected' => 'rejected', 'Other' => nil
|
198
|
-
}
|
199
|
-
grouped_issues = issues.group_by do |i|
|
200
|
-
labels = i['labels'].map { |l| l['name'] }
|
201
|
-
cat = nil
|
202
|
-
categories.each do |k, v|
|
203
|
-
if labels.include? v
|
204
|
-
cat = k
|
205
|
-
break
|
206
|
-
end
|
207
|
-
end
|
208
|
-
cat ||= i['pull_request'] && i['pull_request']['html_url'] && 'Pull requests'
|
209
|
-
cat ||= 'Other'
|
210
|
-
cat
|
211
|
-
end
|
212
|
-
return categories, grouped_issues, milestone, milestone_description, milestone_name
|
213
|
-
end
|
214
|
-
|
215
|
-
def wrap(string, indent = 0)
|
216
|
-
string.scan(/\S.{0,72}\S(?=\s|$)|\S+/).join("\n" + ' ' * indent)
|
217
|
-
end
|
218
|
-
|
data/assets/bubble.png
DELETED
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/assets/pc306715.jpg
DELETED
Binary file
|
data/lib/gruff/bar_conversion.rb
DELETED
@@ -1,46 +0,0 @@
|
|
1
|
-
##
|
2
|
-
# Original Author: David Stokar
|
3
|
-
#
|
4
|
-
# This class perfoms the y coordinats conversion for the bar class.
|
5
|
-
#
|
6
|
-
# There are three cases:
|
7
|
-
#
|
8
|
-
# 1. Bars all go from zero in positive direction
|
9
|
-
# 2. Bars all go from zero to negative direction
|
10
|
-
# 3. Bars either go from zero to positive or from zero to negative
|
11
|
-
#
|
12
|
-
class Gruff::BarConversion
|
13
|
-
attr_writer :mode
|
14
|
-
attr_writer :zero
|
15
|
-
attr_writer :graph_top
|
16
|
-
attr_writer :graph_height
|
17
|
-
attr_writer :minimum_value
|
18
|
-
attr_writer :spread
|
19
|
-
|
20
|
-
def get_left_y_right_y_scaled(data_point, result)
|
21
|
-
case @mode
|
22
|
-
when 1 then # Case one
|
23
|
-
# minimum value >= 0 ( only positiv values )
|
24
|
-
result[0] = @graph_top + @graph_height*(1 - data_point) + 1
|
25
|
-
result[1] = @graph_top + @graph_height - 1
|
26
|
-
when 2 then # Case two
|
27
|
-
# only negativ values
|
28
|
-
result[0] = @graph_top + 1
|
29
|
-
result[1] = @graph_top + @graph_height*(1 - data_point) - 1
|
30
|
-
when 3 then # Case three
|
31
|
-
# positiv and negativ values
|
32
|
-
val = data_point-@minimum_value/@spread
|
33
|
-
if data_point >= @zero
|
34
|
-
result[0] = @graph_top + @graph_height*(1 - (val-@zero)) + 1
|
35
|
-
result[1] = @graph_top + @graph_height*(1 - @zero) - 1
|
36
|
-
else
|
37
|
-
result[0] = @graph_top + @graph_height*(1 - (val-@zero)) + 1
|
38
|
-
result[1] = @graph_top + @graph_height*(1 - @zero) - 1
|
39
|
-
end
|
40
|
-
else
|
41
|
-
result[0] = 0.0
|
42
|
-
result[1] = 0.0
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
end
|