tableau_server_client 0.0.12 → 0.0.13

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 734741cd0b6670c84e0a939d810883395e6bf07aa013553f66249ec48838d07a
4
- data.tar.gz: '0275874925061bdc41d42ee3c24e4d59dcae5e4a1763fecb233d072c0306087d'
3
+ metadata.gz: ac40ff9b18e29df41bff878b7f3ba1f7c5a34ffa20690edb6d23784603afd617
4
+ data.tar.gz: 5ed21cfe75080d06b2db42b0a383cfb167ef84fde19f877bb22a31fc4fe91621
5
5
  SHA512:
6
- metadata.gz: 2d61bb79088e3b5c7f2f320bf01befbd91c20284df3709318befae7220b7b2d19204245d7ac4244b32bc5b30215b43da09ffc20b723cabb2da6753c12c849f49
7
- data.tar.gz: d4abcb481f157a035d7989eb3b3fd7ba8239412d64e1efcb715da8e9699a8528a60d847a17deb6bda14f9bbff67412737224ede8e5920de9d53ab52c1e4accd2
6
+ metadata.gz: 4677d14c34c02d7db0da58eaa14758047cd923764d4a8bcc74cc1450b7ea403fa06045251f297427c8a6d129904efe4db9c66eb0247cb1736663135490bb0c38
7
+ data.tar.gz: 30fb765574a89f51f53d1824e12dd8376603607d8842e2956ffe183c726473878dbab4ce6e53e0ffea887ad321194f22c9dcd4fd954202ac0a8aabfe37a584e0
@@ -56,23 +56,13 @@ module TableauServerClient
56
56
  Nokogiri::XML(response.body).xpath("//xmlns:tsResponse").children.first
57
57
  end
58
58
 
59
- def download(resource_location)
59
+ def download(resource_location, file_path: nil)
60
60
  req_url = request_url("#{resource_location.path}/content", resource_location.query_params)
61
61
  response = session.get req_url.to_s
62
- type, disposition = response.headers.values_at('content-type', 'content-disposition')
63
- case type
64
- when 'application/xml'
65
- return Nokogiri::XML(response.body)
66
- when 'application/octet-stream'
67
- Zip::InputStream.open(StringIO.new(response.body)) do |io|
68
- while entry = io.get_next_entry
69
- return Nokogiri::XML(io.read) if entry.name =~ /.*\.(tds|twb)/
70
- end
71
- raise "TDS or TWB file not found for: #{resource_location.path}"
72
- end
73
- else
74
- raise "Unknown content-type: #{type}"
62
+ if file_path
63
+ File.write(file_path, response.body)
75
64
  end
65
+ return response
76
66
  end
77
67
 
78
68
  def update(resource)
@@ -1,11 +1,13 @@
1
1
  require 'tableau_server_client/resources/resource'
2
2
  require 'tableau_server_client/resources/project'
3
3
  require 'tableau_server_client/resources/connection'
4
+ require 'tableau_server_client/resources/downloadable'
4
5
 
5
6
  module TableauServerClient
6
7
  module Resources
7
8
 
8
9
  class Datasource < Resource
10
+ include Downloadable
9
11
 
10
12
  attr_reader :id, :name, :content_url, :type, :created_at, :updated_at, :is_certified
11
13
  attr_writer :owner
@@ -49,7 +51,6 @@ module TableauServerClient
49
51
  @client.update self
50
52
  end
51
53
 
52
-
53
54
  end
54
55
  end
55
56
  end
@@ -0,0 +1,26 @@
1
+ module TableauServerClient
2
+ module Resources
3
+
4
+ module Downloadable
5
+
6
+ def download(file_path: nil)
7
+ response = client.download(location(query_params: {"includeExtract": "False"}), file_path: file_path)
8
+ type, disposition = response.headers.values_at('content-type', 'content-disposition')
9
+ case type
10
+ when 'application/xml'
11
+ return Nokogiri::XML(response.body)
12
+ when 'application/octet-stream'
13
+ Zip::InputStream.open(StringIO.new(response.body)) do |io|
14
+ while entry = io.get_next_entry
15
+ return Nokogiri::XML(io.read) if entry.name =~ /.*\.(tds|twb)/
16
+ end
17
+ raise "TDS or TWB file not found for: #{location.path}"
18
+ end
19
+ else
20
+ raise "Unknown content-type: #{type}"
21
+ end
22
+ end
23
+ end
24
+
25
+ end
26
+ end
@@ -86,6 +86,12 @@ module TableauServerClient
86
86
 
87
87
  end
88
88
 
89
+ private
90
+
91
+ def client
92
+ @client
93
+ end
94
+
89
95
  end
90
96
 
91
97
  end
@@ -1,11 +1,13 @@
1
1
  require 'tableau_server_client/resources/resource'
2
2
  require 'tableau_server_client/resources/project'
3
3
  require 'tableau_server_client/resources/connection'
4
+ require 'tableau_server_client/resources/downloadable'
4
5
 
5
6
  module TableauServerClient
6
7
  module Resources
7
8
 
8
9
  class Workbook < Resource
10
+ include Downloadable
9
11
 
10
12
  attr_reader :id, :name, :content_url, :show_tabs, :size, :created_at, :updated_at
11
13
  attr_writer :owner
@@ -79,10 +81,6 @@ module TableauServerClient
79
81
  end
80
82
  end
81
83
 
82
- def download
83
- @twb ||= @client.download location(query_params: {"includeExtract": "False"})
84
- end
85
-
86
84
  def relations
87
85
  download.xpath('//datasources//datasource//relation')
88
86
  end
@@ -1,3 +1,3 @@
1
1
  module TableauServerClient
2
- VERSION = "0.0.12"
2
+ VERSION = "0.0.13"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tableau_server_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.12
4
+ version: 0.0.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - shimpeko
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-10-24 00:00:00.000000000 Z
11
+ date: 2019-04-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -142,6 +142,7 @@ files:
142
142
  - lib/tableau_server_client/request_url.rb
143
143
  - lib/tableau_server_client/resources/connection.rb
144
144
  - lib/tableau_server_client/resources/datasource.rb
145
+ - lib/tableau_server_client/resources/downloadable.rb
145
146
  - lib/tableau_server_client/resources/extract_refresh.rb
146
147
  - lib/tableau_server_client/resources/job.rb
147
148
  - lib/tableau_server_client/resources/project.rb