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 cadda288764..b7ddfdea80b 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 f3849446fe6..f68a20212ce 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 + 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] + [spec.name, spec.version, spec.platform, dependencies] + end end + spec_list.compact! + [spec_list, deps_list.uniq] end end