Sha256: e492e08991baf76e371c5437a3c37ccb53c02a4b5d6f444d1de7b81b6f07644c

Contents?: true

Size: 1.16 KB

Versions: 1

Compression:

Stored size: 1.16 KB

Contents

#!/usr/bin/env ruby
require 'open-uri'
require 'yaml'

require_relative '../lib/rg_stats/statistic'

user_name = ARGV[0]

class PersistDataBetweenSessions

    STORAGE_NAME = "/tmp/ruby_gems_sync.yaml"
    def self.load
      File.exists?(STORAGE_NAME) ? File.open(STORAGE_NAME, "r") { |file| YAML.load(file) } : []
    end

    def self.save(list)
      File.open(STORAGE_NAME, "w") {|file| file.puts(list.to_yaml) }
    end
end

if user_name.nil?
  puts ""
  puts "Type username on RubyGems as argument: rg_stats user_name"
  puts ""
  exit
end

url =  "https://rubygems.org/api/v1/owners/#{user_name}/gems.json"
data_as_json = open(url)
old_data = PersistDataBetweenSessions.load
old_map = {} 
old_data.each do |old_gem_info|
  old_map[old_gem_info[0]] = old_gem_info[1]
end

stat = Statistic.new
stat.load data_as_json
puts ""
puts "*" * 90
stat.gem_info.each do |gem_info|
  broj_izmjena = gem_info[1] - (old_map[gem_info[0]].nil? ? 0 : old_map[gem_info[0]])
  diff_from_last_time = broj_izmjena == 0 ? "" : " (+\e[32m#{broj_izmjena}\e[0m)"
  puts "%-55s: %8d %8s" % [ gem_info[0] , gem_info[1], diff_from_last_time ] 
end
puts "*" * 90
PersistDataBetweenSessions.save(stat.gem_info)

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rg_stats-1.0.0 bin/rg_stats