twb 0.0.27 → 0.0.31

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.
data/lib/twb/dashboard.rb CHANGED
@@ -22,25 +22,41 @@ module Twb
22
22
 
23
23
  @@hasher = Digest::SHA256.new
24
24
 
25
- attr_reader :node, :name, :sheets
25
+ attr_reader :node, :name, :worksheets, :autosize, :size, :maxheight, :maxwidth, :minheight, :minwidth, :rangesize, :dimensions
26
26
 
27
27
  def initialize dashboardNode
28
28
  "initialize Dashboard"
29
- @node = dashboardNode
30
- @name = @node.attr('name')
29
+ @node = dashboardNode
30
+ @name = @node.attr('name')
31
+ @size = @node.xpath('./size')
32
+ @autosize = @size.empty?
33
+ loadSize @size unless @autosize
31
34
  loadSheets
32
35
  return self
33
36
  end
34
37
 
35
38
  def loadSheets
36
- @sheets = []
39
+ @sheets = {}
37
40
  dsheets = @node.xpath('.//zone[@name]').to_a
38
41
  dsheets.each do |sheetNode|
39
42
  sheet = Twb::Worksheet.new sheetNode
40
- @sheets.push sheet unless sheet.name == '' || sheet.name.nil?
43
+ @sheets[sheet.name] = sheet
41
44
  end
42
45
  end
43
46
 
47
+ def worksheets
48
+ @sheets.values
49
+ end
50
+
51
+ def loadSize size
52
+ @maxheight = size.attr('maxheight')
53
+ @maxwidth = size.attr('maxwidth')
54
+ @minheight = size.attr('minheight')
55
+ @minwidth = size.attr('minwidth')
56
+ @rangesize = size.attr('rangesize')
57
+ @dimensions = @minwidth.to_s + ':' + @minheight.to_s + ':' +@maxwidth.to_s + ':' +@maxheight.to_s
58
+ end
59
+
44
60
  end
45
61
 
46
62
  end
@@ -22,7 +22,7 @@ module Twb
22
22
 
23
23
  @@hasher = Digest::SHA256.new
24
24
 
25
- attr_reader :node, :name, :caption, :uiname, :connHash, :class, :connection
25
+ attr_reader :node, :name, :caption, :uiname, :connHash, :class, :connection, :tables
26
26
 
27
27
  def initialize dataSourceNode
28
28
  @node = dataSourceNode
@@ -36,15 +36,24 @@ module Twb
36
36
  def processConnection
37
37
  @connHash = ''
38
38
  @connection = @node.at_xpath('./connection')
39
- if !@connection.nil? then
39
+ unless @connection.nil?
40
40
  @class = @connection.attribute('class').text
41
41
  dsAttributes = @node.xpath('./connection/@*')
42
- dsConnStr = ''
42
+ dsConnStr = ''
43
43
  dsAttributes.each do |attr|
44
44
  dsConnStr += attr.text
45
45
  # Note: '' attributes with value '' don't contribute to the hash
46
46
  end
47
47
  @connHash = Digest::MD5.hexdigest(dsConnStr)
48
+ loadTables @connection
49
+ end
50
+ end
51
+
52
+ def loadTables connection
53
+ @tables = {}
54
+ nodes = connection.xpath(".//relation[@type='table']")
55
+ nodes.each do |node|
56
+ @tables[node.attr('name')] = node.attr('table')
48
57
  end
49
58
  end
50
59
 
@@ -22,7 +22,7 @@ module Twb
22
22
 
23
23
  @@hasher = Digest::SHA256.new
24
24
 
25
- attr_reader :node, :name, :sheets
25
+ attr_reader :node, :name, :worksheets
26
26
 
27
27
  def initialize node
28
28
  # puts "initialize Storyboard"
@@ -32,13 +32,17 @@ module Twb
32
32
  end
33
33
 
34
34
  def loadSheets
35
- @sheets = []
35
+ @sheets = {}
36
36
  sheets = @node.xpath('.//story-point').to_a
37
37
  sheets.each do |node|
38
- @sheets.push node.attr('captured-sheet')
38
+ @sheets[node.attr('captured-sheet')] = node.attr('captured-sheet')
39
39
  end
40
40
  end
41
41
 
42
+ def worksheets
43
+ @sheets.values
44
+ end
45
+
42
46
  end
43
47
 
44
48
  end
data/lib/twb/workbook.rb CHANGED
@@ -18,10 +18,18 @@ require 'nokogiri'
18
18
  module Twb
19
19
 
20
20
 
21
+ # Represents Tableau Workbooks and their parts.
22
+ #
21
23
  class Workbook
22
24
 
23
25
  attr_reader :name, :dir, :modtime, :version, :build, :ndoc, :datasources, :dashboards, :storyboards, :worksheets
24
26
 
27
+ # Creates a Workbook, from it's file name.
28
+ #
29
+ # == Parameters:
30
+ # twbWithDir
31
+ # The Workbook's file name
32
+ #
25
33
  def initialize twbWithDir
26
34
  file = File.new(twbWithDir)
27
35
  @name = File.basename(twbWithDir)
data/lib/twb.rb CHANGED
@@ -4,9 +4,9 @@ require_relative 'twb/worksheet'
4
4
  require_relative 'twb/datasource'
5
5
  require_relative 'twb/storyboard'
6
6
 
7
-
7
+ # Represents Tableau Workbooks and theis contents.
8
+ #
8
9
  module Twb
9
- VERSION = '0.0.1'
10
+ VERSION = '0.0.31'
10
11
  end
11
12
 
12
- puts "Twb version: #{Twb::VERSION}"
data/testTwbGem.rb CHANGED
@@ -14,13 +14,14 @@ def processTWB twbWithDir
14
14
  puts " Data Sources"
15
15
  twb.datasources.each do |ds|
16
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 :: prms?\t-#{ds.Parameters?} "
17
+ puts "\t tbls\t-#{ds.tables}"
17
18
  end
18
19
 
19
20
  puts "\n Dashboards ...."
20
21
  puts "\t \t-#{twb.dashboardNames}"
21
22
  twb.dashboards.each do |dsh|
22
- puts "\t n\t-#{dsh.name} "
23
- dsh.sheets.each do |sheet|
23
+ puts "\t n\t-#{dsh.name} \t auto? #{dsh.autosize} \t dim: #{dsh.dimensions} "
24
+ dsh.worksheets.each do |sheet|
24
25
  puts "\t n\t -#{sheet.name} "
25
26
  end
26
27
  end
@@ -30,7 +31,7 @@ def processTWB twbWithDir
30
31
  if twb.storyboards
31
32
  twb.storyboards.each do |sb|
32
33
  puts "\t n\t-#{sb.name} "
33
- sb.sheets.each do |sheet|
34
+ sb.worksheets.each do |sheet|
34
35
  puts "\t n\t -#{sheet} "
35
36
  end
36
37
  end
data/twb-0.0.1.gem CHANGED
Binary file
data/twb-0.0.27.gem ADDED
Binary file
data/twb-0.0.29.gem ADDED
Binary file
data/twb-0.0.30.gem ADDED
Binary file
data/twb.gemspec CHANGED
@@ -1,8 +1,11 @@
1
+ $:.push File.expand_path("../lib", __FILE__)
2
+ require 'twb'
3
+
1
4
  Gem::Specification.new do |s|
2
5
  s.name = 'twb'
3
6
  s.summary = "Classes for accessing Tableau Workbooks and their contents - summary."
4
7
  s.description = "Classes for accessing Tableau Workbooks and their contents - description"
5
- s.version = '0.0.27'
8
+ s.version = Twb::VERSION
6
9
  s.date = "2015-03-14"
7
10
  s.author = "Chris Gerrard"
8
11
  s.email = "Chris@Gerrard.net"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: twb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.27
4
+ version: 0.0.31
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -38,6 +38,9 @@ files:
38
38
  - twb-0.0.24.gem
39
39
  - twb-0.0.25.gem
40
40
  - twb-0.0.26.gem
41
+ - twb-0.0.27.gem
42
+ - twb-0.0.29.gem
43
+ - twb-0.0.30.gem
41
44
  - twb.gemspec
42
45
  homepage: http://rubygems.org/gems/twb
43
46
  licenses: