diff --git a/var/spack/repos/builtin/packages/ruby/package.py b/var/spack/repos/builtin/packages/ruby/package.py
index c79defced136dc196b60568af3cb53d2fc88320b..77e7d80abf09da2ef8acd661bc4030a42eb3b33c 100644
--- a/var/spack/repos/builtin/packages/ruby/package.py
+++ b/var/spack/repos/builtin/packages/ruby/package.py
@@ -31,6 +31,8 @@ class Ruby(AutotoolsPackage):
 
     homepage = "https://www.ruby-lang.org/"
     url      = "http://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.0.tar.gz"
+    list_url = "http://cache.ruby-lang.org/pub/ruby/"
+    list_depth = 1
 
     version('2.2.0', 'cd03b28fd0b555970f5c4fd481700852')
 
@@ -63,6 +65,10 @@ class Ruby(AutotoolsPackage):
         expand=False
     )
 
+    def url_for_version(self, version):
+        url = "http://cache.ruby-lang.org/pub/ruby/{0}/ruby-{1}.tar.gz"
+        return url.format(version.up_to(2), version)
+
     def configure_args(self):
         args = []
         if '+openssl' in self.spec: