tableau_rest_api 0.1.3 → 0.1.4

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
2
  SHA1:
3
- metadata.gz: b09a487d6e675e8c269d57e3034fa3d8889fb6c7
4
- data.tar.gz: e9b1d15ecf421e2af1615370d5b9dcdb2e6e6bff
3
+ metadata.gz: ec764f4db940bac68471b37eb006438c2072e780
4
+ data.tar.gz: a572193a533663fd00a44193a7141e3a6bab6c2f
5
5
  SHA512:
6
- metadata.gz: ff6cbe3ebf6bda4ea65619b0c3946549029fdcafe0528b471a533a47951e8591a1239e8fe8683d2b5188b0805df1695b001ee76537dc46ef6c39a6bc99c49ff6
7
- data.tar.gz: bf7b55e5c93883561ff88514127cde5b0749fed5d3cf1b393526dba77db88bc2a042ff3fd017cfba099def4d6213dfeaa5b525b39f7b86730647205344f6a8fe
6
+ metadata.gz: ecb498f6d7b495c5366d353d564ea7c6e34ea2d663085f95f142643c6caf4cee0c4b62b42df792424abfce81b52eb24f6dce604b02c4658cc9b06b8cc2504aa7
7
+ data.tar.gz: 4aa665b7c0274b58259d886023a51080d82492504a6a28d9416bcdf5f975addf483f531876b3cceb7bfa148438c5846ace20da27094604b706a49e577d59c25c
@@ -64,5 +64,11 @@ module TableauRestApi
64
64
  def delete(url)
65
65
  Response.new(RestClient.delete(url, header)).parse
66
66
  end
67
+
68
+ def fetch_paginated_set(endpoint, extract)
69
+ response = get build_url(endpoint)
70
+ collection = extract.call(response)
71
+ collection = retrieve_additional_pages(response, collection, endpoint, extract)
72
+ end
67
73
  end
68
74
  end
@@ -19,9 +19,8 @@ module TableauRestApi
19
19
  end
20
20
 
21
21
  def sites
22
- resp = get build_url('sites')
23
- sites = extract_sites(resp)
24
- sites = retrieve_additional_pages(resp, sites, 'sites', :extract_sites)
22
+ sites = Proc.new { |resp| resp.sites.site.to_a }
23
+ fetch_paginated_set('sites', sites).map { |site| Site.new(site, self) }
25
24
  end
26
25
 
27
26
  def create_site(site)
@@ -39,11 +38,5 @@ module TableauRestApi
39
38
  delete url
40
39
  @token = nil
41
40
  end
42
-
43
- private
44
-
45
- def extract_sites(response)
46
- response.sites.site.to_a.map { |site| Site.new(site, self) }
47
- end
48
41
  end
49
42
  end
@@ -7,16 +7,16 @@ module TableauRestApi
7
7
 
8
8
  def paginate(pagination)
9
9
  read_pagination_header(pagination)
10
- return has_multiple_pages? if first_page
10
+ return single_page? if first_page?
11
11
  @total % ((@page) * @per_page) == @total
12
12
  end
13
13
 
14
- def first_page
14
+ def first_page?
15
15
  @page == 0
16
16
  end
17
17
 
18
- def has_multiple_pages?
19
- @total > @per_page ? false : true
18
+ def single_page?
19
+ @total <= @per_page
20
20
  end
21
21
 
22
22
  def read_pagination_header(pagination)
@@ -29,10 +29,10 @@ module TableauRestApi
29
29
  @page + 1
30
30
  end
31
31
 
32
- def retrieve_additional_pages(response, collection, entity, extract)
32
+ def retrieve_additional_pages(response, collection, endpoint, extract)
33
33
  until complete?(response) do
34
- response = (get build_url(entity, next_page))
35
- collection = collection + self.send(extract, response)
34
+ response = (get build_url(endpoint, next_page))
35
+ collection = collection + extract.call(response)
36
36
  end
37
37
  collection
38
38
  end
@@ -1,3 +1,3 @@
1
1
  module TableauRestApi
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.4"
3
3
  end
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
10
10
  spec.email = ["lancaster.dave@gmail.com"]
11
11
 
12
12
  spec.summary = %q{Ruby library wrapping the Tableau REST API.}
13
- spec.description = %q{Exposes a subset of the Tablea v2.6 REST API (json).}
13
+ spec.description = %q{Exposes a subset of the Tableau v2.6 REST API (json).}
14
14
  spec.homepage = "https://github.com/davelancaster/tableau-rest-api"
15
15
  spec.license = "MIT"
16
16
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tableau_rest_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dave Lancaster
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-01-10 00:00:00.000000000 Z
11
+ date: 2018-01-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -122,7 +122,7 @@ dependencies:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0.1'
125
- description: Exposes a subset of the Tablea v2.6 REST API (json).
125
+ description: Exposes a subset of the Tableau v2.6 REST API (json).
126
126
  email:
127
127
  - lancaster.dave@gmail.com
128
128
  executables: []