twb 5.2.5 → 5.2.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/twb.rb +1 -0
- data/lib/twb.rb +1 -1
- data/lib/twb/{twbtest.rb → TwbTest.rb} +0 -0
- data/lib/twb/analysis/{annotatedfieldscsvemitter.rb → AnnotatedFieldsCSVEmitter.rb} +0 -0
- data/lib/twb/analysis/{calculatedfields/csvemitter.rb → CalculatedFields/CSVEmitter.rb} +0 -0
- data/lib/twb/analysis/{calculatedfields/calculatedfieldsanalyzer.rb → CalculatedFields/CalculatedFieldsAnalyzer.rb} +0 -0
- data/lib/twb/analysis/{calculatedfields/markdownemitter.rb → CalculatedFields/MarkdownEmitter.rb} +0 -0
- data/lib/twb/analysis/{calculatedfields → CalculatedFields}/dotanalyzer.rb +0 -0
- data/lib/twb/analysis/{calculatedfields → CalculatedFields}/fieldsaliasesanalyzer.rb +0 -0
- data/lib/twb/analysis/{calculatedfields → CalculatedFields}/groupfieldsanalyzer.rb +0 -0
- data/lib/twb/analysis/{calculatedfields → CalculatedFields}/t.rb +0 -0
- data/lib/twb/analysis/{datasources/datasourcefieldscsvemitter.rb → DataSources/DataSourceFieldsCSVEmitter.rb} +0 -0
- data/lib/twb/analysis/{datasources/datasourcetablefieldscsvemitter.rb → DataSources/DataSourceTableFieldsCSVEmitter.rb} +0 -0
- data/lib/twb/analysis/{datasources → DataSources}/categoricalcolorcodinganalyzer.rb +0 -0
- data/lib/twb/analysis/{datasources → DataSources}/datasourcefieldsanalyzer.rb +0 -0
- data/lib/twb/analysis/{datasources → DataSources}/datasourcefilesanalyzer.rb +0 -0
- data/lib/twb/analysis/{datasources → DataSources}/datasourceoriginsanalyzer.rb +0 -0
- data/lib/twb/analysis/{datasources → DataSources}/datasourcesenumerator.rb +0 -0
- data/lib/twb/analysis/{datasources → DataSources}/datasourceslocationsanalyzer.rb +0 -0
- data/lib/twb/analysis/{datasources → DataSources}/datasourcetablefieldsanalyzer.rb +0 -0
- data/lib/twb/analysis/{datasources → DataSources}/extractsanalyzer.rb +0 -0
- data/lib/twb/analysis/{datasources → DataSources}/fieldsaliasesanalyzer.rb +0 -0
- data/lib/twb/analysis/{datasources → DataSources}/googlesheetdatasourcesanalyzer.rb +0 -0
- data/lib/twb/analysis/{datasources → DataSources}/parametersanalyzer.rb +0 -0
- data/lib/twb/analysis/{documentedfieldscsvemitter.rb → DocumentedFieldsCSVEmitter.rb} +0 -0
- data/lib/twb/analysis/{documentedfieldsmarkdownemitter.rb → DocumentedFieldsMarkdownEmitter.rb} +0 -0
- data/lib/twb/analysis/{sheets/worksheetdatastructurecsvemitter.rb → Sheets/WorksheetDataStructureCSVEmitter.rb} +0 -0
- data/lib/twb/analysis/{sheets → Sheets}/analyzedashboardsheets.rb +0 -0
- data/lib/twb/analysis/{sheets → Sheets}/dashboardsummarizer.rb +0 -0
- data/lib/twb/analysis/{sheets → Sheets}/dashsheetsanalyzer.rb +0 -0
- data/lib/twb/analysis/{sheets → Sheets}/sheetfieldsanalyzer.rb +0 -0
- data/lib/twb/analysis/{sheets → Sheets}/sheetfiltersanalyzer.rb +0 -0
- data/lib/twb/analysis/{sheets → Sheets}/sheetfiltersanalyzera.rb +0 -0
- data/lib/twb/analysis/{sheets → Sheets}/sheetsintooltipanalyzer.rb +0 -0
- data/lib/twb/analysis/{sheets → Sheets}/sheetsourcesanalyzer.rb +0 -0
- data/lib/twb/analysis/{sheets → Sheets}/worksheetsummarizer.rb +0 -0
- data/lib/twb/columnfield.rb +64 -23
- data/lib/twb/countNodes.rb +98 -0
- data/lib/twb/datasource.rb +16 -4
- data/lib/twb/{finddsfields.rb → findDSFields.rb} +0 -0
- data/lib/twb/{identifyfields.rb → identifyFields.rb} +0 -0
- data/lib/twb/util/{dotfilerenderer.rb → dotFileRenderer.rb} +0 -0
- data/lib/twb/util/{ftppublisher.rb → ftpPublisher.rb} +0 -0
- data/lib/twb/util/{joinutilities.rb → joinUtilities.rb} +0 -0
- data/lib/twb/util/{twbdashsheetdatadotbuilder.rb → twbDashSheetDataDotBuilder.rb} +0 -0
- data/lib/twb/util/{twbdashsheetdatadotrenderer.rb → twbDashSheetDataDotRenderer.rb} +0 -0
- data/lib/twb/util/{twbdashessheetdatadotbuilder.rb → twbDashesSheetDataDotBuilder.rb} +0 -0
- metadata +53 -52
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ccd5e3f60908b3588d6e16b24932760d10c7f529cee28c5b8c57cc6b536536e1
|
4
|
+
data.tar.gz: f11f10dacb407baa8ccad990d6ed1095970603f6863ceab276a85afd69b555ee
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 690986db75b5487436bc403e941cf9a5ba76e1cd30a067ed7ac9e19bfeef5abd2824373748263a4129af423039e2d0bb1e30fd505c2b98c23830b6ef0fa830a9
|
7
|
+
data.tar.gz: 797b79b25e06eddf021e66c81ad0393bee4c8adf417867b720884a9cde512affe0f0319dd145b534e591b8fec9f4dd4b82453dd377ce65268d36fc8a8ce70f10
|
data/bin/twb.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
puts "\n TWB gem here. \n"
|
data/lib/twb.rb
CHANGED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/lib/twb/analysis/{calculatedfields/markdownemitter.rb → CalculatedFields/MarkdownEmitter.rb}
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/lib/twb/analysis/{documentedfieldsmarkdownemitter.rb → DocumentedFieldsMarkdownEmitter.rb}
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/lib/twb/columnfield.rb
CHANGED
@@ -75,22 +75,24 @@ module Twb
|
|
75
75
|
@name = load('name').sub(/^\[/,'').sub(/\]$/,'')
|
76
76
|
@caption = load 'caption'
|
77
77
|
@uiname = @caption.nil? ? @name : @caption
|
78
|
-
|
79
|
-
@
|
80
|
-
@
|
81
|
-
@
|
82
|
-
@
|
83
|
-
@
|
84
|
-
@
|
85
|
-
@
|
86
|
-
@
|
87
|
-
@
|
88
|
-
@
|
78
|
+
#--
|
79
|
+
loadAttributes @node
|
80
|
+
# @dataType = load 'datatype'
|
81
|
+
# @userDataType = load 'user-datatype'
|
82
|
+
# @defaultFormat = load 'default-format'
|
83
|
+
# @paramDomainType = load 'param-domain-type'
|
84
|
+
# @type = load 'type'
|
85
|
+
# @value = load 'value'
|
86
|
+
# @alias = load 'alias'
|
87
|
+
# @semanticRole = load 'semantic-role'
|
88
|
+
# @aggregation = load 'aggregation'
|
89
|
+
# @autoColumn = load 'auto-column'
|
90
|
+
# @datatypeCustomized = load 'datatype-customized'
|
89
91
|
end
|
90
92
|
|
91
93
|
def id
|
92
94
|
@id ||= @id = @name.hash
|
93
|
-
end
|
95
|
+
end
|
94
96
|
|
95
97
|
def load nodeName
|
96
98
|
attr = @node.attribute(nodeName)
|
@@ -98,17 +100,56 @@ module Twb
|
|
98
100
|
return val
|
99
101
|
end
|
100
102
|
|
101
|
-
def
|
102
|
-
|
103
|
+
def loadAttributes node
|
104
|
+
# puts "augmenting with node:#{node}"
|
105
|
+
@node = node
|
106
|
+
if node.has_attribute?('aggregation') then @aggregation = node['aggregation'] end
|
107
|
+
if node.has_attribute?('alias') then @alias = node['alias'] end
|
108
|
+
if node.has_attribute?('auto-column') then @autoColumn = node['auto-column'] end
|
109
|
+
if node.has_attribute?('datatype') then @dataType = node['datatype'] end
|
110
|
+
if node.has_attribute?('datatype-customized') then @datatypeCustomized = node['datatype-customized'] end
|
111
|
+
if node.has_attribute?('default-format') then @defaultFormat = node['default-format'] end
|
112
|
+
if node.has_attribute?('param-domain-type') then @paramDomainType = node['param-domain-type'] end
|
113
|
+
if node.has_attribute?('role') then @role = node['role'] end
|
114
|
+
if node.has_attribute?('semantic-role') then @semanticRole = node['semantic-role'] end
|
115
|
+
if node.has_attribute?('type') then @type = node['type'] end
|
116
|
+
if node.has_attribute?('user-datatype') then @userDataType = node['user-datatype'] end
|
117
|
+
if node.has_attribute?('value') then @value = node['value'] end
|
118
|
+
# loadAttr @aggregation, 'aggregation'
|
119
|
+
# loadAttr @alias, 'alias'
|
120
|
+
# loadAttr @autoColumn, 'auto-column'
|
121
|
+
# loadAttr @dataType, 'datatype'
|
122
|
+
# loadAttr @datatypeCustomized, 'datatype-customized'
|
123
|
+
# loadAttr @defaultFormat, 'default-format'
|
124
|
+
# loadAttr @paramDomainType, 'param-domain-type'
|
125
|
+
# loadAttr @role, 'role'
|
126
|
+
# loadAttr @semanticRole, 'semantic-role'
|
127
|
+
# loadAttr @type, 'type'
|
128
|
+
# loadAttr @userDataType, 'user-datatype'
|
129
|
+
# loadAttr @value, 'value'
|
103
130
|
end
|
104
131
|
|
105
|
-
def
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
132
|
+
# def loadAttr property, attribute
|
133
|
+
# # puts " - def loadAttr attr:#{attribute}: prop:#{property}:"
|
134
|
+
# if @node.has_attribute? attribute
|
135
|
+
# # puts " - has"
|
136
|
+
# property = @node[attribute]
|
137
|
+
# # else
|
138
|
+
# # puts " - has not"
|
139
|
+
# # end
|
140
|
+
# end
|
141
|
+
|
142
|
+
# def role
|
143
|
+
# @role ||= loadRole
|
144
|
+
# end
|
145
|
+
|
146
|
+
# def loadRole
|
147
|
+
# role = @node['role']
|
148
|
+
# if role.nil?
|
149
|
+
# role = @@dataTypeRoleMap[@dataType].nil? ? @dataType : @@dataTypeRoleMap[@dataType]
|
150
|
+
# end
|
151
|
+
# return role
|
152
|
+
# end
|
112
153
|
|
113
154
|
def calcField
|
114
155
|
@calcField ||= loadCalcField
|
@@ -211,7 +252,7 @@ module Twb
|
|
211
252
|
end
|
212
253
|
|
213
254
|
def loadProperties
|
214
|
-
@properties= {}
|
255
|
+
@properties = {} if @properties.nil?
|
215
256
|
@node.attributes.each do |name,attr|
|
216
257
|
@properties[name] = attr.value
|
217
258
|
end
|
@@ -220,7 +261,7 @@ module Twb
|
|
220
261
|
end
|
221
262
|
|
222
263
|
def to_s
|
223
|
-
@name
|
264
|
+
"n:#{@name}: uin:#{uiname}: "
|
224
265
|
end
|
225
266
|
|
226
267
|
def <=>(other)
|
@@ -0,0 +1,98 @@
|
|
1
|
+
require 'nokogiri'
|
2
|
+
require 'csv'
|
3
|
+
require 'twb'
|
4
|
+
|
5
|
+
def init
|
6
|
+
system 'cls'
|
7
|
+
$pFile = File.open('sqlFromTwbDc.txt','w')
|
8
|
+
|
9
|
+
sqiCSV = 'TWBFieldsByType.csv'
|
10
|
+
$fieldsCSV = CSV.open(sqiCSV, 'w')
|
11
|
+
$fieldsCSV << [
|
12
|
+
'TWB',
|
13
|
+
'Data Connection - UI',
|
14
|
+
'Field Name',
|
15
|
+
'Field Type',
|
16
|
+
]
|
17
|
+
$path = if ARGV.empty? then '**/*.twb' else ARGV[0] end
|
18
|
+
emit " "
|
19
|
+
emit " Generating SQL Create Table code for Tableau Workbook Data Connections (TWDCs)."
|
20
|
+
emit " Each TWDC will have it's own *.sql file containing the SQL code.\n "
|
21
|
+
emit " Looking for Workbooks matching: '#{$path}' - from: #{ARGV[0]}\n\n "
|
22
|
+
end
|
23
|
+
|
24
|
+
def method_name
|
25
|
+
datasources = {}
|
26
|
+
dataSourcesNode = doc.at_xpath('//workbook/datasources')
|
27
|
+
dataSourcesNodes = doc.xpath('//workbook/datasources/datasource').to_a
|
28
|
+
puts " dsn: #{dataSourcesNodes}"
|
29
|
+
datasourceNodes.each do |node|
|
30
|
+
datasource = Twb::DataSource.new(node)
|
31
|
+
datasources[datasource.name] = datasource
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
$localEmit = true
|
36
|
+
def emit stuff
|
37
|
+
$pFile.puts stuff
|
38
|
+
puts stuff if $localEmit
|
39
|
+
end
|
40
|
+
|
41
|
+
$paths = {
|
42
|
+
'Relation Columns' => './connection/relation/columns/column',
|
43
|
+
'Metadata Records' => './connection/metadata-records/metadata-record',
|
44
|
+
'Columns' => './column',
|
45
|
+
}
|
46
|
+
|
47
|
+
def proc file
|
48
|
+
emit "\n == #{file}"
|
49
|
+
end
|
50
|
+
|
51
|
+
def process file
|
52
|
+
emit "\n == #{file}"
|
53
|
+
doc = Nokogiri::XML(open(file))
|
54
|
+
dataSourcesNodes = doc.xpath('//workbook/datasources/datasource')
|
55
|
+
dataSourcesNodes.each do |ds|
|
56
|
+
emit "\n dc: #{ds.attribute('caption')}"
|
57
|
+
emit " dn: #{ds.attribute('name')}\n ---"
|
58
|
+
typeCounts = {}
|
59
|
+
$paths.each do |type, path|
|
60
|
+
nodes = ds.xpath(path).to_a
|
61
|
+
# emit " : %3i %-17s %-s" % [nodes.size, type, path]
|
62
|
+
typeCnt = nodes.size
|
63
|
+
nodes.each do |n|
|
64
|
+
$fieldsCSV << [file,ds.attribute('name'),n.attribute('name'),type]
|
65
|
+
end
|
66
|
+
if type == 'Columns' then
|
67
|
+
calcCnt = 0
|
68
|
+
nodes.each do |n|
|
69
|
+
calc = n.xpath('./calculation')
|
70
|
+
# emit " c: #{calc.size} "
|
71
|
+
calcCnt += calc.size
|
72
|
+
end
|
73
|
+
# emit ' ---'
|
74
|
+
# emit " c#: %3i " % [calcCnt]
|
75
|
+
# emit " !c#: %3i " % [nodes.size - calcCnt]
|
76
|
+
typeCounts['Columns'] = nodes.size
|
77
|
+
typeCounts['Columns - calc'] = calcCnt
|
78
|
+
typeCounts['Columns - not calc'] = nodes.size - calcCnt
|
79
|
+
else
|
80
|
+
typeCounts[type] = typeCnt
|
81
|
+
end
|
82
|
+
end
|
83
|
+
# emit ' ---'
|
84
|
+
typeCounts.each do |t,c|
|
85
|
+
emit " tc: %3i %-s" % [c, t]
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
init
|
91
|
+
|
92
|
+
$paths.each do |path|
|
93
|
+
emit " p: #{path}"
|
94
|
+
end
|
95
|
+
|
96
|
+
Dir.glob($path) {|twb| process twb }
|
97
|
+
|
98
|
+
emit "\n\n== Done ==\n "
|
data/lib/twb/datasource.rb
CHANGED
@@ -255,11 +255,23 @@ module Twb
|
|
255
255
|
@columnFieldsMap = {}
|
256
256
|
nodes = @node.xpath('.//column')
|
257
257
|
nodes.each do |n|
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
@columnFieldsMap
|
258
|
+
# puts " "
|
259
|
+
# puts @columnFieldsMap.keys.inspect
|
260
|
+
name = n.attribute('name').text.sub(/^\[/,'').sub(/\]$/,'')
|
261
|
+
loaded = @columnFieldsMap.has_key? name
|
262
|
+
if loaded
|
263
|
+
# puts "LOADED"
|
264
|
+
field = @columnFieldsMap[name]
|
265
|
+
# puts "#{field.class}"
|
266
|
+
field.loadAttributes(n)
|
267
|
+
else
|
268
|
+
field = Twb::ColumnField.new n, self
|
269
|
+
@columnFieldsMap[field.uiname] = field
|
270
|
+
@columnFieldsMap[field.name] = field
|
271
|
+
end
|
272
|
+
# puts "name:#{name}: \t nn:#{field.name}:\t loaded?:#{loaded} node:#{n}:"
|
262
273
|
end
|
274
|
+
@columnFields = @columnFieldsMap.values
|
263
275
|
return @columnFields
|
264
276
|
end
|
265
277
|
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: twb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.2.
|
4
|
+
version: 5.2.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Gerrard
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-04-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: creek
|
@@ -34,22 +34,22 @@ dependencies:
|
|
34
34
|
name: kramdown
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
|
-
- - "~>"
|
38
|
-
- !ruby/object:Gem::Version
|
39
|
-
version: '1.17'
|
40
37
|
- - ">="
|
41
38
|
- !ruby/object:Gem::Version
|
42
39
|
version: 1.17.0
|
40
|
+
- - "~>"
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '1.17'
|
43
43
|
type: :runtime
|
44
44
|
prerelease: false
|
45
45
|
version_requirements: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
|
-
- - "~>"
|
48
|
-
- !ruby/object:Gem::Version
|
49
|
-
version: '1.17'
|
50
47
|
- - ">="
|
51
48
|
- !ruby/object:Gem::Version
|
52
49
|
version: 1.17.0
|
50
|
+
- - "~>"
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: '1.17'
|
53
53
|
description: A sollection of Ruby classes designed for accessing and recording information
|
54
54
|
about, and for manipulating, Tableau Workbooks and their contents.
|
55
55
|
email: Chris@Gerrard.net
|
@@ -57,48 +57,51 @@ executables: []
|
|
57
57
|
extensions: []
|
58
58
|
extra_rdoc_files: []
|
59
59
|
files:
|
60
|
+
- bin/twb.rb
|
60
61
|
- lib/t.rb
|
61
62
|
- lib/tfl/Flow.rb
|
62
63
|
- lib/twb.rb
|
64
|
+
- lib/twb/TwbTest.rb
|
63
65
|
- lib/twb/action.rb
|
64
|
-
- lib/twb/analysis/
|
65
|
-
- lib/twb/analysis/
|
66
|
-
- lib/twb/analysis/
|
67
|
-
- lib/twb/analysis/
|
68
|
-
- lib/twb/analysis/
|
69
|
-
- lib/twb/analysis/
|
70
|
-
- lib/twb/analysis/
|
71
|
-
- lib/twb/analysis/
|
72
|
-
- lib/twb/analysis/
|
73
|
-
- lib/twb/analysis/
|
74
|
-
- lib/twb/analysis/
|
75
|
-
- lib/twb/analysis/
|
76
|
-
- lib/twb/analysis/
|
77
|
-
- lib/twb/analysis/
|
78
|
-
- lib/twb/analysis/
|
79
|
-
- lib/twb/analysis/
|
80
|
-
- lib/twb/analysis/
|
81
|
-
- lib/twb/analysis/
|
82
|
-
- lib/twb/analysis/
|
83
|
-
- lib/twb/analysis/
|
84
|
-
- lib/twb/analysis/
|
85
|
-
- lib/twb/analysis/
|
86
|
-
- lib/twb/analysis/
|
87
|
-
- lib/twb/analysis/
|
88
|
-
- lib/twb/analysis/
|
89
|
-
- lib/twb/analysis/
|
90
|
-
- lib/twb/analysis/
|
91
|
-
- lib/twb/analysis/
|
92
|
-
- lib/twb/analysis/
|
93
|
-
- lib/twb/analysis/
|
94
|
-
- lib/twb/analysis/
|
95
|
-
- lib/twb/analysis/
|
96
|
-
- lib/twb/analysis/
|
66
|
+
- lib/twb/analysis/AnnotatedFieldsCSVEmitter.rb
|
67
|
+
- lib/twb/analysis/CalculatedFields/CSVEmitter.rb
|
68
|
+
- lib/twb/analysis/CalculatedFields/CalculatedFieldsAnalyzer.rb
|
69
|
+
- lib/twb/analysis/CalculatedFields/MarkdownEmitter.rb
|
70
|
+
- lib/twb/analysis/CalculatedFields/dotanalyzer.rb
|
71
|
+
- lib/twb/analysis/CalculatedFields/fieldsaliasesanalyzer.rb
|
72
|
+
- lib/twb/analysis/CalculatedFields/groupfieldsanalyzer.rb
|
73
|
+
- lib/twb/analysis/CalculatedFields/t.rb
|
74
|
+
- lib/twb/analysis/DataSources/DataSourceFieldsCSVEmitter.rb
|
75
|
+
- lib/twb/analysis/DataSources/DataSourceTableFieldsCSVEmitter.rb
|
76
|
+
- lib/twb/analysis/DataSources/categoricalcolorcodinganalyzer.rb
|
77
|
+
- lib/twb/analysis/DataSources/datasourcefieldsanalyzer.rb
|
78
|
+
- lib/twb/analysis/DataSources/datasourcefilesanalyzer.rb
|
79
|
+
- lib/twb/analysis/DataSources/datasourceoriginsanalyzer.rb
|
80
|
+
- lib/twb/analysis/DataSources/datasourcesenumerator.rb
|
81
|
+
- lib/twb/analysis/DataSources/datasourceslocationsanalyzer.rb
|
82
|
+
- lib/twb/analysis/DataSources/datasourcetablefieldsanalyzer.rb
|
83
|
+
- lib/twb/analysis/DataSources/extractsanalyzer.rb
|
84
|
+
- lib/twb/analysis/DataSources/fieldsaliasesanalyzer.rb
|
85
|
+
- lib/twb/analysis/DataSources/googlesheetdatasourcesanalyzer.rb
|
86
|
+
- lib/twb/analysis/DataSources/parametersanalyzer.rb
|
87
|
+
- lib/twb/analysis/DocumentedFieldsCSVEmitter.rb
|
88
|
+
- lib/twb/analysis/DocumentedFieldsMarkdownEmitter.rb
|
89
|
+
- lib/twb/analysis/Sheets/WorksheetDataStructureCSVEmitter.rb
|
90
|
+
- lib/twb/analysis/Sheets/analyzedashboardsheets.rb
|
91
|
+
- lib/twb/analysis/Sheets/dashboardsummarizer.rb
|
92
|
+
- lib/twb/analysis/Sheets/dashsheetsanalyzer.rb
|
93
|
+
- lib/twb/analysis/Sheets/sheetfieldsanalyzer.rb
|
94
|
+
- lib/twb/analysis/Sheets/sheetfiltersanalyzer.rb
|
95
|
+
- lib/twb/analysis/Sheets/sheetfiltersanalyzera.rb
|
96
|
+
- lib/twb/analysis/Sheets/sheetsintooltipanalyzer.rb
|
97
|
+
- lib/twb/analysis/Sheets/sheetsourcesanalyzer.rb
|
98
|
+
- lib/twb/analysis/Sheets/worksheetsummarizer.rb
|
97
99
|
- lib/twb/analysis/workbooksummaryanalyzer.rb
|
98
100
|
- lib/twb/calculatedfield.rb
|
99
101
|
- lib/twb/codedfield.rb
|
100
102
|
- lib/twb/columnfield.rb
|
101
103
|
- lib/twb/connection.rb
|
104
|
+
- lib/twb/countNodes.rb
|
102
105
|
- lib/twb/dashboard.rb
|
103
106
|
- lib/twb/datasource.rb
|
104
107
|
- lib/twb/dbfield.rb
|
@@ -107,14 +110,14 @@ files:
|
|
107
110
|
- lib/twb/docdashboardwebvert.rb
|
108
111
|
- lib/twb/field.rb
|
109
112
|
- lib/twb/fieldcalculation.rb
|
110
|
-
- lib/twb/
|
113
|
+
- lib/twb/findDSFields.rb
|
111
114
|
- lib/twb/graph.rb
|
112
115
|
- lib/twb/graphedges.rb
|
113
116
|
- lib/twb/graphnode.rb
|
114
117
|
- lib/twb/groupfield.rb
|
115
118
|
- lib/twb/hashtohtml.rb
|
116
119
|
- lib/twb/htmllistcollapsible.rb
|
117
|
-
- lib/twb/
|
120
|
+
- lib/twb/identifyFields.rb
|
118
121
|
- lib/twb/listXMLNodePathsAndAttributes.rb
|
119
122
|
- lib/twb/localfield.rb
|
120
123
|
- lib/twb/mappedfield.rb
|
@@ -127,15 +130,14 @@ files:
|
|
127
130
|
- lib/twb/tabtool.rb
|
128
131
|
- lib/twb/there.rb
|
129
132
|
- lib/twb/twbcodedfield.rb
|
130
|
-
- lib/twb/twbtest.rb
|
131
133
|
- lib/twb/util/atomizecsvrecords.rb
|
132
134
|
- lib/twb/util/csvrecordsatomizer.rb
|
133
135
|
- lib/twb/util/cypher.rb
|
134
136
|
- lib/twb/util/cypherpython.rb
|
135
137
|
- lib/twb/util/docprep.rb
|
136
|
-
- lib/twb/util/
|
138
|
+
- lib/twb/util/dotFileRenderer.rb
|
137
139
|
- lib/twb/util/fielddomainloader.rb
|
138
|
-
- lib/twb/util/
|
140
|
+
- lib/twb/util/ftpPublisher.rb
|
139
141
|
- lib/twb/util/gml.rb
|
140
142
|
- lib/twb/util/gmledge.rb
|
141
143
|
- lib/twb/util/graph.rb
|
@@ -144,11 +146,11 @@ files:
|
|
144
146
|
- lib/twb/util/graphnode.rb
|
145
147
|
- lib/twb/util/hashtohtml.rb
|
146
148
|
- lib/twb/util/htmllistcollapsible.rb
|
147
|
-
- lib/twb/util/
|
149
|
+
- lib/twb/util/joinUtilities.rb
|
148
150
|
- lib/twb/util/tabgraph.rb
|
149
|
-
- lib/twb/util/
|
150
|
-
- lib/twb/util/
|
151
|
-
- lib/twb/util/
|
151
|
+
- lib/twb/util/twbDashSheetDataDotBuilder.rb
|
152
|
+
- lib/twb/util/twbDashSheetDataDotRenderer.rb
|
153
|
+
- lib/twb/util/twbDashesSheetDataDotBuilder.rb
|
152
154
|
- lib/twb/util/xraydashboards.rb
|
153
155
|
- lib/twb/window.rb
|
154
156
|
- lib/twb/workbook.rb
|
@@ -188,8 +190,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
188
190
|
- !ruby/object:Gem::Version
|
189
191
|
version: '0'
|
190
192
|
requirements: []
|
191
|
-
|
192
|
-
rubygems_version: 2.7.6
|
193
|
+
rubygems_version: 3.0.3
|
193
194
|
signing_key:
|
194
195
|
specification_version: 4
|
195
196
|
summary: Classes for accessing Tableau Workbooks and their contents.
|