gruffy 1.1.0 → 1.2.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
  SHA1:
3
- metadata.gz: 63f477231d82e41b3c6c22d654d880329ed45e21
4
- data.tar.gz: e548d23c404fb6a1b273b3f59d17c54424dcbaed
3
+ metadata.gz: 8b3383cf24e80b939ed4bb2e3f4bed4860622a6f
4
+ data.tar.gz: 4b4cb30018d3aedc7522de484548f71695c705bb
5
5
  SHA512:
6
- metadata.gz: 9d656ffbce7aefbe43fd307619182047a64a492da1902e8e32a849a7db44c5c2a847b622be5d2698640167d97bf11c12dbd9b69381948ff07a2dee4953a94b83
7
- data.tar.gz: df1cec0423bd25b4952cf0abd7d47a8509957c731085dc9f13bebaf5f31ab9bedec4e7379d06a5f4f22a44c8e36495700226d9d3911d6155db23fb882009486c
6
+ metadata.gz: 3f29ff91e70e804a0e817dcda14520013289d3aefa221f20702e82467d7b73f0bf779d1ef5f67f5bbbaa5ec3e1b76203ab850b5656cdbe58b723cb0d8cbe8ebf
7
+ data.tar.gz: d30d43c525ee7b30818860cbf5067c59f73fe404f3f3ee78ee0f411500002f6c09741b6a38eba706e99b0a1eca6e6d85cb029f48bdc67d88eda9afc51ae17747
@@ -27,25 +27,53 @@ class Gruffy::SideStackedBar < Gruffy::SideBar
27
27
  height = Array.new(@column_count, 0)
28
28
  length = Array.new(@column_count, @graph_left)
29
29
  padding = (@bar_width * (1 - @bar_spacing)) / 2
30
+
30
31
  if @show_labels_for_bar_values
31
32
  label_values = Array.new
32
33
  0.upto(@column_count-1) {|i| label_values[i] = {:value => 0, :right_x => 0}}
33
34
  end
34
- @norm_data.each_with_index do |data_row, row_index|
35
+
36
+ difference_pixels = []
37
+ @norm_data.each do |data_row|
38
+ temps = []
35
39
  data_row[DATA_VALUES_INDEX].each_with_index do |data_point, point_index|
40
+ temp1 = @graph_left + (@graph_width - data_point * @graph_width - height[point_index])
41
+ temp2 = @graph_left + @graph_width - height[point_index]
42
+ temps << (temp2 - temp1)
43
+ end
44
+
45
+ difference_pixels << temps
46
+ end
36
47
 
48
+ difference_count = 1
49
+ begin
50
+ temps = difference_pixels.first
51
+ difference_pixels.shift
52
+ difference_pixels.each {|t| temps = temps.zip(t) }
53
+ difference_count = temps.first.flatten.length
54
+ temps = temps.map {|r| r.flatten.sum }
55
+ difference_pixels = temps
56
+ rescue
57
+ end
58
+
59
+ @norm_data.each_with_index do |data_row, row_index|
60
+ data_row[DATA_VALUES_INDEX].each_with_index do |data_point, point_index|
37
61
  ## using the original calcs from the stacked bar chart to get the difference between
38
62
  ## part of the bart chart we wish to stack.
63
+ pixel_missing = ((@graph_width - difference_pixels[point_index].to_s.to_f) / difference_count)
64
+
39
65
  temp1 = @graph_left + (@graph_width - data_point * @graph_width - height[point_index])
40
66
  temp2 = @graph_left + @graph_width - height[point_index]
41
- difference = temp2 - temp1
67
+ difference = temp2 - temp1 + pixel_missing
42
68
 
43
69
  @d = @d.fill data_row[DATA_COLOR_INDEX]
44
70
 
45
- left_x = length[point_index] #+ 1
46
- left_y = @graph_top + (@bar_width * point_index) + padding
71
+ left_x = length[point_index]
72
+ left_y = @graph_top + (@bar_width * point_index) + padding
73
+
47
74
  right_x = left_x + difference
48
- right_y = left_y + @bar_width * @bar_spacing
75
+ right_y = left_y + @bar_width * @bar_spacing
76
+
49
77
  length[point_index] += difference
50
78
  height[point_index] += (data_point * @graph_width - 2)
51
79
 
@@ -68,6 +96,7 @@ class Gruffy::SideStackedBar < Gruffy::SideBar
68
96
  end
69
97
 
70
98
  end
99
+
71
100
  if @show_labels_for_bar_values
72
101
  label_values.each_with_index do |data, i|
73
102
  val = (@label_formatting || "%.2f") % data[:value]
@@ -1,3 +1,3 @@
1
1
  module Gruffy
2
- VERSION = '1.1.0'
2
+ VERSION = '1.2.0'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gruffy
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wuttikrai Limsakul