diff options
-rw-r--r-- | pkgs/development/interpreters/ruby/bundler-env/default-gem-config.nix | 2 | ||||
-rw-r--r-- | pkgs/development/interpreters/ruby/bundler-env/monkey_patches.rb | 24 |
2 files changed, 17 insertions, 9 deletions
diff --git a/pkgs/development/interpreters/ruby/bundler-env/default-gem-config.nix b/pkgs/development/interpreters/ruby/bundler-env/default-gem-config.nix index cadda2887644..b7ddfdea80b3 100644 --- a/pkgs/development/interpreters/ruby/bundler-env/default-gem-config.nix +++ b/pkgs/development/interpreters/ruby/bundler-env/default-gem-config.nix @@ -31,7 +31,7 @@ in { charlock_holmes = attrs: { - buildInputs = [ which icu ]; + buildInputs = [ which icu zlib ]; }; ffi = attrs: { diff --git a/pkgs/development/interpreters/ruby/bundler-env/monkey_patches.rb b/pkgs/development/interpreters/ruby/bundler-env/monkey_patches.rb index f3849446fe6a..f68a20212cee 100644 --- a/pkgs/development/interpreters/ruby/bundler-env/monkey_patches.rb +++ b/pkgs/development/interpreters/ruby/bundler-env/monkey_patches.rb @@ -74,16 +74,24 @@ Bundler::Fetcher.class_eval do spec_list = gem_names.map do |name| spec = Bundler.nix_gemspecs.detect {|spec| spec.name == name } - dependencies = spec.dependencies. - select {|dep| dep.type != :development}. - map do |dep| - deps_list << dep.name - dep - end - - [spec.name, spec.version, spec.platform, dependencies] + if spec.nil? + msg = "WARNING: Could not find gemspec for '#{name}'" + Bundler.ui.warn msg + nil + else + dependencies = spec.dependencies. + select {|dep| dep.type != :development}. + map do |dep| + deps_list << dep.name + dep + end + + [spec.name, spec.version, spec.platform, dependencies] + end end + spec_list.compact! + [spec_list, deps_list.uniq] end end |