summary refs log tree commit diff
path: root/pkgs/development/ruby-modules/bundled-common
diff options
context:
space:
mode:
authorJudson <nyarly@gmail.com>2017-06-27 22:33:18 -0700
committerJudson <nyarly@gmail.com>2017-06-27 22:33:18 -0700
commite149f0234451e6ac714492076e5796546a2b035b (patch)
tree53e652e5c6502146ba61b48a1a99fd176b942acb /pkgs/development/ruby-modules/bundled-common
parent70e7e543c5493761cf065dc96ec8c8cbafe40aba (diff)
downloadnixpkgs-e149f0234451e6ac714492076e5796546a2b035b.tar
nixpkgs-e149f0234451e6ac714492076e5796546a2b035b.tar.gz
nixpkgs-e149f0234451e6ac714492076e5796546a2b035b.tar.bz2
nixpkgs-e149f0234451e6ac714492076e5796546a2b035b.tar.lz
nixpkgs-e149f0234451e6ac714492076e5796546a2b035b.tar.xz
nixpkgs-e149f0234451e6ac714492076e5796546a2b035b.tar.zst
nixpkgs-e149f0234451e6ac714492076e5796546a2b035b.zip
Using pname and fetching versions
Diffstat (limited to 'pkgs/development/ruby-modules/bundled-common')
-rw-r--r--pkgs/development/ruby-modules/bundled-common/default.nix24
1 files changed, 20 insertions, 4 deletions
diff --git a/pkgs/development/ruby-modules/bundled-common/default.nix b/pkgs/development/ruby-modules/bundled-common/default.nix
index 6e7bd7a898b..09eb36a247a 100644
--- a/pkgs/development/ruby-modules/bundled-common/default.nix
+++ b/pkgs/development/ruby-modules/bundled-common/default.nix
@@ -5,8 +5,8 @@
 }@defs:
 
 {
-  name
-, pname ? name
+  name ? null
+, pname ? null
 , mainGemName ? null
 , gemdir ? null
 , gemfile ? null
@@ -22,6 +22,8 @@
 , ...
 }@args:
 
+assert name == null -> pname != null;
+
 with  import ./functions.nix { inherit lib gemConfig; };
 
 let
@@ -43,6 +45,20 @@ let
 
   gems = lib.flip lib.mapAttrs configuredGemset (name: attrs: buildGem name attrs);
 
+  name' = if name != null then
+    name
+  else
+    let
+      gem = gems."${pname}";
+      version = gem.version;
+    in
+      "${pname}-${version}";
+
+  pname' = if pname != null then
+    pname
+  else
+    name;
+
   copyIfBundledByPath = { bundledByPath ? false, ...}@main:
   (if bundledByPath then
       assert gemFiles.gemdir != null; "cp -a ${gemFiles.gemdir}/* $out/"
@@ -78,9 +94,9 @@ let
   envPaths = lib.attrValues gems ++ lib.optional (!hasBundler) bundler;
 
   basicEnv = buildEnv {
-    inherit ignoreCollisions;
+    inherit  ignoreCollisions;
 
-    name = if name == null then pname else name;
+    name = name';
 
     paths = envPaths;
     pathsToLink = [ "/lib" ];