Class: GitlabRuby::PaginatedResponse
- Inherits:
-
Object
- Object
- GitlabRuby::PaginatedResponse
show all
- Defined in:
- lib/gitlab_ruby/paginated_response.rb
Instance Method Summary
collapse
Constructor Details
Returns a new instance of PaginatedResponse.
5
6
7
8
9
|
# File 'lib/gitlab_ruby/paginated_response.rb', line 5
def initialize(params = {})
@client = params[:client]
@array = params[:array]
@page_links = parse_page_links_from(params[:headers])
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args, &block) ⇒ Object
49
50
51
52
53
54
55
|
# File 'lib/gitlab_ruby/paginated_response.rb', line 49
def method_missing(name, *args, &block)
if @array.respond_to?(name)
@array.send(name, *args, &block)
else
super
end
end
|
Instance Method Details
#==(other) ⇒ Object
Treat this like an Array (START)
41
42
43
|
# File 'lib/gitlab_ruby/paginated_response.rb', line 41
def ==(other)
@array == other
end
|
#first_page ⇒ Object
35
36
37
|
# File 'lib/gitlab_ruby/paginated_response.rb', line 35
def first_page
fetch(@page_links['first'][:href])
end
|
#inspect ⇒ Object
45
46
47
|
# File 'lib/gitlab_ruby/paginated_response.rb', line 45
def inspect
@array.inspect
end
|
#last_page ⇒ Object
31
32
33
|
# File 'lib/gitlab_ruby/paginated_response.rb', line 31
def last_page
fetch(@page_links['last'][:href])
end
|
#next_page ⇒ Object
21
22
23
24
|
# File 'lib/gitlab_ruby/paginated_response.rb', line 21
def next_page
return nil unless next_page?
fetch(@page_links['next'][:href])
end
|
#next_page? ⇒ Boolean
11
12
13
14
|
# File 'lib/gitlab_ruby/paginated_response.rb', line 11
def next_page?
return nil unless @page_links['next']
true
end
|
#prev_page ⇒ Object
26
27
28
29
|
# File 'lib/gitlab_ruby/paginated_response.rb', line 26
def prev_page
return nil unless prev_page?
fetch(@page_links['prev'][:href])
end
|
#prev_page? ⇒ Boolean
16
17
18
19
|
# File 'lib/gitlab_ruby/paginated_response.rb', line 16
def prev_page?
return nil unless @page_links['prev']
true
end
|
#respond_to_missing?(method_name, include_private = false) ⇒ Boolean
57
58
59
|
# File 'lib/gitlab_ruby/paginated_response.rb', line 57
def respond_to_missing?(method_name, include_private = false)
super || @array.respond_to?(method_name, include_private)
end
|