From e02ffbdc603c4209430e8d278f43a4cbba5221b5 Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@arkins.net>
Date: Mon, 21 Jan 2019 12:54:20 +0100
Subject: [PATCH] feat(bunder): extract ruby compatibiity version

---
 lib/manager/bundler/extract.js                    |  4 ++++
 test/_fixtures/bundler/Gemfile.sourceGroup        |  1 +
 .../bundler/__snapshots__/extract.spec.js.snap    | 15 +++++++++------
 3 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/lib/manager/bundler/extract.js b/lib/manager/bundler/extract.js
index 0e0ec50b27..f6221dc8b2 100644
--- a/lib/manager/bundler/extract.js
+++ b/lib/manager/bundler/extract.js
@@ -16,6 +16,10 @@ function extractPackageFile(content) {
     if (sourceMatch) {
       res.registryUrls.push(sourceMatch[1]);
     }
+    const rubyMatch = line.match(/^ruby "([^"]+)"/);
+    if (rubyMatch) {
+      res.compatibility = { ruby: rubyMatch[1] };
+    }
     const gemMatch = line.match(/^gem "([^"]+)"(,\s+"([^"]+)"){0,2}/);
     if (gemMatch) {
       const dep = {
diff --git a/test/_fixtures/bundler/Gemfile.sourceGroup b/test/_fixtures/bundler/Gemfile.sourceGroup
index 47be95ab28..0ba9edb79a 100644
--- a/test/_fixtures/bundler/Gemfile.sourceGroup
+++ b/test/_fixtures/bundler/Gemfile.sourceGroup
@@ -1,4 +1,5 @@
 source "https://rubygems.org"
+ruby "~> 1.5.3"
 
 source "https://gems.example.com" do
   gem "some_internal_gem"
diff --git a/test/manager/bundler/__snapshots__/extract.spec.js.snap b/test/manager/bundler/__snapshots__/extract.spec.js.snap
index 640506e22e..2a766abce3 100644
--- a/test/manager/bundler/__snapshots__/extract.spec.js.snap
+++ b/test/manager/bundler/__snapshots__/extract.spec.js.snap
@@ -499,10 +499,13 @@ Object {
 
 exports[`lib/manager/bundler/extract extractPackageFile() parses sourceGroups 1`] = `
 Object {
+  "compatibility": Object {
+    "ruby": "~> 1.5.3",
+  },
   "deps": Array [
     Object {
       "depName": "some_internal_gem",
-      "lineNumber": 3,
+      "lineNumber": 4,
       "registryUrls": Array [
         "https://gems.example.com",
       ],
@@ -510,7 +513,7 @@ Object {
     },
     Object {
       "depName": "another_internal_gem",
-      "lineNumber": 4,
+      "lineNumber": 5,
       "registryUrls": Array [
         "https://gems.example.com",
       ],
@@ -519,12 +522,12 @@ Object {
     Object {
       "currentValue": "latest",
       "depName": "ruby-debug",
-      "lineNumber": 8,
+      "lineNumber": 9,
       "skipReason": "invalid-value",
     },
     Object {
       "depName": "sqlite3",
-      "lineNumber": 9,
+      "lineNumber": 10,
       "skipReason": "no-version",
     },
     Object {
@@ -533,7 +536,7 @@ Object {
         "development",
         "optional => true",
       ],
-      "lineNumber": 13,
+      "lineNumber": 14,
       "skipReason": "no-version",
     },
     Object {
@@ -542,7 +545,7 @@ Object {
         "development",
         "optional => true",
       ],
-      "lineNumber": 14,
+      "lineNumber": 15,
       "skipReason": "no-version",
     },
   ],
-- 
GitLab