Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 28c282b

Browse files
asurkovyaronskaya
authored andcommitted
feat - support quasar (#538)
1 parent 65116c0 commit 28c282b

File tree

2 files changed

+63
-2
lines changed

2 files changed

+63
-2
lines changed

‎src/main/kotlin/app/extractors/JavascriptExtractor.kt‎

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,16 @@ class JavascriptExtractor : ExtractorInterface {
2727
override fun extractLibStats(files: List<DiffFile>): List<CommitStats> {
2828
val vueExtension = ".vue"
2929
val svelteExtension = ".svelte"
30+
val quasarConf = "quasar.conf.js"
31+
3032
val vueFiles = files.filter { it.path.endsWith(vueExtension) }
3133
val svelteFiles = files.filter { it.path.endsWith(svelteExtension) }
32-
val otherFiles = files.filter { !it.path.endsWith(vueExtension) && !it.path.endsWith(svelteExtension) }
34+
val quasarFile = files.find { it.path.endsWith(quasarConf) }
35+
val otherFiles = files.filter {
36+
!it.path.endsWith(vueExtension) &&
37+
!it.path.endsWith(svelteExtension) &&
38+
!it.path.endsWith(quasarConf)
39+
}
3340

3441
// Add stats from *.vue files.
3542
val vueStats = listOf(CommitStats(
@@ -47,7 +54,19 @@ class JavascriptExtractor : ExtractorInterface {
4754
tech = "js.svelte"
4855
)).filter { it.numLinesAdded > 0 || it.numLinesDeleted > 0 }
4956

50-
return vueStats + svelteStats + super.extractLibStats(otherFiles)
57+
var stats = vueStats + svelteStats + super.extractLibStats(otherFiles)
58+
if (quasarFile == null) {
59+
return stats;
60+
}
61+
62+
val quasarStats = listOf(CommitStats(
63+
numLinesAdded = quasarFile.getAllAdded().size,
64+
numLinesDeleted = quasarFile.getAllDeleted().size,
65+
type = ExtractorInterface.TYPE_LIBRARY,
66+
tech = "js.quasar"
67+
)).filter { it.numLinesAdded > 0 || it.numLinesDeleted > 0 }
68+
69+
return quasarStats + stats;
5170
}
5271

5372
override fun tokenize(line: String): List<String> {

‎src/test/kotlin/test/tests/hashers/CommitHasherTest.kt‎

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -385,6 +385,48 @@ class CommitHasherTest : Spek({
385385
}
386386
}
387387

388+
given("commits with quasar files") {
389+
val lines = listOf("module.exports = function (ctx) { }")
390+
391+
val author = Author(userName, userEmail)
392+
393+
val testRepoPath = "../testrepo-extractor-"
394+
val testRepo = TestRepo(testRepoPath + "quasar")
395+
396+
val mockApi = MockApi(mockRepo = repo)
397+
val observable = CommitCrawler.getObservable(testRepo.git, repo)
398+
399+
it("sends stats") {
400+
val fileName = "quasar.conf.js"
401+
testRepo.createFile(fileName, lines)
402+
testRepo.commit(message = "add quasar config", author = author)
403+
404+
val errors = mutableListOf<Throwable>()
405+
406+
val rehashes = (0..lines.size - 1).map { "r$it" }
407+
408+
CommitHasher(repo, mockApi, rehashes, emails)
409+
.updateFromObservable(observable, { e -> errors.add(e) })
410+
411+
assertEquals(0, errors.size)
412+
413+
val syntaxStats = mockApi.receivedAddedCommits
414+
.fold(mutableListOf<CommitStats>()) { allStats, commit ->
415+
allStats.addAll(commit.stats)
416+
allStats
417+
}.filter { it.type == ExtractorInterface.TYPE_LIBRARY }
418+
419+
val quasarStats = syntaxStats.filter { it.tech == "js.quasar" }
420+
assertEquals(1, quasarStats.size)
421+
assertEquals(1, quasarStats.map { it.numLinesAdded }.sum())
422+
assertEquals(0, quasarStats.map { it.numLinesDeleted }.sum())
423+
}
424+
425+
afterGroup {
426+
testRepo.destroy()
427+
}
428+
}
429+
388430
given("commits with typescript files") {
389431
val lines = listOf("new Vue({", "line 2")
390432

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /