summaryrefslogtreecommitdiff
path: root/lib/github/response.rb
blob: 761c524b553dd6789b9c3449f7af09d4292e24f3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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