From 36ed86b4ab2c4c692e135bd8953de25730ef3f57 Mon Sep 17 00:00:00 2001 From: Alexander Shestakov Date: Tue, 19 Jun 2012 01:18:35 +0300 Subject: [PATCH] Varying cache on dependencies too. --- rubygems_proxy.rb | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/rubygems_proxy.rb b/rubygems_proxy.rb index 5e77d1e..27e366d 100644 --- a/rubygems_proxy.rb +++ b/rubygems_proxy.rb @@ -2,6 +2,7 @@ require "fileutils" require "logger" require "erb" +require 'digest/md5' class RubygemsProxy attr_reader :env @@ -119,16 +120,23 @@ def specs? env["PATH_INFO"] =~ /specs\..+\.gz$/ end + def dependencies? + env["PATH_INFO"] =~ /dependencies/ + end + def filepath if specs? File.join(root_dir, env["PATH_INFO"]) - else - File.join(cache_dir, env["PATH_INFO"]) + else dependencies? ? + File.join(cache_dir, env["PATH_INFO"] + "-" + Digest::MD5.hexdigest(env["QUERY_STRING"])) : + File.join(cache_dir, env["PATH_INFO"]) end end def url - File.join("http://rubygems.org", env["PATH_INFO"]) + dependencies? ? + File.join("http://rubygems.org", env["PATH_INFO"] + "?" + env["QUERY_STRING"]) : + File.join("http://rubygems.org", env["PATH_INFO"]) end def update_specs