tableau_trusted_interface 1.2.0 → 2.0.0

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
- SHA1:
3
- metadata.gz: 540af8c87f678ec15917bf86a5b88751a1231f28
4
- data.tar.gz: 83dbe6fb65c4b613b3ac1eced46cc7709b6c9436
2
+ SHA256:
3
+ metadata.gz: 8559b7bbfa12d782fd81c000b5378408bbfedc58e9010de636fe93f052b96af5
4
+ data.tar.gz: 6d572ca6bbd3ff24195529c80ada80bd94b9f481969f1d9c4cff04d90d864c54
5
5
  SHA512:
6
- metadata.gz: 0e8ec1a8df91584176547776c01e8979a01a3c50176cdbe3f75685592a43c24541a5ea96369ecf4c9806499137cd56a915b5c8c87a27f1fba3f670922894aa0b
7
- data.tar.gz: cd7164d6c5dfdcf2a6ff3c9694cec00c4e89f18b3f100cb7e74f4cb36bbee5591a009ce20740faa85d32669b24b2ae5ca88dede14673a839f2ed8d2e38b0d503
6
+ metadata.gz: a90934003d3a222f1607dc8d867f6b925c850fde07fff57bbf1e16bb9d010a4909b911a1b80323e2d2d6a48186cc1caf24f17eeb694a1ac493d0f39e9f782f65
7
+ data.tar.gz: aff75421447d5e70cb64de27af0bb92c4568c9682b386a208b2f22e357f44d47237654962c7db20ba25322103e5f5854e9067dfe7f25dcbea0f8213d9ff2a402
data/README.md CHANGED
@@ -8,45 +8,53 @@ Wrapper for embedding Tableau workbooks using the [Tableau trusted interface](ht
8
8
 
9
9
  Add to your `Gemfile`:
10
10
 
11
- ``` ruby
11
+ ```ruby
12
12
  gem 'tableau_trusted_interface'
13
13
  ```
14
14
 
15
- You have the option of specifying a default server address and user:
15
+ You have the option of specifying a default Trusted Authentication server address, view retrieval server address and user:
16
16
 
17
- ``` ruby
17
+ ```ruby
18
18
  TableauTrustedInterface.configure do |config|
19
- config.default_tableau_server = 'http://example.com'
19
+ config.default_tableau_auth_server = 'http://auth.example.com'
20
+ config.default_tableau_view_server = 'https://view.example.com'
20
21
  config.default_tableau_user = 'foobar'
21
22
  end
22
23
  ```
23
24
 
25
+ As a fallback for both the `default_tableau_auth_server` and `default_tableau_view_server` options, a `default_tableau_server` option can be specified.
26
+
24
27
  ## Usage
25
28
 
26
- Instantiate the interface by specifying which workbook you want and the embed params you wish to use:
29
+ Instantiate the interface by specifying which workbook you want and the embed params you wish to use:
27
30
 
28
- ``` ruby
31
+ ```ruby
29
32
  @report = TableauTrustedInterface::Report.new(
30
- path: 'project/workbook',
31
- embed_params: { embed: 'yes', toolbar: 'no' }
33
+ path: 'project/workbook',
34
+ embed_params: { embed: 'yes', toolbar: 'no' }
32
35
  )
33
36
  ```
34
37
 
35
- You can optionally pass `user:` and `server:` options here too if you don’t want to use the configured defaults.
38
+ You can optionally pass `user:`, `auth_server:` and `view_server:` options here too if you don’t want to use the configured defaults. Similar to the configuration, you can also specify a `server:` option as a fallback for the latter two.
36
39
 
37
40
  This would typically be put in a Rails controller, providing you access to the following methods in your view:
38
41
 
39
- - `@report.report_url`
40
- - `@report.report_embed_url`
42
+ - `@report.report_url`
43
+ - `@report.report_embed_url`
41
44
 
42
45
  For convenience, this is how you embed the report in a responsive Bootstrap 3 iframe:
43
46
 
44
- ``` erb
47
+ ```erb
45
48
  <div class="embed-responsive embed-responsive-16by9">
46
49
  <iframe class="embed-responsive-item" src="<%= @report.report_embed_url %>"></iframe>
47
50
  </div>
48
51
  ```
49
52
 
53
+ ## Contributors
54
+
55
+ - [Hugh Evans](https://github.com/hughevans)
56
+ - [Rutger van Bergen](https://github.com/rbergen)
57
+
50
58
  ## License
51
59
 
52
60
  See the [LICENSE](LICENSE) file for license rights and limitations (MIT).
@@ -4,5 +4,7 @@ module TableauTrustedInterface
4
4
  include ActiveSupport::Configurable
5
5
 
6
6
  config_accessor :default_tableau_user
7
+ config_accessor :default_auth_server
8
+ config_accessor :default_view_server
7
9
  config_accessor :default_server
8
10
  end
@@ -3,14 +3,15 @@ require 'rest-client'
3
3
 
4
4
  module TableauTrustedInterface
5
5
  class Report
6
- attr_reader :server, :ticket, :user
6
+ attr_reader :auth_server, :view_server, :ticket, :user
7
7
  attr_accessor :embed_params, :path
8
8
 
9
9
  def initialize(options = {})
10
10
  @path = options.fetch(:path, nil)
11
11
  @embed_params = parse_embed_params(options.fetch(:embed_params, {}))
12
12
  @user = options.fetch(:user, TableauTrustedInterface.config.default_tableau_user)
13
- @server = options.fetch(:server, TableauTrustedInterface.config.default_tableau_server)
13
+ @auth_server = options.fetch(:auth_server, (TableauTrustedInterface.config.default_tableau_auth_server || options.fetch(:server, TableauTrustedInterface.config.default_tableau_server)))
14
+ @view_server = options.fetch(:view_server, (TableauTrustedInterface.config.default_tableau_view_server || options.fetch(:server, TableauTrustedInterface.config.default_tableau_server)))
14
15
 
15
16
  @ticket = generate_ticket
16
17
  raise TicketDenied, 'Check Tableau IP white-listing or user access' if @ticket == '-1'
@@ -31,16 +32,16 @@ module TableauTrustedInterface
31
32
  end
32
33
 
33
34
  def generate_ticket
34
- raise MissingConfiguration unless user && server
35
- RestClient.post(URI.join(server, 'trusted').to_s, username: user)
35
+ raise MissingConfiguration unless user && auth_server && view_server
36
+ RestClient.post(URI.join(auth_server, 'trusted').to_s, username: user)
36
37
  rescue SocketError, RestClient::RequestTimeout
37
- raise ServerUnavailable, server
38
+ raise ServerUnavailable, auth_server
38
39
  end
39
40
 
40
41
  def report
41
42
  address.partial_expand(
42
- scheme: URI.parse(server).scheme,
43
- host: URI.parse(server).host,
43
+ scheme: URI.parse(view_server).scheme,
44
+ host: URI.parse(view_server).host,
44
45
  segments: ['trusted', ticket, 'views'],
45
46
  report_path: path
46
47
  )
@@ -1,3 +1,3 @@
1
1
  module TableauTrustedInterface
2
- VERSION = '1.2.0'
2
+ VERSION = '2.0.0'
3
3
  end
metadata CHANGED
@@ -1,27 +1,28 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tableau_trusted_interface
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hugh Evans
8
+ - Rutger van Bergen
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2016-12-14 00:00:00.000000000 Z
12
+ date: 2020-03-24 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: rspec
15
16
  requirement: !ruby/object:Gem::Requirement
16
17
  requirements:
17
- - - "~>"
18
+ - - ">="
18
19
  - !ruby/object:Gem::Version
19
20
  version: '3.4'
20
21
  type: :development
21
22
  prerelease: false
22
23
  version_requirements: !ruby/object:Gem::Requirement
23
24
  requirements:
24
- - - "~>"
25
+ - - ">="
25
26
  - !ruby/object:Gem::Version
26
27
  version: '3.4'
27
28
  - !ruby/object:Gem::Dependency
@@ -42,28 +43,28 @@ dependencies:
42
43
  name: vcr
43
44
  requirement: !ruby/object:Gem::Requirement
44
45
  requirements:
45
- - - "~>"
46
+ - - ">="
46
47
  - !ruby/object:Gem::Version
47
48
  version: '3.0'
48
49
  type: :development
49
50
  prerelease: false
50
51
  version_requirements: !ruby/object:Gem::Requirement
51
52
  requirements:
52
- - - "~>"
53
+ - - ">="
53
54
  - !ruby/object:Gem::Version
54
55
  version: '3.0'
55
56
  - !ruby/object:Gem::Dependency
56
57
  name: webmock
57
58
  requirement: !ruby/object:Gem::Requirement
58
59
  requirements:
59
- - - "~>"
60
+ - - ">="
60
61
  - !ruby/object:Gem::Version
61
62
  version: '1.22'
62
63
  type: :development
63
64
  prerelease: false
64
65
  version_requirements: !ruby/object:Gem::Requirement
65
66
  requirements:
66
- - - "~>"
67
+ - - ">="
67
68
  - !ruby/object:Gem::Version
68
69
  version: '1.22'
69
70
  - !ruby/object:Gem::Dependency
@@ -73,9 +74,6 @@ dependencies:
73
74
  - - ">="
74
75
  - !ruby/object:Gem::Version
75
76
  version: '3.0'
76
- - - "<"
77
- - !ruby/object:Gem::Version
78
- version: '5.1'
79
77
  type: :runtime
80
78
  prerelease: false
81
79
  version_requirements: !ruby/object:Gem::Requirement
@@ -83,9 +81,6 @@ dependencies:
83
81
  - - ">="
84
82
  - !ruby/object:Gem::Version
85
83
  version: '3.0'
86
- - - "<"
87
- - !ruby/object:Gem::Version
88
- version: '5.1'
89
84
  - !ruby/object:Gem::Dependency
90
85
  name: addressable
91
86
  requirement: !ruby/object:Gem::Requirement
@@ -107,9 +102,6 @@ dependencies:
107
102
  - - ">="
108
103
  - !ruby/object:Gem::Version
109
104
  version: '1.6'
110
- - - "<="
111
- - !ruby/object:Gem::Version
112
- version: '2.0'
113
105
  type: :runtime
114
106
  prerelease: false
115
107
  version_requirements: !ruby/object:Gem::Requirement
@@ -117,12 +109,11 @@ dependencies:
117
109
  - - ">="
118
110
  - !ruby/object:Gem::Version
119
111
  version: '1.6'
120
- - - "<="
121
- - !ruby/object:Gem::Version
122
- version: '2.0'
123
112
  description: 'The Tableau trusted interface allows you to embed Tableau workbooks
124
113
  from a Tableau server in your web views, even when the user isn’t presently authenticated. '
125
- email: hugh@hughevans.net
114
+ email:
115
+ - hugh@hughevans.net
116
+ - rbergen@xs4all.nl
126
117
  executables: []
127
118
  extensions: []
128
119
  extra_rdoc_files: []
@@ -133,7 +124,7 @@ files:
133
124
  - lib/tableau_trusted_interface/errors.rb
134
125
  - lib/tableau_trusted_interface/report.rb
135
126
  - lib/tableau_trusted_interface/version.rb
136
- homepage: http://github.com/hughevans/tableau_trusted_interface
127
+ homepage: http://github.com/rbergen/tableau_trusted_interface
137
128
  licenses:
138
129
  - MIT
139
130
  metadata: {}
@@ -152,8 +143,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
152
143
  - !ruby/object:Gem::Version
153
144
  version: '0'
154
145
  requirements: []
155
- rubyforge_project:
156
- rubygems_version: 2.5.1
146
+ rubygems_version: 3.0.3
157
147
  signing_key:
158
148
  specification_version: 4
159
149
  summary: Wrapper for embedding Tableau workbooks using the Tableau trusted interface.