add gem analyzer

This commit is contained in:
Alex Goodman
2020-06-04 14:42:59 -04:00
parent 033c91a233
commit f33720eaa1
18 changed files with 815 additions and 109 deletions
+4
View File
@@ -26,6 +26,10 @@ func NewCatalog() *Catalog {
}
}
func (c *Catalog) PackageCount() int {
return len(c.byID)
}
func (c *Catalog) Package(id ID) *Package {
return c.byID[id]
}
+33
View File
@@ -0,0 +1,33 @@
package pkg
const (
UnknownLanguage Language = iota
Java
JavaScript
Python
Ruby
)
type Language uint
var languageStr = []string{
"UnknownLanguage",
"java",
"javascript",
"python",
"ruby",
}
var AllLanguages = []Language{
Java,
JavaScript,
Python,
Ruby,
}
func (t Language) String() string {
if int(t) >= len(languageStr) {
return languageStr[0]
}
return languageStr[t]
}
+1
View File
@@ -16,6 +16,7 @@ type Package struct {
FoundBy string
Source []file.Reference
Licenses []string
Language Language // TODO: should this support multiple languages as a slice?
Type Type
Metadata interface{}
}
+10 -8
View File
@@ -3,13 +3,10 @@ package pkg
const (
UnknownPkg Type = iota
ApkPkg
BundlerPkg
DebPkg
JavaPkg
JavaScriptPkg
PacmanPkg
PythonPkg
RpmPkg
RubyPkg
)
type Type uint
@@ -17,13 +14,18 @@ type Type uint
var typeStr = []string{
"UnknownPackage",
"apk",
"bundler",
"deb",
"java",
"javascript",
"pacman",
"python",
"rpm",
"ruby",
}
var AllPkgs = []Type{
ApkPkg,
BundlerPkg,
DebPkg,
PacmanPkg,
RpmPkg,
}
func (t Type) String() string {