twb 0.0.33 → 0.0.34
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/twb.rb +2 -1
- data/lib/twb/docdashboard.rb +34 -35
- data/lib/twb/util/hashtohtml.rb +1 -1
- data/lib/twb/util/htmllistcollapsible.rb +0 -12
- data/lib/twb/util/xraydashboards.rb +553 -0
- data/lib/twb/workbook.rb +9 -2
- data/test/testDashboardXRay.rb +49 -0
- data/test/testDocDashboard.rb +0 -1
- data/test/testHTMLList.rb +3 -1
- data/{testTwbWrite.rb → test/testTwbWrite.rb} +4 -2
- data/twb-0.0.33.gem +0 -0
- metadata +4 -9
- data/test/No Content.injected.twb +0 -82
- data/test/No Dashboards.injected.twb +0 -618
- data/test/Special Documentation.html +0 -198
- data/test/TableauDocInlineCSS.html +0 -165
- data/test/Web Page Dashboards.injected.twb +0 -1361
- data/test/collapsibleList.html +0 -198
- data/testTwbGem.rb +0 -67
data/test/collapsibleList.html
DELETED
@@ -1,198 +0,0 @@
|
|
1
|
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
2
|
-
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
|
3
|
-
<head>
|
4
|
-
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
5
|
-
<title>Tableau Documentation</title>
|
6
|
-
<style type="text/css">
|
7
|
-
body, a {
|
8
|
-
color: #3B4C56;
|
9
|
-
font-family: sans-serif;
|
10
|
-
font-size: 14px;
|
11
|
-
text-decoration: none;
|
12
|
-
}
|
13
|
-
#pgtitle
|
14
|
-
{
|
15
|
-
margin: 0px 0px 20px;
|
16
|
-
font-size: 14pt;
|
17
|
-
text-align: center;
|
18
|
-
}
|
19
|
-
a{
|
20
|
-
cursor:pointer;
|
21
|
-
}
|
22
|
-
.tree ul {
|
23
|
-
list-style: none outside none;
|
24
|
-
}
|
25
|
-
.tree li a {
|
26
|
-
line-height: 25px;
|
27
|
-
}
|
28
|
-
.tree > ul > li > a {
|
29
|
-
color: #3B4C56;
|
30
|
-
display: block;
|
31
|
-
font-weight: normal;
|
32
|
-
position: relative;
|
33
|
-
text-decoration: none;
|
34
|
-
}
|
35
|
-
.tree li.parent > a {
|
36
|
-
padding: 0 0 0 28px;
|
37
|
-
}
|
38
|
-
.tree li.parent > a:before {
|
39
|
-
background-image: url("Controls.png");
|
40
|
-
background-position: 20px center;
|
41
|
-
content: "";
|
42
|
-
display: block;
|
43
|
-
height: 20px;
|
44
|
-
left: 0;
|
45
|
-
position: absolute;
|
46
|
-
top: 2px;
|
47
|
-
vertical-align: middle;
|
48
|
-
width: 20px;
|
49
|
-
}
|
50
|
-
.tree ul li.active > a:before {
|
51
|
-
background-position: 0 center;
|
52
|
-
}
|
53
|
-
.tree ul li ul {
|
54
|
-
border-left: 1px solid #D9DADB;
|
55
|
-
display: none;
|
56
|
-
margin: 0 0 0 12px;
|
57
|
-
overflow: hidden;
|
58
|
-
padding: 0 0 0 25px;
|
59
|
-
}
|
60
|
-
.tree ul li ul li {
|
61
|
-
position: relative;
|
62
|
-
}
|
63
|
-
.tree ul li ul li:before {
|
64
|
-
border-bottom: 1px dashed #E2E2E3;
|
65
|
-
content: "";
|
66
|
-
left: -20px;
|
67
|
-
position: absolute;
|
68
|
-
top: 12px;
|
69
|
-
width: 15px;
|
70
|
-
}
|
71
|
-
#wrapper {
|
72
|
-
margin: 0 auto;
|
73
|
-
width: 300px;
|
74
|
-
}
|
75
|
-
</style>
|
76
|
-
<script src="http://code.jquery.com/jquery-1.7.2.min.js" type="text/javascript"> </script><script type="text/javascript">
|
77
|
-
$( document ).ready( function( ) {
|
78
|
-
$( '.tree li' ).each( function() {
|
79
|
-
if( $( this ).children( 'ul' ).length > 0 ) {
|
80
|
-
$( this ).addClass( 'parent' );
|
81
|
-
}
|
82
|
-
});
|
83
|
-
|
84
|
-
$( '.tree li.parent > a' ).click( function( ) {
|
85
|
-
$( this ).parent().toggleClass( 'active' );
|
86
|
-
$( this ).parent().children( 'ul' ).slideToggle( 'fast' );
|
87
|
-
});
|
88
|
-
|
89
|
-
$( '#all' ).click( function() {
|
90
|
-
|
91
|
-
$( '.tree li' ).each( function() {
|
92
|
-
$( this ).toggleClass( 'active' );
|
93
|
-
$( this ).children( 'ul' ).slideToggle( 'fast' );
|
94
|
-
});
|
95
|
-
});
|
96
|
-
|
97
|
-
$( '.tree li' ).each( function() {
|
98
|
-
$( this ).toggleClass( 'active' );
|
99
|
-
$( this ).children( 'ul' ).slideToggle( 'fast' );
|
100
|
-
});
|
101
|
-
|
102
|
-
});
|
103
|
-
|
104
|
-
</script>
|
105
|
-
</head>
|
106
|
-
<body>
|
107
|
-
<div id="pgtitle">Exploratory Content</div>
|
108
|
-
<div id="wrapper">
|
109
|
-
<div class="tree">
|
110
|
-
<button id="all">Toggle all</button>
|
111
|
-
<ul>
|
112
|
-
<li>
|
113
|
-
<a>a</a>
|
114
|
-
<ul>
|
115
|
-
<li>
|
116
|
-
<a>eh?</a>
|
117
|
-
</li>
|
118
|
-
</ul>
|
119
|
-
</li>
|
120
|
-
<li>
|
121
|
-
<a>b</a>
|
122
|
-
<ul>
|
123
|
-
<li>
|
124
|
-
<a>bee</a>
|
125
|
-
</li>
|
126
|
-
<li>
|
127
|
-
<a>be</a>
|
128
|
-
</li>
|
129
|
-
</ul>
|
130
|
-
</li>
|
131
|
-
<li>
|
132
|
-
<a>c</a>
|
133
|
-
<ul>
|
134
|
-
<li>
|
135
|
-
<a>sea</a>
|
136
|
-
<ul>
|
137
|
-
<li>
|
138
|
-
<a>ocean</a>
|
139
|
-
</li>
|
140
|
-
<li>
|
141
|
-
<a>mer</a>
|
142
|
-
</li>
|
143
|
-
</ul>
|
144
|
-
</li>
|
145
|
-
<li>
|
146
|
-
<a>see</a>
|
147
|
-
<ul>
|
148
|
-
<li>
|
149
|
-
<a>vision</a>
|
150
|
-
</li>
|
151
|
-
<li>
|
152
|
-
<a>sight</a>
|
153
|
-
</li>
|
154
|
-
<li>
|
155
|
-
<a>lookers</a>
|
156
|
-
</li>
|
157
|
-
</ul>
|
158
|
-
</li>
|
159
|
-
</ul>
|
160
|
-
</li>
|
161
|
-
<li>
|
162
|
-
<a>red</a>
|
163
|
-
<ul>
|
164
|
-
<li>
|
165
|
-
<a>red</a>
|
166
|
-
<ul>
|
167
|
-
<li>
|
168
|
-
<a>crimson</a>
|
169
|
-
<ul>
|
170
|
-
<li>
|
171
|
-
<a>color</a>
|
172
|
-
</li>
|
173
|
-
<li>
|
174
|
-
<a>of</a>
|
175
|
-
</li>
|
176
|
-
<li>
|
177
|
-
<a>blood</a>
|
178
|
-
</li>
|
179
|
-
</ul>
|
180
|
-
</li>
|
181
|
-
</ul>
|
182
|
-
</li>
|
183
|
-
<li>
|
184
|
-
<a>read</a>
|
185
|
-
<ul>
|
186
|
-
<li>
|
187
|
-
<a>tense uncertain</a>
|
188
|
-
</li>
|
189
|
-
</ul>
|
190
|
-
</li>
|
191
|
-
</ul>
|
192
|
-
</li>
|
193
|
-
</ul>
|
194
|
-
</div>
|
195
|
-
</div>
|
196
|
-
|
197
|
-
</body>
|
198
|
-
</html>
|
data/testTwbGem.rb
DELETED
@@ -1,67 +0,0 @@
|
|
1
|
-
# testTwbGem.rb - this Ruby script Copyright 2013, 2014 Christopher Gerrard
|
2
|
-
|
3
|
-
require 'nokogiri'
|
4
|
-
|
5
|
-
#require 'twb'
|
6
|
-
require 'C:\tech\Tableau\tools\Ruby\gems\twb\lib\twb.rb'
|
7
|
-
|
8
|
-
def processTWB twbWithDir
|
9
|
-
print "\n\n\n== #{twbWithDir}"
|
10
|
-
twb = Twb::Workbook.new twbWithDir
|
11
|
-
puts " :: #{twb.name}"
|
12
|
-
doc = twb.ndoc
|
13
|
-
|
14
|
-
puts " Data Sources"
|
15
|
-
twb.datasources.each do |ds|
|
16
|
-
puts "\n\t n\t- #{ds.name}\n\t :: c\t- #{ds.caption}\n\t :: uin\t- #{ds.uiname} \n\t :: ch\t- #{ds.connHash}\n\t :: p?\t- #{ds.Parameters?} "
|
17
|
-
puts "\t tbls\t- #{ds.tables}"
|
18
|
-
ds.localfields.each do |name,fld|
|
19
|
-
puts "\t\t lfld:\t- #{name}"
|
20
|
-
end
|
21
|
-
ds.metadatafields.each do |name,fld|
|
22
|
-
puts "\t\t mfld:\t- #{name} = #{fld.localname} = #{fld}"
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
puts "\n Dashboards ...."
|
27
|
-
puts "\t \t-#{twb.dashboardNames}"
|
28
|
-
twb.dashboards.each do |dsh|
|
29
|
-
puts "\n\t n\t- #{dsh.name} \t zc:#{dsh.zonecount} \t auto? #{dsh.autosize} \t dim: #{dsh.dimensions} "
|
30
|
-
dsh.worksheets.each do |sheet|
|
31
|
-
puts "\t s\t - #{sheet.name} \t dsnames:#{sheet.datasourcenames} "
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
puts "\n Worksheets ...."
|
36
|
-
puts "\t \t-#{twb.worksheetNames}"
|
37
|
-
twb.worksheets.each do |ws|
|
38
|
-
puts "\t n\t-#{ws.name}"
|
39
|
-
ws.datasourcenames.each do |dsn|
|
40
|
-
puts "\t ds:\t- #{dsn}"
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
puts "\n Storyboards ...."
|
45
|
-
puts "\t \t-#{twb.storyboardNames}"
|
46
|
-
if twb.storyboards
|
47
|
-
twb.storyboards.each do |sb|
|
48
|
-
puts "\t n\t-#{sb.name} "
|
49
|
-
sb.worksheets.each do |sheet|
|
50
|
-
puts "\t n\t -#{sheet} "
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
end
|
56
|
-
|
57
|
-
def getName techName
|
58
|
-
techName.gsub(/^\[/,'').gsub(/\]$/,'')
|
59
|
-
end
|
60
|
-
|
61
|
-
puts "START"
|
62
|
-
|
63
|
-
path = if ARGV.empty? then '**/*.twb' else ARGV[0] end
|
64
|
-
puts "Looking for Workbooks matching: #{path}"
|
65
|
-
Dir.glob(path) {|twb| processTWB twb }
|
66
|
-
|
67
|
-
$f.close unless $f.nil?
|