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