26 lines
508 B
Ruby
26 lines
508 B
Ruby
|
module Github
|
||
|
class Response
|
||
|
attr_reader :raw, :headers, :status
|
||
|
|
||
|
def initialize(response)
|
||
|
@raw = response
|
||
|
@headers = response.headers
|
||
|
@status = response.status
|
||
|
end
|
||
|
|
||
|
def body
|
||
|
Oj.load(raw.body, class_cache: false, mode: :compat)
|
||
|
end
|
||
|
|
||
|
def rels
|
||
|
links = headers['Link'].to_s.split(', ').map do |link|
|
||
|
href, name = link.match(/<(.*?)>; rel="(\w+)"/).captures
|
||
|
|
||
|
[name.to_sym, href]
|
||
|
end
|
||
|
|
||
|
Hash[*links.flatten]
|
||
|
end
|
||
|
end
|
||
|
end
|