Class: CanvasLmsApi::Uri

Inherits:
Object
  • Object
show all
Defined in:
lib/canvas_lms_api/uri.rb

Constant Summary collapse

PER_PAGE =
999

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(prefix, endpoint, query_param) ⇒ Uri

Returns a new instance of Uri.



12
13
14
15
16
# File 'lib/canvas_lms_api/uri.rb', line 12

def initialize(prefix, endpoint, query_param)
  @prefix = fix_prefix(prefix)
  @endpoint = fix_endpoint(endpoint, @prefix)
  @query_param = query_param
end

Instance Attribute Details

#endpointObject (readonly)

Returns the value of attribute endpoint.



10
11
12
# File 'lib/canvas_lms_api/uri.rb', line 10

def endpoint
  @endpoint
end

#prefixObject (readonly)

Returns the value of attribute prefix.



10
11
12
# File 'lib/canvas_lms_api/uri.rb', line 10

def prefix
  @prefix
end

#query_paramObject (readonly)

Returns the value of attribute query_param.



10
11
12
# File 'lib/canvas_lms_api/uri.rb', line 10

def query_param
  @query_param
end

Instance Method Details

#to_sObject



27
28
29
# File 'lib/canvas_lms_api/uri.rb', line 27

def to_s
  uri.to_s
end

#uriObject



18
19
20
21
22
23
24
25
# File 'lib/canvas_lms_api/uri.rb', line 18

def uri
  URI("#{prefix}#{endpoint}").tap do |u|
    query = Rack::Utils.parse_nested_query u.query
    query.merge! Hash(query_param)
    query[:per_page] ||= PER_PAGE
    u.query = query.to_query
  end
end