@@ -88,23 +88,6 @@ func defaultLibraryMatchExtractor(lib *librariesindex.Library) string {
88
88
return res
89
89
}
90
90
91
- // matcherFromQueryString returns a closure that takes a library as a
92
- // parameter and returns true if the library matches the query.
93
- func matcherFromQueryString (query string ) func (* librariesindex.Library ) bool {
94
- // A qv-query is one using <qualifier>[:=]<value> syntax.
95
- qvQuery := strings .Contains (query , ":" ) || strings .Contains (query , "=" )
96
-
97
- if ! qvQuery {
98
- queryTerms := utils .SearchTermsFromQueryString (query )
99
- return func (lib * librariesindex.Library ) bool {
100
- return utils .Match (defaultLibraryMatchExtractor (lib ), queryTerms )
101
- }
102
- }
103
-
104
- joinedStrings := func (strs []string ) string {
105
- return strings .Join (strs , " " )
106
- }
107
-
108
91
var qualifiers map [string ]func (lib * librariesindex.Library ) string = map [string ]func (lib * librariesindex.Library ) string {
109
92
"name" : func (lib * librariesindex.Library ) string { return lib .Name },
110
93
"architectures" : func (lib * librariesindex.Library ) string { return strings .Join (lib .Latest .Architectures , " " ) },
@@ -125,6 +108,19 @@ var qualifiers map[string]func(lib *librariesindex.Library) string = map[string]
125
108
"website" : func (lib * librariesindex.Library ) string { return lib .Latest .Website },
126
109
}
127
110
111
+ // matcherFromQueryString returns a closure that takes a library as a
112
+ // parameter and returns true if the library matches the query.
113
+ func matcherFromQueryString (query string ) func (* librariesindex.Library ) bool {
114
+ // A qv-query is one using <qualifier>[:=]<value> syntax.
115
+ qvQuery := strings .Contains (query , ":" ) || strings .Contains (query , "=" )
116
+
117
+ if ! qvQuery {
118
+ queryTerms := utils .SearchTermsFromQueryString (query )
119
+ return func (lib * librariesindex.Library ) bool {
120
+ return utils .Match (defaultLibraryMatchExtractor (lib ), queryTerms )
121
+ }
122
+ }
123
+
128
124
queryTerms := matcherTokensFromQueryString (query )
129
125
130
126
return func (lib * librariesindex.Library ) bool {
@@ -134,15 +130,15 @@ var qualifiers map[string]func(lib *librariesindex.Library) string = map[string]
134
130
// Flag indicating whether the search term matched a known qualifier
135
131
knownQualifier := false
136
132
137
- for _ , q := range qualifiers {
138
- if strings .HasPrefix (term , q . key + ":" ) {
139
- target := strings .TrimPrefix (term , q . key + ":" )
140
- matched = (matched && utils .Match (q . extractor (lib ), []string {target }))
133
+ for key , extractor := range qualifiers {
134
+ if strings .HasPrefix (term , key + ":" ) {
135
+ target := strings .TrimPrefix (term , key + ":" )
136
+ matched = (matched && utils .Match (extractor (lib ), []string {target }))
141
137
knownQualifier = true
142
138
break
143
- } else if strings .HasPrefix (term , q . key + "=" ) {
144
- target := strings .TrimPrefix (term , q . key + "=" )
145
- matched = (matched && strings .ToLower (q . extractor (lib )) == target )
139
+ } else if strings .HasPrefix (term , key + "=" ) {
140
+ target := strings .TrimPrefix (term , key + "=" )
141
+ matched = (matched && strings .ToLower (extractor (lib )) == target )
146
142
knownQualifier = true
147
143
break
148
144
}
0 commit comments