lib/gemline.rb in gemline-0.1.4 vs lib/gemline.rb in gemline-0.2.0

- old
+ new

@@ -1,21 +1,18 @@ -require 'crack/json' -require 'net/http' +require 'json/pure' +require 'net/https' -require 'yaml' -YAML::ENGINE.yamler = 'syck' if RUBY_VERSION[0,3] == "1.9" - class Gemline attr_accessor :gem, :gemline, :json, :response def self.query(gem_name) gem_name = sanitize_gem_name(gem_name) check_input(gem_name) g = Gemline.new(gem_name) - + if g.gem_not_found? $stderr.puts "Ruby gem #{gem_name} was not found on rubygems.org" Kernel.exit 1 else puts g.gemline @@ -30,11 +27,11 @@ def initialize(gem_name, options = {}) @gem = gem_name.to_s.gsub(/[^\w\-]+/,'') # Yeah, a little over-defensive. @json = Gemline.get_rubygem_json(@gem) unless gem_not_found? - @response = Crack::JSON.parse(@json) + @response = JSON.parse(@json) @gemline = Gemline.create_gemline(@gem, response['version'], options) end end def gem_not_found? @@ -43,11 +40,17 @@ private def self.get_rubygem_json(gem_name) - Net::HTTP.get(URI.parse("http://rubygems.org/api/v1/gems/#{gem_name}.json")) - end + uri = URI.parse("https://rubygems.org/api/v1/gems/#{gem_name}.json") + http = Net::HTTP.new(uri.host, uri.port) + http.use_ssl = true + http.verify_mode = OpenSSL::SSL::VERIFY_NONE + request = Net::HTTP::Get.new(uri.request_uri) + response = http.request(request) + response.body + end def self.create_gemline(gem_name, version, options = {}) if options[:gemspec] return gemspec_gemline(gem_name, version) else