Sha256: 281860c1c05044ae516ceb0bd82d7d6c406716141fb924e4e9770ea6dc1b738a
Contents?: true
Size: 852 Bytes
Versions: 1
Compression:
Stored size: 852 Bytes
Contents
require 'rubygems/code_finder/version' require 'faraday' require 'multi_json' require 'uri' module Rubygems module CodeFinder extend self class RubygemsNotFound < StandardError; end class RepositoryNotFound < StandardError; end def url(name, github_strict: true) conn = Faraday.new 'https://rubygems.org' response = conn.get('/api/v1/gems/' + name + '.json') fail RubygemsNotFound unless response.status == 200 parse_response_body(response.body) end def parse_response_body(body) data = MultiJson.load(body) return data['source_code_uri'] if data['source_code_uri'] && URI.parse(data['source_code_uri']).host == 'github.com' return data['homepage_uri'] if data['homepage_uri'] && URI.parse(data['homepage_uri']).host == 'github.com' fail RepositoryNotFound end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rubygems-code_finder-0.0.2 | lib/rubygems-code_finder.rb |