diff --git a/pkgs/development/ruby-modules/bundler-env/basic.nix b/pkgs/development/ruby-modules/bundler-env/basic.nix index 80f12c14bfe8..33a379c02759 100644 --- a/pkgs/development/ruby-modules/bundler-env/basic.nix +++ b/pkgs/development/ruby-modules/bundler-env/basic.nix @@ -5,7 +5,8 @@ }@defs: { - pname + name +, pname ? name , gemfile , lockfile , gemset @@ -77,7 +78,9 @@ let basicEnv = buildEnv { inherit ignoreCollisions; - name = pname; + name = if name == null then pname else name; + + #name = pname; paths = envPaths; pathsToLink = [ "/lib" ]; @@ -92,7 +95,8 @@ let passthru = rec { inherit ruby bundler gems mainGem confFiles; # drvName; - wrappedRuby = stdenv.mkDerivation { + wrappedRuby = + stdenv.mkDerivation { name = "wrapped-ruby-${pname}"; nativeBuildInputs = [ makeWrapper ]; buildCommand = '' diff --git a/pkgs/development/ruby-modules/bundler-env/default.nix b/pkgs/development/ruby-modules/bundler-env/default.nix index 30896a598e42..68267a4aead8 100644 --- a/pkgs/development/ruby-modules/bundler-env/default.nix +++ b/pkgs/development/ruby-modules/bundler-env/default.nix @@ -27,7 +27,7 @@ let inherit (import ./functions.nix {inherit lib ruby gemConfig groups; }) genStubsScript; drvName = - if name != null then name + if name != null then lib.traceVal name else if pname != null then "${toString pname}-${basicEnv.gems."${pname}".version}" else throw "bundlerEnv: either pname or name must be set"; @@ -43,7 +43,7 @@ let if gemset == null then gemdir + "/gemset.nix" else gemset; - basicEnv = (callPackage ./basic.nix {}) (args // { inherit pname gemdir; + basicEnv = (callPackage ./basic.nix {}) (args // { inherit pname name gemdir; gemfile = gemfile'; lockfile = lockfile'; gemset = gemset'; @@ -63,7 +63,7 @@ let # The basicEnv should be put into passthru so that e.g. nix-shell can use it. in if pname == null then - basicEnv // { inherit name; } + basicEnv // { inherit name basicEnv; } else (buildEnv { inherit ignoreCollisions; diff --git a/pkgs/development/ruby-modules/bundler-env/test.nix b/pkgs/development/ruby-modules/bundler-env/test.nix index 164098e3f873..e49c4fd93f2f 100644 --- a/pkgs/development/ruby-modules/bundler-env/test.nix +++ b/pkgs/development/ruby-modules/bundler-env/test.nix @@ -24,11 +24,11 @@ let functions = (import ./functions.nix testConfigs); justName = bundlerEnv { - name = "test"; + name = "test-0.1.2"; gemset = ./test/gemset.nix; }; - pnamed = basicEnv { + pnamed = bundlerEnv { pname = "test"; gemdir = ./test; gemset = ./test/gemset.nix; @@ -51,13 +51,13 @@ let in test.run "Filter excludes based on groups" gemSet (set: functions.filterGemset {inherit ruby; groups = ["a" "b"];} set == {})) (test.run "bundlerEnv { name }" justName { - name = should.equal "test"; + name = should.equal "test-0.1.2"; }) (test.run "bundlerEnv { pname }" pnamed [ (should.haveKeys [ "name" "env" "postBuild" ]) { - name = should.equal "test"; + name = should.equal "test-0.1.2"; env = should.beASet; postBuild = should.havePrefix "/nix/store"; } diff --git a/pkgs/development/ruby-modules/bundler-env/test/gemset.nix b/pkgs/development/ruby-modules/bundler-env/test/gemset.nix new file mode 100644 index 000000000000..53f15f96bc6d --- /dev/null +++ b/pkgs/development/ruby-modules/bundler-env/test/gemset.nix @@ -0,0 +1,10 @@ +{ + test = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1j5r0anj8m4qlf2psnldip4b8ha2bsscv11lpdgnfh4nnchzjnxw"; + type = "gem"; + }; + version = "0.1.2"; + }; +}