about summary refs log tree commit diff
path: root/pkgs/development/interpreters/ruby/bundler-env/monkey_patches.rb
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/interpreters/ruby/bundler-env/monkey_patches.rb')
-rw-r--r--pkgs/development/interpreters/ruby/bundler-env/monkey_patches.rb24
1 files changed, 16 insertions, 8 deletions
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