Class: RubyLokaliseApi::Collections::Base

Inherits:
Object
  • Object
show all
Extended by:
Forwardable, RubyLokaliseApi::Concerns::AttrsLoadable, Utils::Attributes
Includes:
Enumerable, Utils::Keys
Defined in:
lib/ruby_lokalise_api/collections/base.rb

Overview

Base collection. Collection is an array of resources. The actual resources can be found by calling the ‘.collection` method

Constant Summary collapse

ATTRS_FILENAME =
'collection_attributes.yml'

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from RubyLokaliseApi::Concerns::AttrsLoadable

extended, inherited

Methods included from Utils::Keys

#collection_key_for, #data_key_for

Constructor Details

#initialize(response) ⇒ Base

Returns a new instance of Base.



23
24
25
26
27
28
# File 'lib/ruby_lokalise_api/collections/base.rb', line 23

def initialize(response)
  @self_endpoint = response.endpoint

  populate_common_attrs_from response
  produce_collection_from response
end

Instance Attribute Details

#collectionObject (readonly)

Returns the value of attribute collection.



20
21
22
# File 'lib/ruby_lokalise_api/collections/base.rb', line 20

def collection
  @collection
end

#current_pageObject (readonly)

Returns the value of attribute current_page.



20
21
22
# File 'lib/ruby_lokalise_api/collections/base.rb', line 20

def current_page
  @current_page
end

#next_cursorObject (readonly)

Returns the value of attribute next_cursor.



20
21
22
# File 'lib/ruby_lokalise_api/collections/base.rb', line 20

def next_cursor
  @next_cursor
end

#results_per_pageObject (readonly)

Returns the value of attribute results_per_page.



20
21
22
# File 'lib/ruby_lokalise_api/collections/base.rb', line 20

def results_per_page
  @results_per_page
end

#total_pagesObject (readonly)

Returns the value of attribute total_pages.



20
21
22
# File 'lib/ruby_lokalise_api/collections/base.rb', line 20

def total_pages
  @total_pages
end

#total_resultsObject (readonly)

Returns the value of attribute total_results.



20
21
22
# File 'lib/ruby_lokalise_api/collections/base.rb', line 20

def total_results
  @total_results
end

Instance Method Details

#first_page?Boolean

Checks whether the current page is the first one

Returns:

  • (Boolean)


90
91
92
# File 'lib/ruby_lokalise_api/collections/base.rb', line 90

def first_page?
  !prev_page?
end

#last_page?Boolean

Checks whether the current page is the last one

Returns:

  • (Boolean)


78
79
80
# File 'lib/ruby_lokalise_api/collections/base.rb', line 78

def last_page?
  !next_page?
end

#load_next_cursorObject

Tries to fetch the next cursor for paginated collection Returns a new collection or nil if the next cursor is not available



46
47
48
49
50
51
52
53
54
55
56
# File 'lib/ruby_lokalise_api/collections/base.rb', line 46

def load_next_cursor
  return nil unless next_cursor?

  override_params = { cursor: next_cursor }

  self.class.new(
    reinit_endpoint(
      override_req_params: override_params
    ).do_get
  )
end

#next_cursor?Boolean

Checks whether the next cursor is available

Returns:

  • (Boolean)


96
97
98
# File 'lib/ruby_lokalise_api/collections/base.rb', line 96

def next_cursor?
  !next_cursor.nil? && next_cursor != ''
end

#next_pageObject

Tries to fetch the next page for paginated collection Returns a new collection or nil if the next page is not available



32
33
34
35
36
37
38
39
40
41
42
# File 'lib/ruby_lokalise_api/collections/base.rb', line 32

def next_page
  return nil if last_page?

  override_params = { page: current_page + 1 }

  self.class.new(
    reinit_endpoint(
      override_req_params: override_params
    ).do_get
  )
end

#next_page?Boolean

Checks whether the next page is available

Returns:

  • (Boolean)


72
73
74
# File 'lib/ruby_lokalise_api/collections/base.rb', line 72

def next_page?
  current_page.positive? && current_page < total_pages
end

#prev_pageObject

Tries to fetch the previous page for paginated collection Returns a new collection or nil if the previous page is not available



60
61
62
63
64
65
66
67
68
# File 'lib/ruby_lokalise_api/collections/base.rb', line 60

def prev_page
  return nil if first_page?

  self.class.new(
    reinit_endpoint(
      override_req_params: { page: current_page - 1 }
    ).do_get
  )
end

#prev_page?Boolean

Checks whether the previous page is available

Returns:

  • (Boolean)


84
85
86
# File 'lib/ruby_lokalise_api/collections/base.rb', line 84

def prev_page?
  current_page > 1
end