treemap21 0.1.0 → 0.1.1

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
  SHA256:
3
- metadata.gz: f562d64f657a93585417e8bb8c374d0ccc2b6c7236c27084a9de461428038a28
4
- data.tar.gz: 6b51234302c3c93ac22907af27909bd6a9ef117153b523ae123fc42500191b63
3
+ metadata.gz: 9825a658dbeae9c6fb7f654e5143cf31f2c2d293336be852fceb8fd750d28349
4
+ data.tar.gz: c31d5ec01707166babfb0b6d2ed7fa5e100d522cf6b6f70cc79a7bdb6d6006bf
5
5
  SHA512:
6
- metadata.gz: '08fc8fb6bd4e647760d2534e137d0af8d3e4fd176b08e8dff20955a9c916cec0c4813141b58b7d73c03fd777c2f87ff6733905f5ea2c0a9d549e61396013a81e'
7
- data.tar.gz: 316f46ef980904be39d77cdfd87e6ba244d345a5e153be7c7b86c004f82574c64d4b2be4122fb3ecaf08548fc743ee45d16ef1fac867c71a56d2d023e8128698
6
+ metadata.gz: fa4c065777f472807dd2d166fbcc3bbc9c39a911f9aed9d8d575550c9b38d691473434b647204b3e4e0548b61597db085d3429c4467658d15481912308b4168f
7
+ data.tar.gz: 8d1b5af64e797c1daab98a0a8636920678f6de19e58c1ddb89dd1b96447b00d130cf3d0682ef3a397a5939fac63df4c25d9337988ce9d3fd6f2aff6f49513ecc
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/lib/treemap21.rb CHANGED
@@ -25,20 +25,23 @@ class Treemap21
25
25
  <head>
26
26
  <style>
27
27
 
28
- .cbox, .long, .cbox1 {
28
+ .cbox, .long, .cbox1, .cbox1 a {
29
29
  width: 100%;
30
30
  height: 100%;
31
31
  }
32
32
  .cbox1 ~.long, .cbox1 {
33
33
  float: left;
34
34
  }
35
- .cbox1 {
35
+ .cbox1, .cbox1 a {
36
36
  display: flex;
37
37
  justify-content: center;
38
38
  align-items: center;
39
39
  }
40
40
 
41
- .cbox1 span { background-color: transparent;}
41
+ .cbox1 a { text-decoration: none; color: #010; font-family: helvetica, arial}
42
+ .cbox1 a:hover { background-color: rgba(255,255,255,0.2); color: #902}
43
+
44
+ .cbox1 span { background-color: transparent; }
42
45
 
43
46
  .c10 {font-size: 8em}
44
47
  .c9 {font-size: 7.5em}
@@ -46,9 +49,9 @@ class Treemap21
46
49
  .c7 {font-size: 5.0em}
47
50
  .c6 {font-size: 4.9em}
48
51
  .c5 {font-size: 4.5em}
49
- .c4 {font-size: 3.2em}
50
- .c3 {font-size: 2.1em}
51
- .c2 {font-size: 1.9em}
52
+ .c4 {font-size: 3.6em}
53
+ .c3 {font-size: 2.6em}
54
+ .c2 {font-size: 2.4em}
52
55
  .c1 {font-size: 1.6em}
53
56
  .c0 {font-size: 1.1em}
54
57
 
@@ -66,15 +69,25 @@ EOF
66
69
 
67
70
  private
68
71
 
69
- def add_box(text, attr={}, cfont)
72
+ def add_box(text, url=nil, attr={}, cfont)
70
73
 
71
74
  a = attr.map {|key, value| "%s: %s" % [key, value]}
72
75
  h = {class: 'cbox1 ' + cfont, style: a.join('; ')}
73
76
  span = Rexle::Element.new('span', value: text)
74
77
  doc = Rexle::Element.new('div', attributes: h)
75
- doc.root.add span
76
- doc.root
77
78
 
79
+
80
+ if url then
81
+ anchor = Rexle::Element.new('a', attributes: {href: url})
82
+ anchor.root.add span
83
+ doc.root.add anchor.root
84
+ else
85
+ doc.root.add span
86
+
87
+ end
88
+
89
+ doc.root
90
+
78
91
  end
79
92
 
80
93
  def mapper(doc, a, orientation: :landscape, total: 100)
@@ -95,9 +108,9 @@ EOF
95
108
  bgcolor = 3.times.map { rand(60..250).to_s(16) }.join
96
109
 
97
110
  # find the largest box
98
- a2 = a.sort_by(&:last).reverse
111
+ a2 = a.sort_by {|_, percent, _| percent}.reverse
99
112
  puts 'a2.first: ' + a2.first.inspect if @debug
100
- title, percent = a2.first
113
+ title, percent, url = a2.first
101
114
 
102
115
  remainder = total - percent
103
116
  # how much space does the largest box take?
@@ -119,7 +132,7 @@ EOF
119
132
  dimension => rem.round.to_s + '%'
120
133
  }
121
134
 
122
- e = add_box(title, style, ("c%02d" % percent).to_s[0..-2])
135
+ e = add_box(title, url, style, ("c%02d" % percent).to_s[0..-2])
123
136
  puts 'e: ' + e.inspect if @debug
124
137
 
125
138
  doc.root.add e
@@ -130,7 +143,8 @@ EOF
130
143
  doc3 = Rexle.new("<div class='%s' style='%s: %s%%'/>" % [klass, dim2,
131
144
  rem2.round.to_s])
132
145
 
133
- doc2 = mapper(doc3, a2[1..-1], orientation: new_orientation, total: remainder)
146
+ doc2 = mapper(doc3, a2[1..-1], orientation: new_orientation,
147
+ total: remainder)
134
148
 
135
149
  doc.root.add doc2.root
136
150
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: treemap21
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
metadata.gz.sig CHANGED
Binary file