lib/gollum-lib/gitcode.rb in gitlab-gollum-lib-1.1.0 vs lib/gollum-lib/gitcode.rb in gitlab-gollum-lib-4.2.7

- old
+ new

@@ -4,44 +4,44 @@ require 'uri' require 'open-uri' module Gollum class Gitcode - def initialize path + def initialize(path) raise(ArgumentError, 'path is nil or empty') if path.nil? or path.empty? @uri = URI::HTTP.build({ - :path => self.unchomp(path), - :host => 'raw.github.com', - :scheme => 'https', - :port => 443 }) + :path => self.unchomp(path), + :host => 'raw.github.com', + :scheme => 'https', + :port => 443 }) end def contents @contents ||= self.req @uri end - def unchomp p + def unchomp(p) return p if p.nil? p[0] == '/' ? p : ('/' + p) end - def req uri, cut = 1 + def req(uri, cut = 1) return "Too many redirects or retries" if cut >= 10 - http = Net::HTTP.new uri.host, uri.port + http = Net::HTTP.new uri.host, uri.port http.use_ssl = true - resp = http.get uri.path, { - 'Accept' => 'text/plain', - 'Cache-Control' => 'no-cache', - 'Connection' => 'keep-alive', - 'Host' => uri.host, - 'User-Agent' => 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:15.0) Gecko/20100101 Firefox/15.0' + resp = http.get uri.path, { + 'Accept' => 'text/plain', + 'Cache-Control' => 'no-cache', + 'Connection' => 'keep-alive', + 'Host' => uri.host, + 'User-Agent' => 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:15.0) Gecko/20100101 Firefox/15.0' } - code = resp.code.to_i + code = resp.code.to_i return resp.body if code == 200 return "Not Found" if code == 404 return "Unhandled Response Code #{code}" unless code == 304 or not resp.header['location'].nil? - loc = URI.parse resp.header['location'] + loc = URI.parse resp.header['location'] uri2 = loc.relative?() ? (uri + loc) : loc # overloads (+) return req uri2, (cut + 1) end end end