tableau_trusted_interface 1.2.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
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.