about summary refs log tree commit diff
path: root/pkgs/development/interpreters/ruby/load-ruby-env.nix
diff options
context:
space:
mode:
authorCharles Strahan <charles.c.strahan@gmail.com>2015-01-15 20:58:05 -0500
committerCharles Strahan <charles.c.strahan@gmail.com>2015-01-15 20:58:05 -0500
commit9ad38ec3229e2b29cf54213fb7d4b8d109d3898d (patch)
treee1079d65fe073c7cd6a1fc4e4cc0f850bf4fe4bc /pkgs/development/interpreters/ruby/load-ruby-env.nix
parent1a1e6cfc04c9123f622d6db9c7ac5ba3832dc30b (diff)
downloadnixlib-9ad38ec3229e2b29cf54213fb7d4b8d109d3898d.tar
nixlib-9ad38ec3229e2b29cf54213fb7d4b8d109d3898d.tar.gz
nixlib-9ad38ec3229e2b29cf54213fb7d4b8d109d3898d.tar.bz2
nixlib-9ad38ec3229e2b29cf54213fb7d4b8d109d3898d.tar.lz
nixlib-9ad38ec3229e2b29cf54213fb7d4b8d109d3898d.tar.xz
nixlib-9ad38ec3229e2b29cf54213fb7d4b8d109d3898d.tar.zst
nixlib-9ad38ec3229e2b29cf54213fb7d4b8d109d3898d.zip
ruby: allow for overriding the src
Diffstat (limited to 'pkgs/development/interpreters/ruby/load-ruby-env.nix')
-rw-r--r--pkgs/development/interpreters/ruby/load-ruby-env.nix17
1 files changed, 10 insertions, 7 deletions
diff --git a/pkgs/development/interpreters/ruby/load-ruby-env.nix b/pkgs/development/interpreters/ruby/load-ruby-env.nix
index 913e2cb39f2c..c4356ed5f50f 100644
--- a/pkgs/development/interpreters/ruby/load-ruby-env.nix
+++ b/pkgs/development/interpreters/ruby/load-ruby-env.nix
@@ -43,16 +43,19 @@ let
 
   instantiate = (attrs:
     let
+      defaultAttrs = {
+        name = "${attrs.name}-${attrs.version}";
+        inherit ruby gemPath;
+      };
       gemPath = map (name: gemset''."${name}") (attrs.dependencies or []);
       fixedAttrs = attrs // (fixes."${attrs.name}" or (const {})) attrs;
+      withSource = fixedAttrs //
+        (if (lib.isDerivation fixedAttrs.src || builtins.isString fixedAttrs.src)
+           then {}
+           else { src = (fetchers."${fixedAttrs.src.type}" fixedAttrs); });
+
     in
-      buildRubyGem (
-        fixedAttrs // {
-          name = "${attrs.name}-${attrs.version}";
-          src = fetchers."${attrs.src.type}" attrs;
-          inherit ruby gemPath;
-        }
-      )
+      buildRubyGem (withSource // defaultAttrs)
   );
 
   gemset' = if builtins.isAttrs gemset then gemset else import gemset;