Class: CleverSDK::Data::Courses

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/clever_sdk/data/courses.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(response) ⇒ Courses

private



14
15
16
# File 'lib/clever_sdk/data/courses.rb', line 14

def initialize(response)
  @response = response
end

Instance Attribute Details

#responseObject (readonly)

private



11
12
13
# File 'lib/clever_sdk/data/courses.rb', line 11

def response
  @response
end

Instance Method Details

#all(&block) ⇒ Object



31
32
33
34
35
36
37
38
39
40
# File 'lib/clever_sdk/data/courses.rb', line 31

def all &block
  return enum_for :all unless block

  page = self
  loop do
    page.each(&block)
    page = page.next
    break if page.nil?
  end
end

#dataObject



18
19
20
# File 'lib/clever_sdk/data/courses.rb', line 18

def data
  Array(response.body.dig("data"))
end

#each(&block) ⇒ Object



22
23
24
25
26
27
28
29
# File 'lib/clever_sdk/data/courses.rb', line 22

def each &block
  return enum_for :each unless block

  data
    .lazy
    .map { |datum| CleverSDK::Data::Course.new(datum.dig("data"), response) }
    .each(&block)
end

#inspectObject



68
69
70
# File 'lib/clever_sdk/data/courses.rb', line 68

def inspect
  "#<#{self.class.name}:0x#{(object_id * 2).to_s(16).rjust(16, "0")} courses:#{data.count}>"
end

#nextObject



47
48
49
50
51
52
53
# File 'lib/clever_sdk/data/courses.rb', line 47

def next
  link = find_link("next")

  return nil if link.nil?

  self.class.new(CleverSDK::Api.new.page(path: link.dig("uri"), access_token: response.access_token))
end

#next?Boolean

Returns:

  • (Boolean)


42
43
44
45
# File 'lib/clever_sdk/data/courses.rb', line 42

def next?
  link = find_link("next")
  !link.nil?
end

#prevObject



60
61
62
63
64
65
66
# File 'lib/clever_sdk/data/courses.rb', line 60

def prev
  link = find_link("prev")

  return nil if link.nil?

  self.class.new(CleverSDK::Api.new.page(path: link.dig("uri"), access_token: response.access_token))
end

#prev?Boolean

Returns:

  • (Boolean)


55
56
57
58
# File 'lib/clever_sdk/data/courses.rb', line 55

def prev?
  link = find_link("prev")
  !link.nil?
end