56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
# File 'lib/gemverse/cache.rb', line 56
def read_versions( gems: [] )
versions = []
if gems.empty?
paths = Dir.glob( "#{@basedir}/*/versions.csv" )
gems = paths.map { |path| File.basename(File.dirname(path)) }
end
gems.each_with_index do |gem,i|
name = if gem.is_a?( String )
gem
elsif gem.is_a?( Hash )
gem['name']
else gem.name
end
path = "#{@basedir}/#{name}/versions.csv"
puts "==> #{i+1}/#{gems.size} reading #{name}..."
recs = read_csv( path )
recs.reverse.each_with_index do |rec,n|
more = { 'count' => (n+1).to_s } versions << rec.merge( more )
end
puts " #{recs.size} record(s)"
end
versions = versions.sort do |l,r|
res = r['created'] <=> l['created']
res = l['name'] <=> r['name'] if res == 0
res = r['version'] <=> l['version'] if res == 0
res
end
versions
end
|