ruby-lokalise-api 9.0.1 → 9.1.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
2
  SHA256:
3
- metadata.gz: 757096e9bd784d9fbb217a9f5717b22e76fc33789cb7afbc64c0dc40d1e5cae0
4
- data.tar.gz: b1ef581136fae9704cc4acf570b7b29dbe2bcb757229594a98954aefae5229d8
3
+ metadata.gz: 1f104ba9751dfab41967f0a7c766d4cb631a9219ae6a7d6f791b48dd3f68b171
4
+ data.tar.gz: 25416c89c5b24ca8439050a7adec02568eb5a6ed1379b6703957706dd33b4431
5
5
  SHA512:
6
- metadata.gz: 929cae40ddbeffd97804beea0751dfd4e35bb2a5a76643c8da8cd4ce3148e9d0ed457d58a81e4f550ddb4dfb7c009b49bdbd4009392a13e10dfcf0f1c709a8fb
7
- data.tar.gz: 98ea093d57d3ad8126e895da2a6a964d21a83eaed661dadb74c848e947162dea75605f3381c93a10ffe05245bae65629b1813076adddcb4ed6f3931e1a7a1adb
6
+ metadata.gz: 9787b6d1bd962049fa0c1963a348dffa370dc03c23dfc1799688999128d5552f7bad9cc149cd204020ae04e5ff1301ca7a87208eb9cbd40f7fa78dbf2131e32e
7
+ data.tar.gz: 26e9576d4b8f554954f7d1486c8abad86bab2c1cdde67aa7d57c8f8aa71b6eef3a3477e467e081d6b12c618d6239ea9c585e19e16a7d8f5633a91d3e7c7fc60c
@@ -18,7 +18,7 @@ module RubyLokaliseApi
18
18
  def_delegators :collection, :[], :last, :each
19
19
 
20
20
  attr_reader :total_pages, :total_results, :results_per_page, :current_page,
21
- :collection
21
+ :collection, :next_cursor
22
22
 
23
23
  def initialize(response)
24
24
  @self_endpoint = response.endpoint
@@ -32,9 +32,25 @@ module RubyLokaliseApi
32
32
  def next_page
33
33
  return nil if last_page?
34
34
 
35
+ override_params = { page: current_page + 1 }
36
+
35
37
  self.class.new(
36
38
  reinit_endpoint(
37
- override_req_params: { page: current_page + 1 }
39
+ override_req_params: override_params
40
+ ).do_get
41
+ )
42
+ end
43
+
44
+ # Tries to fetch the next cursor for paginated collection
45
+ # Returns a new collection or nil if the next cursor is not available
46
+ def load_next_cursor
47
+ return nil unless next_cursor?
48
+
49
+ override_params = { cursor: next_cursor }
50
+
51
+ self.class.new(
52
+ reinit_endpoint(
53
+ override_req_params: override_params
38
54
  ).do_get
39
55
  )
40
56
  end
@@ -75,6 +91,12 @@ module RubyLokaliseApi
75
91
  !prev_page?
76
92
  end
77
93
 
94
+ # Checks whether the next cursor is available
95
+ # @return [Boolean]
96
+ def next_cursor?
97
+ !next_cursor.nil? && next_cursor != ''
98
+ end
99
+
78
100
  private
79
101
 
80
102
  # This method is utilized to recreate an endpoint for the current collection
@@ -89,14 +111,17 @@ module RubyLokaliseApi
89
111
  instance_variable_set :"@#{attrib}", response.content[attrib]
90
112
  end
91
113
 
92
- headers = response.headers
114
+ extract_common_from_headers(response.headers)
115
+ end
93
116
 
117
+ def extract_common_from_headers(headers)
94
118
  return unless headers.any?
95
119
 
96
- @total_results = headers[:'x-pagination-total-count']
97
- @total_pages = headers[:'x-pagination-page-count']
98
- @results_per_page = headers[:'x-pagination-limit']
99
- @current_page = headers[:'x-pagination-page']
120
+ @total_results = headers[:'x-pagination-total-count'].to_i
121
+ @total_pages = headers[:'x-pagination-page-count'].to_i
122
+ @results_per_page = headers[:'x-pagination-limit'].to_i
123
+ @current_page = headers[:'x-pagination-page'].to_i
124
+ @next_cursor = headers[:'x-pagination-next-cursor']
100
125
  end
101
126
 
102
127
  def produce_collection_from(response)
@@ -5,7 +5,7 @@ module RubyLokaliseApi
5
5
  class Response
6
6
  # Lokalise returns pagination info in special headers
7
7
  PAGINATION_HEADERS = %w[x-pagination-total-count x-pagination-page-count x-pagination-limit
8
- x-pagination-page].freeze
8
+ x-pagination-page x-pagination-next-cursor].freeze
9
9
 
10
10
  attr_reader :content, :endpoint, :headers
11
11
 
@@ -43,8 +43,7 @@ module RubyLokaliseApi
43
43
  raw_headers.
44
44
  to_h.
45
45
  keep_if { |header, _value| pagination_headers.include?(header) }.
46
- transform_keys(&:to_sym).
47
- transform_values(&:to_i)
46
+ transform_keys(&:to_sym)
48
47
  end
49
48
  end
50
49
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RubyLokaliseApi
4
- VERSION = '9.0.1'
4
+ VERSION = '9.1.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-lokalise-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 9.0.1
4
+ version: 9.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ilya Krukowski
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-03-13 00:00:00.000000000 Z
11
+ date: 2024-05-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -397,7 +397,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
397
397
  - !ruby/object:Gem::Version
398
398
  version: '0'
399
399
  requirements: []
400
- rubygems_version: 3.5.6
400
+ rubygems_version: 3.5.10
401
401
  signing_key:
402
402
  specification_version: 4
403
403
  summary: Ruby interface to the Lokalise API