diff --git a/pkgs/development/interpreters/ruby/default.nix b/pkgs/development/interpreters/ruby/default.nix index 2085d558df5..2ff960f6fcc 100644 --- a/pkgs/development/interpreters/ruby/default.nix +++ b/pkgs/development/interpreters/ruby/default.nix @@ -1,6 +1,7 @@ { stdenv, lib, fetchurl, fetchFromSavannah, fetchFromGitHub , zlib, openssl, gdbm, ncurses, readline, groff, libyaml, libffi, autoreconfHook, bison , autoconf, darwin ? null +, buildEnv, bundler, bundix } @ args: let @@ -35,6 +36,7 @@ let , libffi, fiddleSupport ? true , autoreconfHook, bison, autoconf , darwin ? null + , buildEnv, bundler, bundix }: let rubySrc = if useRailsExpress then fetchFromGitHub { @@ -146,11 +148,15 @@ let }; passthru = rec { - inherit majorVersion minorVersion teenyVersion patchLevel; + inherit majorVersion minorVersion teenyVersion patchLevel version; rubyEngine = "ruby"; baseRuby = baseruby; libPath = "lib/${rubyEngine}/${versionNoPatch}"; gemPath = "lib/${rubyEngine}/gems/${versionNoPatch}"; + dev = import ./dev.nix { + inherit buildEnv bundler bundix; + ruby = self; + }; }; } ) args; in self; diff --git a/pkgs/development/interpreters/ruby/dev.nix b/pkgs/development/interpreters/ruby/dev.nix new file mode 100644 index 00000000000..7787306eb32 --- /dev/null +++ b/pkgs/development/interpreters/ruby/dev.nix @@ -0,0 +1,24 @@ +/* An environment for development that bundles ruby, bundler and bundix + together. This avoids version conflicts where each is using a diferent + version of each-other. +*/ +{ buildEnv, ruby, bundler, bundix }: +let + bundler_ = bundler.override { + ruby = ruby; + }; + bundix_ = bundix.override { + ruby = ruby; + bundler = bundler_; + }; +in +buildEnv { + name = "${ruby.rubyEngine}-dev-${ruby.version}"; + paths = [ + bundix_ + bundler_ + ruby + ]; + pathsToLink = [ "/bin" ]; + ignoreCollisions = true; +}