diff options
Diffstat (limited to 'pkgs/development/ruby-modules/bundled-common')
-rw-r--r-- | pkgs/development/ruby-modules/bundled-common/default.nix | 24 |
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" ]; |