panic_board_data 0.0.11 → 0.0.12
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/panic_board_data/kernel.rb +4 -0
- data/lib/panic_board_data/single_value.rb +80 -0
- data/lib/panic_board_data/table.rb +7 -17
- data/lib/panic_board_data/version.rb +1 -1
- data/spec/panic_board_data/kernel_spec.rb +23 -7
- data/spec/panic_board_data/single_value_spec.rb +27 -0
- data/spec/panic_board_data/table_spec.rb +14 -66
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 350c071a10efa215974a4300d171338d18301de9
|
4
|
+
data.tar.gz: 07596eb9a3eec08357d2f6735d9b5f89973bb0f4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0a796e8dd7e60d47873eda067df2d7e4e71212bc2a1c5f72ad1a0d7aa1e8ac809c3a51dc7a05d35390d30b612d2c0a4dec5fb4c5fe71d6dcd8bbab5c873a52d1
|
7
|
+
data.tar.gz: 880fb51cca44e7d049cad9f7cc97f66ae847b499376fd629e47740ede9f21aa1d1b1cba33ad69e071a42d72cdde757af92cb9d861a61abd53abc098759158f51
|
@@ -0,0 +1,80 @@
|
|
1
|
+
module PanicBoardData
|
2
|
+
|
3
|
+
class SingleValue
|
4
|
+
|
5
|
+
def initialize heading, value
|
6
|
+
@heading, @value = heading, value
|
7
|
+
end
|
8
|
+
|
9
|
+
def to_html
|
10
|
+
<<EOF
|
11
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
12
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
13
|
+
<head>
|
14
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
|
15
|
+
<meta http-equiv="Cache-control" content="no-cache" />
|
16
|
+
<style type="text/css">
|
17
|
+
@font-face
|
18
|
+
{
|
19
|
+
font-family: "Roadgeek2005SeriesD";
|
20
|
+
src: url("http://panic.com/fonts/Roadgeek 2005 Series D/Roadgeek 2005 Series D.otf");
|
21
|
+
}
|
22
|
+
|
23
|
+
body, *
|
24
|
+
{}
|
25
|
+
|
26
|
+
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td
|
27
|
+
{ margin: 0; padding: 0; }
|
28
|
+
|
29
|
+
fieldset,img
|
30
|
+
{ border: 0; }
|
31
|
+
|
32
|
+
html, body, #main
|
33
|
+
{ overflow: hidden; }
|
34
|
+
|
35
|
+
body
|
36
|
+
{ color: white; font-family: 'Roadgeek2005SeriesD', sans-serif; font-size: 20px; line-height: 24px; }
|
37
|
+
|
38
|
+
body, html, #main
|
39
|
+
{ background: transparent !important; }
|
40
|
+
|
41
|
+
#Container
|
42
|
+
{ text-align: center; }
|
43
|
+
|
44
|
+
#Container *
|
45
|
+
{ font-weight: normal; }
|
46
|
+
|
47
|
+
h1
|
48
|
+
{ font-size: 120px; line-height: 120px; margin-top: 15px;
|
49
|
+
margin-bottom: 0px; color: white;
|
50
|
+
text-shadow:0px -2px 0px black; text-transform: uppercase; }
|
51
|
+
|
52
|
+
h2
|
53
|
+
{ margin: 0px auto; padding-top: 20px; font-size: 16px;
|
54
|
+
line-height: 18px; color: #7e7e7e; text-transform: uppercase; }
|
55
|
+
</style>
|
56
|
+
|
57
|
+
<script type="text/javascript">
|
58
|
+
function init()
|
59
|
+
{
|
60
|
+
if (document.location.href.indexOf('desktop') > -1)
|
61
|
+
document.getElementById('Container').style.backgroundColor = 'black';
|
62
|
+
}
|
63
|
+
</script>
|
64
|
+
</head>
|
65
|
+
|
66
|
+
<body onload="init()">
|
67
|
+
<div id="main">
|
68
|
+
<div id="Container">
|
69
|
+
<h2>#{@heading}</h2>
|
70
|
+
<h1 id="howmany">#{@value}</h1>
|
71
|
+
</div>
|
72
|
+
</div>
|
73
|
+
</body>
|
74
|
+
</html>
|
75
|
+
EOF
|
76
|
+
end
|
77
|
+
|
78
|
+
end
|
79
|
+
|
80
|
+
end
|
@@ -5,16 +5,12 @@ module PanicBoardData
|
|
5
5
|
|
6
6
|
class Table
|
7
7
|
|
8
|
-
attr_accessor :data, :widths
|
8
|
+
attr_accessor :data, :widths
|
9
9
|
|
10
10
|
def initialize(data = [])
|
11
11
|
@data = data
|
12
12
|
end
|
13
13
|
|
14
|
-
def build_image value
|
15
|
-
"<img src=\"#{url_for(value)}\" />"
|
16
|
-
end
|
17
|
-
|
18
14
|
def to_html
|
19
15
|
"<table>#{data_to_table_rows}</table>"
|
20
16
|
end
|
@@ -31,16 +27,6 @@ module PanicBoardData
|
|
31
27
|
|
32
28
|
private
|
33
29
|
|
34
|
-
def url_for value
|
35
|
-
[self.base_image_url, value]
|
36
|
-
.select { |x| x.to_s != '' }
|
37
|
-
.map { |x| x.to_s.strip }
|
38
|
-
.map { |x| x.gsub('/', '') }
|
39
|
-
.join('/')
|
40
|
-
.gsub('http:', 'http://')
|
41
|
-
.gsub('https:', 'https://')
|
42
|
-
end
|
43
|
-
|
44
30
|
def data_to_table_rows
|
45
31
|
return '' unless data
|
46
32
|
data.map { |r| build_row_for r }.join
|
@@ -52,7 +38,7 @@ module PanicBoardData
|
|
52
38
|
end
|
53
39
|
|
54
40
|
def build_cell_for value, index
|
55
|
-
value = flatten_a_value_array_to_a_single_value
|
41
|
+
value = flatten_a_value_array_to_a_single_value(value).to_s
|
56
42
|
width = get_width_for index
|
57
43
|
render_cell value, width
|
58
44
|
end
|
@@ -66,11 +52,15 @@ module PanicBoardData
|
|
66
52
|
end
|
67
53
|
|
68
54
|
def render_cell value, width
|
69
|
-
return value
|
55
|
+
return value if this_value_defines_a_td value
|
70
56
|
width ? "<td style=\"width: #{width}px\">#{value}</td>"
|
71
57
|
: "<td>#{value}</td>"
|
72
58
|
end
|
73
59
|
|
60
|
+
def this_value_defines_a_td value
|
61
|
+
value[0..2] == '<td'
|
62
|
+
end
|
63
|
+
|
74
64
|
end
|
75
65
|
|
76
66
|
end
|
@@ -1,25 +1,41 @@
|
|
1
1
|
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
2
|
|
3
3
|
describe "progress_bar_to" do
|
4
|
-
|
5
|
-
|
6
|
-
[2],
|
7
|
-
[8]
|
8
|
-
]}.each do |test|
|
4
|
+
|
5
|
+
[1, 2, 3, 4, 5, 6, 7, 8].each do |value|
|
9
6
|
|
10
7
|
describe "progress bars" do
|
11
8
|
|
12
9
|
before do
|
13
|
-
@result = progress_bar_to(
|
10
|
+
@result = progress_bar_to(value)
|
14
11
|
end
|
15
12
|
|
16
13
|
it "should create a progress bar with the right value" do
|
17
14
|
@result.is_a?(PanicBoardData::ProgressBar).must_equal true
|
18
|
-
@result.value.must_equal
|
15
|
+
@result.value.must_equal value
|
19
16
|
end
|
20
17
|
|
21
18
|
end
|
22
19
|
|
23
20
|
end
|
24
21
|
|
22
|
+
[:value, :result].to_objects { [
|
23
|
+
[ 0, "<img src=\"0\" />"],
|
24
|
+
[ 1, "<img src=\"1\" />"],
|
25
|
+
[ 'apple.jpg', "<img src=\"apple.jpg\" />"],
|
26
|
+
] }.each do |test|
|
27
|
+
|
28
|
+
describe "basic image use" do
|
29
|
+
|
30
|
+
before do
|
31
|
+
@result = build_image test.value
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should return a result" do
|
35
|
+
@result.must_equal test.result
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
25
41
|
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
+
|
3
|
+
describe PanicBoardData::SingleValue do
|
4
|
+
|
5
|
+
let(:single_value) { PanicBoardData::SingleValue.new heading, value }
|
6
|
+
|
7
|
+
[:heading, :value, :length].to_objects {[
|
8
|
+
['the heading', 'the value', 1727],
|
9
|
+
['one', 'two', 1713]
|
10
|
+
]}.each do |test|
|
11
|
+
|
12
|
+
describe "to_html" do
|
13
|
+
let(:heading) { test.heading }
|
14
|
+
let(:value) { test.value }
|
15
|
+
|
16
|
+
it "should return a bunch of html" do
|
17
|
+
result = single_value.to_html
|
18
|
+
result.length.must_equal test.length
|
19
|
+
result.include?(test.heading).must_equal true
|
20
|
+
result.include?(test.value).must_equal true
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
@@ -55,39 +55,35 @@ describe PanicBoardData::Table do
|
|
55
55
|
|
56
56
|
end
|
57
57
|
|
58
|
-
[:array, :
|
59
|
-
[ [
|
60
|
-
[ [
|
61
|
-
[ [1, 2], 102, nil, "<td style=\"width: 102px\">1</td><td>2</td>"],
|
62
|
-
[ [1, 2], 401, 500, "<td style=\"width: 401px\">1</td><td style=\"width: 500px\">2</td>"],
|
58
|
+
[:array, :result].to_objects { [
|
59
|
+
[ ["<td>X</td>"], "<td>X</td>"],
|
60
|
+
[ ["<td width=''>Y</td>"], "<td width=''>Y</td>"],
|
63
61
|
] }.each do |test|
|
64
62
|
|
65
|
-
describe "
|
66
|
-
|
63
|
+
describe "a cell value that starts with a TD" do
|
67
64
|
before do
|
68
|
-
table.data
|
69
|
-
table.widths = [test.first_width, test.second_width]
|
65
|
+
table.data = [test.array]
|
70
66
|
@result = table.to_html
|
71
67
|
end
|
72
68
|
|
73
69
|
it "should return a result" do
|
74
70
|
@result.must_equal "<table><tr>#{test.result}</tr></table>"
|
75
71
|
end
|
76
|
-
|
77
72
|
end
|
78
|
-
|
79
73
|
end
|
80
74
|
|
81
|
-
[:array, :result].to_objects { [
|
82
|
-
[ [0],
|
83
|
-
[ [1],
|
84
|
-
[ [
|
75
|
+
[:array, :first_width, :second_width, :result].to_objects { [
|
76
|
+
[ [0], 125, nil, "<td style=\"width: 125px\">0</td>"],
|
77
|
+
[ [1], 200, nil, "<td style=\"width: 200px\">1</td>"],
|
78
|
+
[ [1, 2], 102, nil, "<td style=\"width: 102px\">1</td><td>2</td>"],
|
79
|
+
[ [1, 2], 401, 500, "<td style=\"width: 401px\">1</td><td style=\"width: 500px\">2</td>"],
|
85
80
|
] }.each do |test|
|
86
81
|
|
87
|
-
describe "
|
82
|
+
describe "one row, adjusted width" do
|
88
83
|
|
89
84
|
before do
|
90
|
-
table.data
|
85
|
+
table.data = [test.array]
|
86
|
+
table.widths = [test.first_width, test.second_width]
|
91
87
|
@result = table.to_html
|
92
88
|
end
|
93
89
|
|
@@ -107,7 +103,7 @@ describe PanicBoardData::Table do
|
|
107
103
|
describe "stacking multiple images into a single cell" do
|
108
104
|
|
109
105
|
before do
|
110
|
-
table.data = [[[
|
106
|
+
table.data = [[[build_image(test.first_image), build_image(test.second_image)]]]
|
111
107
|
@result = table.to_html
|
112
108
|
end
|
113
109
|
|
@@ -119,54 +115,6 @@ describe PanicBoardData::Table do
|
|
119
115
|
|
120
116
|
end
|
121
117
|
|
122
|
-
[:array, :base_image_url, :result].to_objects { [
|
123
|
-
[ [0], "http://www.google.com", "<td><img src=\"http://www.google.com/0\" /></td>"],
|
124
|
-
[ [1], "http://www.bing.com/", "<td><img src=\"http://www.bing.com/1\" /></td>"],
|
125
|
-
[ ['apple.jpg'], nil, "<td><img src=\"apple.jpg\" /></td>"],
|
126
|
-
[ ['apple.jpg'], '', "<td><img src=\"apple.jpg\" /></td>"],
|
127
|
-
[ ['/apple.jpg'], 'http://www.bing.com/', "<td><img src=\"http://www.bing.com/apple.jpg\" /></td>"],
|
128
|
-
[ ['/apple.jpg'], 'https://www.bing.com/', "<td><img src=\"https://www.bing.com/apple.jpg\" /></td>"],
|
129
|
-
] }.each do |test|
|
130
|
-
|
131
|
-
describe "basic image use" do
|
132
|
-
|
133
|
-
before do
|
134
|
-
table.base_image_url = test.base_image_url
|
135
|
-
table.data = [test.array.map { |x| table.build_image x }]
|
136
|
-
|
137
|
-
@result = table.to_html
|
138
|
-
end
|
139
|
-
|
140
|
-
it "should return a result" do
|
141
|
-
@result.must_equal "<table><tr>#{test.result}</tr></table>"
|
142
|
-
end
|
143
|
-
|
144
|
-
end
|
145
|
-
|
146
|
-
end
|
147
|
-
|
148
|
-
[:value, :result].to_objects {[
|
149
|
-
[1, '<td class="projectsBars"><div class="barSegment value1"></div></td>'],
|
150
|
-
[2, '<td class="projectsBars"><div class="barSegment value1"></div><div class="barSegment value2"></div></td>'],
|
151
|
-
[8, '<td class="projectsBars"><div class="barSegment value1"></div><div class="barSegment value2"></div><div class="barSegment value3"></div><div class="barSegment value4"></div><div class="barSegment value5"></div><div class="barSegment value6"></div><div class="barSegment value7"></div><div class="barSegment value8"></div></td>']
|
152
|
-
]}.each do |test|
|
153
|
-
|
154
|
-
describe "progress bars" do
|
155
|
-
|
156
|
-
before do
|
157
|
-
table.data = [['a', table.progress_bar_to(test.value)]]
|
158
|
-
|
159
|
-
@result = table.to_html
|
160
|
-
end
|
161
|
-
|
162
|
-
it "should create a cell with the proper progress bar" do
|
163
|
-
@result.must_equal "<table><tr><td>a</td>#{test.result}</tr></table>"
|
164
|
-
end
|
165
|
-
|
166
|
-
end
|
167
|
-
|
168
|
-
end
|
169
|
-
|
170
118
|
end
|
171
119
|
|
172
120
|
[->(d) { PanicBoardData::Table.to_csv(d) },
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: panic_board_data
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Darren Cauthon
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-11-
|
11
|
+
date: 2013-11-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|
@@ -111,11 +111,13 @@ files:
|
|
111
111
|
- lib/panic_board_data/graph.rb
|
112
112
|
- lib/panic_board_data/kernel.rb
|
113
113
|
- lib/panic_board_data/progress_bar.rb
|
114
|
+
- lib/panic_board_data/single_value.rb
|
114
115
|
- lib/panic_board_data/table.rb
|
115
116
|
- lib/panic_board_data/version.rb
|
116
117
|
- panic_board_data.gemspec
|
117
118
|
- spec/panic_board_data/graph_spec.rb
|
118
119
|
- spec/panic_board_data/kernel_spec.rb
|
120
|
+
- spec/panic_board_data/single_value_spec.rb
|
119
121
|
- spec/panic_board_data/table_spec.rb
|
120
122
|
- spec/spec_helper.rb
|
121
123
|
homepage: ''
|
@@ -145,5 +147,6 @@ summary: Export data for Panic Board
|
|
145
147
|
test_files:
|
146
148
|
- spec/panic_board_data/graph_spec.rb
|
147
149
|
- spec/panic_board_data/kernel_spec.rb
|
150
|
+
- spec/panic_board_data/single_value_spec.rb
|
148
151
|
- spec/panic_board_data/table_spec.rb
|
149
152
|
- spec/spec_helper.rb
|