Browse Source

Merge pull request #157 from vmarkovtsev/master

Fix filtering by language
Vadim Markovtsev 6 years ago
parent
commit
bdc9bc22ce
4 changed files with 28 additions and 6 deletions
  1. 12 3
      Gopkg.lock
  2. 1 1
      Gopkg.toml
  3. 6 2
      internal/plumbing/tree_diff.go
  4. 9 0
      internal/plumbing/tree_diff_test.go

+ 12 - 3
Gopkg.lock

@@ -189,6 +189,14 @@
   revision = "b8bc1bf767474819792c23f32d8286a45736f1c6"
 
 [[projects]]
+  digest = "1:b8a91524c7e262bcf2fde6e6bdcebfcaa6450ad073af6df6301fd5f6c32a838b"
+  name = "github.com/moovweb/rubex"
+  packages = ["."]
+  pruneopts = "UT"
+  revision = "cb849acea6148000db8a55743f71476b0897ea41"
+  version = "6.3.107"
+
+[[projects]]
   branch = "master"
   digest = "1:cab1f682826733526a4b49a45cb64fab31930f2cc2684fa14c64b090b1c25b13"
   name = "github.com/pelletier/go-buffruneio"
@@ -459,16 +467,17 @@
   revision = "a7f18ead1433a139742a8b42ce7a059cfb484d60"
 
 [[projects]]
-  branch = "master"
-  digest = "1:1260b963ef72806a56841af91479a3d2d9fa02bc11dc6b2a7f0866739b5b908c"
+  digest = "1:bdce03a1ad3dbb484e748b871f7069cefe3a8e111296e494a58bc7145cfa112e"
   name = "gopkg.in/src-d/enry.v1"
   packages = [
     ".",
     "data",
     "internal/tokenizer",
+    "regex",
   ]
   pruneopts = "UT"
-  revision = "acaf8f3d385e8c6f43e24713538007fb72bbfc16"
+  revision = "8953e0e19a9a08c69113f672fbd89f6082b379d5"
+  version = "v1.6.7"
 
 [[projects]]
   branch = "master"

+ 1 - 1
Gopkg.toml

@@ -63,7 +63,7 @@
   name = "gopkg.in/cheggaaa/pb.v1"
 
 [[constraint]]
-  branch = "master"
+  version = "v1.6.7"
   name = "gopkg.in/src-d/enry.v1"
 
 [[constraint]]

+ 6 - 2
internal/plumbing/tree_diff.go

@@ -4,6 +4,7 @@ import (
 	"fmt"
 	"io"
 	"log"
+	"path"
 	"regexp"
 	"strings"
 
@@ -261,11 +262,14 @@ func (treediff *TreeDiff) checkLanguage(name string, blobHash plumbing.Hash) (bo
 		return false, err
 	}
 	buffer := make([]byte, 1024)
-	_, err = reader.Read(buffer)
+	n, err := reader.Read(buffer)
 	if err != nil {
 		return false, err
 	}
-	lang := enry.GetLanguage(name, buffer)
+	if n < len(buffer) {
+		buffer = buffer[:n]
+	}
+	lang := enry.GetLanguage(path.Base(name), buffer)
 	return treediff.Languages[lang], nil
 }
 

+ 9 - 0
internal/plumbing/tree_diff_test.go

@@ -247,3 +247,12 @@ func TestTreeDiffFork(t *testing.T) {
 	assert.Equal(t, td1.previousTree, td2.previousTree)
 	td1.Merge([]core.PipelineItem{td2})
 }
+
+func TestTreeDiffCheckLanguage(t *testing.T) {
+	td := fixtureTreeDiff()
+	td.Languages["Go"] = true
+	lang, err := td.checkLanguage(
+		"version.go", plumbing.NewHash("975f35a1412b8ae79b5ba2558f71f41e707fd5a9"))
+	assert.Nil(t, err)
+	assert.True(t, lang)
+}