analytics_charts 1.4.2 → 1.4.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f666dab595381b9af701f88f98329f02ce1714ff
4
- data.tar.gz: a42abe86eaaf6f33fc874aed314970f2fbae0184
3
+ metadata.gz: 9b1aee1598609af56b20328ccc22451913d4095d
4
+ data.tar.gz: 3873937e937b37ff6fd7de8bbd0565306d928723
5
5
  SHA512:
6
- metadata.gz: c96ec1ee30c9426a67a7e6f31a75b155362bd0fecb1dab848387d5a2873df61cc2631a63816680f111d8d17c4b04e9b73598cf2bc28313c8bfeee090f35b5ffc
7
- data.tar.gz: ee3f09010f0485a937d6589b6418663484ddbed4e4c1d0774190a95a569ba0e887d43a03bffc3c6e147b0462d6a443dfa3f5177fc764f702cff22e055ba47e0c
6
+ metadata.gz: ed00db05c185e80ea38552936d3eb99b9f67c682519a7af245d77a39cde1b0ac83a233d19052c4011b69aedd3017da27ccee86b3317592ff553e91b86befdf28
7
+ data.tar.gz: 5d2b51fe68eeaed5790253a51574effd6dbe52355a3526c3f0b7ab45b006c097afae2766302a9e4937769cae425794d6720aaa37d494f0c584503204a9ee36f8
@@ -6,7 +6,7 @@ class AnalyticsCharts::CustomModule
6
6
  @d = Draw.new
7
7
  @d.fill = 'white'
8
8
  @d.font = 'Helvetica'
9
- @pointsize = 18
9
+ @pointsize = 14
10
10
  @d.pointsize = @pointsize
11
11
  @d.font_weight = 500
12
12
  @composite_image = Image.read(image_path)[0]
@@ -19,7 +19,9 @@ class AnalyticsCharts::CustomModule
19
19
  puts "Had some error in CustomModule, probably a nil calling each"
20
20
  return
21
21
  end
22
- @height = @composite_rows + @rows_of_text.size * @pointsize
22
+ num_separators = @rows_of_text.count {|row| row.empty? }
23
+ @sep_offset = 7
24
+ @height = @composite_rows + (@rows_of_text.size - num_separators) * @pointsize + num_separators * @sep_offset
23
25
  @base_image = Image.new(@composite_columns, @height) {
24
26
  self.background_color = "black"
25
27
  }
@@ -33,11 +35,17 @@ class AnalyticsCharts::CustomModule
33
35
  text = text.gsub(/['%]/, '%' => '%%', "'" => "\'")
34
36
  if text.include? "@$$" # No paragraph break if we insert this uncommonly used word
35
37
  text.sub!("@$$", "")
38
+ y_offset -= @sep_offset
36
39
  @d.annotate(@base_image, 0 ,0, @pointsize, y_offset, text)
40
+ y_offset += @pointsize
37
41
  next
38
42
  else
39
43
  @d.annotate(@base_image, 0 ,0, @pointsize, y_offset, text)
40
- y_offset += @pointsize
44
+ if text.empty?
45
+ y_offset += @sep_offset
46
+ else
47
+ y_offset += @pointsize
48
+ end
41
49
  end
42
50
  end
43
51
  @base_image.write(output_path)
@@ -49,7 +57,7 @@ class AnalyticsCharts::CustomModule
49
57
  carriage_split_lines.each do |carriage_split_line|
50
58
  line_wrap_lines = line_wrap(carriage_split_line)
51
59
  line_wrap_lines.each { |line| line_tokens.push(line) }
52
- line_tokens.push("\r\n")
60
+ line_tokens.push("")
53
61
  end
54
62
  line_tokens
55
63
  end
@@ -70,7 +78,7 @@ class AnalyticsCharts::CustomModule
70
78
  end
71
79
 
72
80
  def fits_in_a_line(text)
73
- return @d.get_type_metrics(@dummy_image,text).width < @composite_image.columns - @pointsize * 2
81
+ return @d.get_type_metrics(@dummy_image,text).width < @composite_image.columns - 36
74
82
  end
75
83
  end
76
84
  #Reference: Draw defaults[ font: "Helvetica", pointsize:12, x/y resolution 72 DPI, font_weight: 400]
@@ -95,8 +95,8 @@ class AnalyticsCharts::CustomPie
95
95
  # If we don't refresh draw, future "@d.draw(@base_image)" will redraw the circle,
96
96
  # overlapping on the text written below
97
97
  @d = Draw.new
98
- insert_text(@pie_center_x - 30, @pie_center_y, "No data....",
99
- @label_hash.merge({'fill'=> '#000000', 'font_weight'=> 700 }))
98
+ insert_text(@pie_center_x - 30, @pie_center_y, "No Data",
99
+ @label_hash.merge({'fill'=> ' #000000', 'font_weight'=> 700 }))
100
100
  return
101
101
  end
102
102
  if @data.size > 0
@@ -233,7 +233,7 @@ class AnalyticsCharts::CustomPie
233
233
  y_offset += @label_offset
234
234
  end
235
235
  insert_text_with_circle(x_offset, y_offset, '= purchased by you',
236
- @label_hash.merge({'fill'=> '#FFFFFF', 'font_weight'=> 900 }))
236
+ @label_hash.merge({'fill'=> '#252525', 'font_weight'=> 900 }))
237
237
  end
238
238
 
239
239
  def draw_pie_label(center_x, center_y, angle, radius, percent, index)
@@ -251,16 +251,16 @@ class AnalyticsCharts::CustomPie
251
251
  # Imagine the text box around the text
252
252
  # Shift text box so a corner is tangent to circle
253
253
  if x > center_x
254
- x += width / 2.0
254
+ x += width / 2.0 + 6
255
255
  end
256
256
  if x < center_x
257
- x -= width / 2.0
257
+ x -= width / 2.0 + 6
258
258
  end
259
259
  if y > center_y
260
- y += ascent / 2.0
260
+ y += ascent / 2.0 + 6
261
261
  end
262
262
  if y < center_y
263
- y -= (ascent / 2.0 - descent) # descent to account for '$' descent,
263
+ y -= ascent / 2.0 + 6
264
264
  # descent value retrieved is negative, so sub instead of add
265
265
  end
266
266
  @d.align = CenterAlign
@@ -12,9 +12,11 @@ class AnalyticsCharts::PieAndLabels < AnalyticsCharts::CustomPie
12
12
  @d.font_weight = 700
13
13
  @dummy_image = Image.new(1,1)
14
14
  @composite_columns = @composite_image.columns
15
+ puts @composite_columns
15
16
  @composite_rows = @composite_image.rows
16
- @org_texts = tokenize_text_by_lines(organization)
17
17
  @org_text_size = 14
18
+ @org_texts = tokenize_text_by_lines(organization,
19
+ {'fill' => '#FFFFFF', 'pointsize'=> @org_text_size, 'font_weight'=> 500 })
18
20
  @label_size = 16
19
21
  org_text_offset = @org_texts.size * @org_text_size
20
22
  # (num_labels + 1) to account for white key on bottom of labels
@@ -129,7 +131,10 @@ class AnalyticsCharts::PieAndLabels < AnalyticsCharts::CustomPie
129
131
  @d.line(0,@height_with_no_disclaimer,@composite_columns,@height_with_no_disclaimer)
130
132
  end
131
133
 
132
- def tokenize_text_by_lines(text)
134
+ def tokenize_text_by_lines(text, features = {})
135
+ features.each { |feature, attribute|
136
+ set_feature(feature, attribute)
137
+ }
133
138
  # First split the text by the line carriage element
134
139
  carriage_split_lines = text.split("\r\n")
135
140
  line_tokens = Array.new
@@ -1,3 +1,3 @@
1
1
  module AnalyticsCharts
2
- VERSION = "1.4.2"
2
+ VERSION = "1.4.5"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: analytics_charts
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.2
4
+ version: 1.4.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - STEPHEN YU