module Geminfo

Module name

Constants

VERSION

Public Class Methods

downloads() click to toggle source

Module method

# File lib/geminfo.rb, line 169
def self.downloads

        link = "http://rubygems.org/api/v1/downloads.json"
        begin
                page_content = Net::HTTP.get(URI.parse(link))
        rescue
                abort "Internet Connection cannot be established"
        end
        #Exception handling
        begin
                data_file = JSON.parse(page_content)
        rescue
                abort "Check get data at the moment"
        end

        total = data_file["total"].to_s.reverse.gsub(/(\d{3})(?=\d)/, '\\1,').reverse
        puts "Total Rubygems Downloads till date: #{total}"
end
gemversions(gemname) click to toggle source

Module name

# File lib/geminfo.rb, line 131
def self.gemversions(gemname)
        #Converts gemname to lowercase
        @gemname = gemname.downcase

        #@gemversion = version
        #"https://rubygems.org/api/v1/downloads/eventsims-0.0.2.json"
        
        #parse links
        @link = 'http://rubygems.org/api/v1/versions/' + @gemname + ".json"

        #Exception handling
        begin
                @page_content = Net::HTTP.get(URI.parse(@link))
        rescue
                abort "Internet Connection cannot be established"
        end

        #Exception handling
        begin
                @data_file = JSON.parse(@page_content)
        rescue
                abort "Check you have entered the right Gem name"
        end

        # Printing values
        x = 0; while x < @data_file.size
                puts "Gemname: #{@gemname + "-" + @data_file[x]["number"]}"
                puts "Authors: #{@data_file[x]["authors"]}"
                puts "Built on: #{(@data_file[x]["built_at"])[0..9]}"
                puts "Total downloads: #{@data_file[x]["downloads_count"]}"
                puts "SHA 256 Checksum: #{@data_file[x]["sha"] }"
                puts ""
                x+=1
        end
end
latestgems(amount=50) click to toggle source

Module method

# File lib/geminfo.rb, line 321
def self.latestgems(amount=50)
        link = "http://rubygems.org/api/v1/activity/latest.json"

        begin
                page_content = Net::HTTP.get(URI.parse(link))
        rescue
                abort "Check get data at the moment"
        end

        #Exception handling
        begin
                @data_file = JSON.parse(page_content)
        rescue
                abort "Internet Connection cannot be established"
        end

        x=0; while x < amount.to_i
                puts "Gem Name: #{@data_file[x]["name"]}"
                puts "Author: #{@data_file[x]["authors"]}"
                puts "Latest Version: #{@data_file[x]["version"]}"
                puts "Total Downloads: #{@data_file[x]["downloads"].to_s.reverse.gsub(/(\d{3})(?=\d)/, '\\1,').reverse}"
                puts "Description: #{@data_file[x]["info"]}\n\n"
                x+=1
        end
end
owner(gemname) click to toggle source
# File lib/geminfo.rb, line 241
def self.owner(gemname)
        #Converts gemname to lowercase
        @gemname = gemname.to_s.downcase

        #http://rubygems.org/api/v1/gems/event/owners.json
        
        #parse links
        @link = "http://rubygems.org/api/v1/gems/" + @gemname + "/owners.json"

        #Exception handling
        begin
                @page_content = Net::HTTP.get(URI.parse(@link))
        rescue
                abort "Internet Connection cannot be established"
        end

        #Exception handling
        begin
                @data_file = JSON.parse(@page_content)
        rescue
                abort "Check you have entered the right Gem's name"
        end

        puts "Gemname: #{@gemname} \n\n"
        for x in @data_file
                puts "User ID: #{x["id"]}"
                puts "Username: #{x["handle"]}"
                puts "Email Address: #{x["email"]} \n\n"
                
        end

end
updatedgems(amount=50) click to toggle source

Module method

# File lib/geminfo.rb, line 348
def self.updatedgems(amount=50)
        link = "http://rubygems.org/api/v1/activity/just_updated.json"

        begin
                page_content = Net::HTTP.get(URI.parse(link))
        rescue
                abort "Check get data at the moment"
        end

        #Exception handling
        begin
                @data_file = JSON.parse(page_content)
        rescue
                abort "Internet Connection cannot be established"
        end

        x=0; while x < amount.to_i
                puts "Gem Name: #{@data_file[x]["name"]}"
                puts "Author: #{@data_file[x]["authors"]}"
                puts "Latest Version: #{@data_file[x]["version"]}"
                puts "Total Downloads: #{@data_file[x]["downloads"].to_s.reverse.gsub(/(\d{3})(?=\d)/, '\\1,').reverse}"
                puts "Description: #{@data_file[x]["info"]}\n\n"
                x+=1
        end
end
usergems(username) click to toggle source
# File lib/geminfo.rb, line 188
def self.usergems(username)
        #Converts gemname to lowercase
        @username = username.to_s.downcase

        #http://rubygems.org/api/v1/owners/tushortz/gems.json
        
        #parse links
        @link = "http://rubygems.org/api/v1/owners/" + @username + "/gems.json"

        #Exception handling
        begin
                @page_content = Net::HTTP.get(URI.parse(@link))
        rescue
                abort "Internet Connection cannot be established"
        end

        #Exception handling
        begin
                @data_file = JSON.parse(@page_content)
        rescue
                abort "Check you have entered the right Username/ID"
        end

        totalgem = @data_file.is_a?(Hash)? 0 : @data_file.size
        
        # Checks if value can be converted to a number and assigns it to a value
        user = @username =~ /\A\d+\z/ ? "User ID" : "User Name"


        puts "#{user} : #{@username}"
        puts totalgem !=0? "Total gems: #{totalgem}\n\n" : "No gems found"
        
        begin
                i = 0; while i < @data_file.size
                        keys = ["Gemname", "Overall downloads", "latest version", "Latest version downloads"]; 
                        results = []
                        @data_file[i].each{|x,y| 
                                results << y
                        }
                        j = 0
                        while j < 4
                                puts "#{keys[j]}: #{results[j].to_s.reverse.gsub(/(\d{3})(?=\d)/, '\\1,').reverse} " 
                                j+=1
                        end; puts ""
                        i+=1
                end
        rescue 
                abort "Make sure #{user} is right and try again"
        end   

end