Merge pull request #12 from funkyvisions/patch-1

Enabling support for git+http
diff --git a/index.js b/index.js
index c2510c9..9f4694c 100644
--- a/index.js
+++ b/index.js
@@ -25,6 +25,7 @@
 var fs = require('fs');
 var CordovaError = require('cordova-common').CordovaError;
 var isUrl = require('is-url');
+var isGitUrl = require('is-git-url');
 var hostedGitInfo = require('hosted-git-info');
 
 /*
@@ -154,7 +155,7 @@
     var gitInfo = hostedGitInfo.fromUrl(target);
     if (gitInfo) {
         target = gitInfo.project;
-    } else if (isUrl(target)) {
+    } else if (isUrl(target) || isGitUrl(target)) {
         // strip away .git and everything that follows
         var strippedTarget = target.split('.git');
         var re = /.*\/(.*)/;
diff --git a/package.json b/package.json
index 1082595..891f2db 100644
--- a/package.json
+++ b/package.json
@@ -25,6 +25,7 @@
     "dependency-ls": "^1.1.0",
     "hosted-git-info": "^2.5.0",
     "is-url": "^1.2.1",
+    "is-git-url": "^1.0.0",
     "q": "^1.4.1",
     "shelljs": "^0.7.0"
   },
diff --git a/spec/fetch.spec.js b/spec/fetch.spec.js
index 4d9369c..ab08eab 100644
--- a/spec/fetch.spec.js
+++ b/spec/fetch.spec.js
@@ -283,6 +283,25 @@
             })
             .fin(done);
     }, 30000);
+
+    it('should fetch from git+http successfully', function (done) {
+        fetch('git+http://gitbox.apache.org/repos/asf/cordova-plugin-dialogs.git', tmpDir, opts)
+            .then(function () {
+                // refetch to trigger trimID
+                return fetch('git+http://gitbox.apache.org/repos/asf/cordova-plugin-dialogs.git', tmpDir, opts);
+            })
+            .then(function (result) {
+                var pkgJSON = require(path.join(result, 'package.json'));
+                expect(result).toBeDefined();
+                expect(fs.existsSync(result)).toBe(true);
+                expect(pkgJSON.name).toBe('cordova-plugin-dialogs');
+            })
+            .fail(function (err) {
+                console.error(err);
+                expect(err).toBeUndefined();
+            })
+            .fin(done);
+    }, 30000);
 });
 
 describe('fetch failure with unknown module', function () {