summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAustin Ziegler <austin@zieglers.ca>2015-11-22 11:00:01 -0500
committerAustin Ziegler <austin@zieglers.ca>2015-11-22 11:00:01 -0500
commitec073069a4a2479c0aad7cc4688ff0558e569262 (patch)
tree1d7899835090740b5adf06441a0808a07ef4dc53
parent88304979a95e5fed98e2896613d31cff4174d6fe (diff)
downloadmime-types-ec073069a4a2479c0aad7cc4688ff0558e569262.tar.gz
Adding a utility to prioritize deps updates
Taken liberally from @schneems gist for top fifty dependencies. https://gist.github.com/schneems/e09c95da37a8c50047a8
-rw-r--r--Rakefile32
1 files changed, 32 insertions, 0 deletions
diff --git a/Rakefile b/Rakefile
index 624e3ba..86a0697 100644
--- a/Rakefile
+++ b/Rakefile
@@ -208,6 +208,38 @@ namespace :convert do
task docs: 'convert:docs:run'
end
+task 'deps:top', [ :number ] do |_, args|
+ require 'net/http'
+ require 'json'
+
+ def rubygems_get(gem_name: '', endpoint: '')
+ path = File.join('/api/v1/gems/', gem_name, endpoint).chomp('/') + '.json'
+ Net::HTTP.start('rubygems.org', use_ssl: true) do |http|
+ JSON.parse(http.get(path).body)
+ end
+ end
+
+ results = rubygems_get(
+ gem_name: 'mime-types',
+ endpoint: 'reverse_dependencies'
+ )
+
+ weighted_results = {}
+ results.each do |name|
+ begin
+ weighted_results[name] = rubygems_get(gem_name: name)['downloads']
+ rescue => e
+ puts "#{name} #{e.message}"
+ end
+ end
+
+ weighted_results.sort { |(_k1, v1), (_k2, v2)|
+ v2 <=> v1
+ }.first(args.number || 50).each_with_index do |(k, v), i|
+ puts "#{i}) #{k}: #{v}"
+ end
+end
+
task :console do
arguments = %w(pry)
arguments.push(*spec.spec.require_paths.map { |dir| "-I#{dir}" })