Skip to content

Commit fbf63e1

Browse files
committed
refactor(serverHandler/sort): simplify variable names
1 parent e70eb24 commit fbf63e1

File tree

3 files changed

+88
-69
lines changed

3 files changed

+88
-69
lines changed

src/serverHandler/responseData.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -332,7 +332,7 @@ func (h *handler) getResponseData(r *http.Request) *responseData {
332332
}
333333

334334
subItems = h.FilterItems(subItems)
335-
rawSortBy, sortState := sortSubItems(subItems, rawQuery, h.defaultSort)
335+
rawSortBy, sortState := sortInfos(subItems, rawQuery, h.defaultSort)
336336

337337
if h.emptyRoot && status == http.StatusOK && r.RequestURI != "/" {
338338
status = http.StatusNotFound

src/serverHandler/sort.go

Lines changed: 73 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import (
77
"strings"
88
)
99

10+
// compare dir func
11+
1012
type fnCompareDir func(i, j os.FileInfo) (less, ok bool)
1113

1214
var cmpDirFirst fnCompareDir = func(prev, next os.FileInfo) (less, ok bool) {
@@ -31,21 +33,14 @@ var cmpDirMixed fnCompareDir = func(prev, next os.FileInfo) (less, ok bool) {
3133
return true, false
3234
}
3335

36+
// sort name asc
37+
3438
type sortNameAscInfos struct {
3539
infos []os.FileInfo
3640
names [][]byte
3741
compareDir fnCompareDir
3842
}
3943

40-
func newSortNameAscInfos(infos []os.FileInfo, compareDir fnCompareDir) sortNameAscInfos {
41-
names := make([][]byte, len(infos))
42-
for i := range infos {
43-
names[i] = []byte(infos[i].Name())
44-
}
45-
46-
return sortNameAscInfos{infos, names, compareDir}
47-
}
48-
4944
func (sInfos sortNameAscInfos) Len() int {
5045
return len(sInfos.names)
5146
}
@@ -69,12 +64,24 @@ func (sInfos sortNameAscInfos) Swap(i, j int) {
6964
sInfos.names[i], sInfos.names[j] = sInfos.names[j], sInfos.names[i]
7065
}
7166

72-
type sortNameDescInfos struct {
73-
sortNameAscInfos
67+
func newSortNameAscInfos(infos []os.FileInfo, compareDir fnCompareDir) sortNameAscInfos {
68+
names := make([][]byte, len(infos))
69+
for i := range infos {
70+
names[i] = []byte(infos[i].Name())
71+
}
72+
73+
return sortNameAscInfos{infos, names, compareDir}
7474
}
7575

76-
func newSortNameDescInfos(infos []os.FileInfo, compareDir fnCompareDir) sortNameDescInfos {
77-
return sortNameDescInfos{newSortNameAscInfos(infos, compareDir)}
76+
func sortInfoNamesAsc(infos []os.FileInfo, compareDir fnCompareDir) {
77+
nameCachedInfos := newSortNameAscInfos(infos, compareDir)
78+
sort.Sort(nameCachedInfos)
79+
}
80+
81+
// sort name desc
82+
83+
type sortNameDescInfos struct {
84+
sortNameAscInfos
7885
}
7986

8087
func (sInfos sortNameDescInfos) Less(i, j int) bool {
@@ -91,28 +98,29 @@ func (sInfos sortNameDescInfos) Less(i, j int) bool {
9198
return j < i
9299
}
93100

94-
func sortSubItemNamesAsc(subInfos []os.FileInfo, compareDir fnCompareDir) {
95-
nameCachedSubInfos := newSortNameAscInfos(subInfos, compareDir)
96-
sort.Sort(nameCachedSubInfos)
101+
func newSortNameDescInfos(infos []os.FileInfo, compareDir fnCompareDir) sortNameDescInfos {
102+
return sortNameDescInfos{newSortNameAscInfos(infos, compareDir)}
97103
}
98104

99-
func sortSubItemNamesDesc(subInfos []os.FileInfo, compareDir fnCompareDir) {
100-
nameCachedSubInfos := newSortNameDescInfos(subInfos, compareDir)
101-
sort.Sort(nameCachedSubInfos)
105+
func sortInfoNamesDesc(infos []os.FileInfo, compareDir fnCompareDir) {
106+
nameCachedInfos := newSortNameDescInfos(infos, compareDir)
107+
sort.Sort(nameCachedInfos)
102108
}
103109

104-
func sortSubItemSizesAsc(subInfos []os.FileInfo, compareDir fnCompareDir) {
105-
sort.Slice(subInfos, func(i, j int) bool {
106-
less, ok := compareDir(subInfos[i], subInfos[j])
110+
// sort size asc
111+
112+
func sortInfoSizesAsc(infos []os.FileInfo, compareDir fnCompareDir) {
113+
sort.Slice(infos, func(i, j int) bool {
114+
less, ok := compareDir(infos[i], infos[j])
107115
if ok {
108116
return less
109117
}
110118

111-
if subInfos[i].Size() != subInfos[j].Size() {
112-
return subInfos[i].Size() < subInfos[j].Size()
119+
if infos[i].Size() != infos[j].Size() {
120+
return infos[i].Size() < infos[j].Size()
113121
}
114122

115-
cmpResult := strings.Compare(subInfos[i].Name(), subInfos[j].Name())
123+
cmpResult := strings.Compare(infos[i].Name(), infos[j].Name())
116124
if cmpResult != 0 {
117125
return cmpResult < 0
118126
}
@@ -121,18 +129,20 @@ func sortSubItemSizesAsc(subInfos []os.FileInfo, compareDir fnCompareDir) {
121129
})
122130
}
123131

124-
func sortSubItemSizesDesc(subInfos []os.FileInfo, compareDir fnCompareDir) {
125-
sort.Slice(subInfos, func(i, j int) bool {
126-
less, ok := compareDir(subInfos[i], subInfos[j])
132+
// sort size desc
133+
134+
func sortInfoSizesDesc(infos []os.FileInfo, compareDir fnCompareDir) {
135+
sort.Slice(infos, func(i, j int) bool {
136+
less, ok := compareDir(infos[i], infos[j])
127137
if ok {
128138
return less
129139
}
130140

131-
if subInfos[j].Size() != subInfos[i].Size() {
132-
return subInfos[j].Size() < subInfos[i].Size()
141+
if infos[j].Size() != infos[i].Size() {
142+
return infos[j].Size() < infos[i].Size()
133143
}
134144

135-
cmpResult := strings.Compare(subInfos[j].Name(), subInfos[i].Name())
145+
cmpResult := strings.Compare(infos[j].Name(), infos[i].Name())
136146
if cmpResult != 0 {
137147
return cmpResult < 0
138148
}
@@ -141,18 +151,20 @@ func sortSubItemSizesDesc(subInfos []os.FileInfo, compareDir fnCompareDir) {
141151
})
142152
}
143153

144-
func sortSubItemTimesAsc(subInfos []os.FileInfo, compareDir fnCompareDir) {
145-
sort.Slice(subInfos, func(i, j int) bool {
146-
less, ok := compareDir(subInfos[i], subInfos[j])
154+
// sort time asc
155+
156+
func sortInfoTimesAsc(infos []os.FileInfo, compareDir fnCompareDir) {
157+
sort.Slice(infos, func(i, j int) bool {
158+
less, ok := compareDir(infos[i], infos[j])
147159
if ok {
148160
return less
149161
}
150162

151-
if !subInfos[i].ModTime().Equal(subInfos[j].ModTime()) {
152-
return subInfos[i].ModTime().Before(subInfos[j].ModTime())
163+
if !infos[i].ModTime().Equal(infos[j].ModTime()) {
164+
return infos[i].ModTime().Before(infos[j].ModTime())
153165
}
154166

155-
cmpResult := strings.Compare(subInfos[i].Name(), subInfos[j].Name())
167+
cmpResult := strings.Compare(infos[i].Name(), infos[j].Name())
156168
if cmpResult != 0 {
157169
return cmpResult < 0
158170
}
@@ -161,18 +173,20 @@ func sortSubItemTimesAsc(subInfos []os.FileInfo, compareDir fnCompareDir) {
161173
})
162174
}
163175

164-
func sortSubItemTimesDesc(subInfos []os.FileInfo, compareDir fnCompareDir) {
165-
sort.Slice(subInfos, func(i, j int) bool {
166-
less, ok := compareDir(subInfos[i], subInfos[j])
176+
// sort time desc
177+
178+
func sortInfoTimesDesc(infos []os.FileInfo, compareDir fnCompareDir) {
179+
sort.Slice(infos, func(i, j int) bool {
180+
less, ok := compareDir(infos[i], infos[j])
167181
if ok {
168182
return less
169183
}
170184

171-
if !subInfos[j].ModTime().Equal(subInfos[i].ModTime()) {
172-
return subInfos[j].ModTime().Before(subInfos[i].ModTime())
185+
if !infos[j].ModTime().Equal(infos[i].ModTime()) {
186+
return infos[j].ModTime().Before(infos[i].ModTime())
173187
}
174188

175-
cmpResult := strings.Compare(subInfos[j].Name(), subInfos[i].Name())
189+
cmpResult := strings.Compare(infos[j].Name(), infos[i].Name())
176190
if cmpResult != 0 {
177191
return cmpResult < 0
178192
}
@@ -181,17 +195,22 @@ func sortSubItemTimesDesc(subInfos []os.FileInfo, compareDir fnCompareDir) {
181195
})
182196
}
183197

184-
func sortSubItemOriginal(subInfos []os.FileInfo, compareDir fnCompareDir) {
185-
sort.Slice(subInfos, func(i, j int) bool {
186-
less, ok := compareDir(subInfos[i], subInfos[j])
198+
// sort original
199+
200+
func sortInfoOriginal(infos []os.FileInfo, compareDir fnCompareDir) {
201+
sort.Slice(infos, func(i, j int) bool {
202+
less, ok := compareDir(infos[i], infos[j])
187203
if ok {
188204
return less
189205
}
190206

191207
return i < j
192208
})
193209
}
194-
func sortSubItems(subInfos []os.FileInfo, rawQuery string, defaultSortBy string) (rawSortBy *string, sortInfo SortState) {
210+
211+
// sort
212+
213+
func sortInfos(infos []os.FileInfo, rawQuery string, defaultSortBy string) (rawSortBy *string, sortInfo SortState) {
195214
const sortPrefix = "sort="
196215
var sortBy string
197216

@@ -238,20 +257,20 @@ func sortSubItems(subInfos []os.FileInfo, rawQuery string, defaultSortBy string)
238257
// do sort
239258
switch sortKey {
240259
case 'n':
241-
sortSubItemNamesAsc(subInfos, compareDir)
260+
sortInfoNamesAsc(infos, compareDir)
242261
case 'N':
243-
sortSubItemNamesDesc(subInfos, compareDir)
262+
sortInfoNamesDesc(infos, compareDir)
244263
case 's':
245-
sortSubItemSizesAsc(subInfos, compareDir)
264+
sortInfoSizesAsc(infos, compareDir)
246265
case 'S':
247-
sortSubItemSizesDesc(subInfos, compareDir)
266+
sortInfoSizesDesc(infos, compareDir)
248267
case 't':
249-
sortSubItemTimesAsc(subInfos, compareDir)
268+
sortInfoTimesAsc(infos, compareDir)
250269
case 'T':
251-
sortSubItemTimesDesc(subInfos, compareDir)
270+
sortInfoTimesDesc(infos, compareDir)
252271
default:
253272
if dirSort != dirSortMixed {
254-
sortSubItemOriginal(subInfos, compareDir)
273+
sortInfoOriginal(infos, compareDir)
255274
}
256275
}
257276

src/serverHandler/sort_test.go

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -36,98 +36,98 @@ func TestSort(t *testing.T) {
3636
infos := make([]os.FileInfo, len(originInfos))
3737

3838
copy(infos, originInfos)
39-
sortSubItems(infos, "", "")
39+
sortInfos(infos, "", "")
4040
ok = expectInfos(infos, dir3, file2, dir1, file3, dir2, file1)
4141
if !ok {
4242
t.Error(infos)
4343
}
4444

4545
copy(infos, originInfos)
46-
sortSubItems(infos, "?sort=/n", "")
46+
sortInfos(infos, "?sort=/n", "")
4747
ok = expectInfos(infos, dir1, dir2, dir3, file1, file2, file3)
4848
if !ok {
4949
t.Errorf("%+v\n", infos)
5050
}
5151

5252
copy(infos, originInfos)
53-
sortSubItems(infos, "?sort=/N", "")
53+
sortInfos(infos, "?sort=/N", "")
5454
ok = expectInfos(infos, dir3, dir2, dir1, file3, file2, file1)
5555
if !ok {
5656
t.Errorf("%+v\n", infos)
5757
}
5858

5959
copy(infos, originInfos)
60-
sortSubItems(infos, "?sort=n/", "")
60+
sortInfos(infos, "?sort=n/", "")
6161
ok = expectInfos(infos, file1, file2, file3, dir1, dir2, dir3)
6262
if !ok {
6363
t.Errorf("%+v\n", infos)
6464
}
6565

6666
copy(infos, originInfos)
67-
sortSubItems(infos, "?sort=N/", "")
67+
sortInfos(infos, "?sort=N/", "")
6868
ok = expectInfos(infos, file3, file2, file1, dir3, dir2, dir1)
6969
if !ok {
7070
t.Errorf("%+v\n", infos)
7171
}
7272

7373
copy(infos, originInfos)
74-
sortSubItems(infos, "?sort=n", "")
74+
sortInfos(infos, "?sort=n", "")
7575
ok = expectInfos(infos, dir1, file1, dir2, file2, dir3, file3)
7676
if !ok {
7777
t.Errorf("%+v\n", infos)
7878
}
7979

8080
copy(infos, originInfos)
81-
sortSubItems(infos, "?sort=N", "")
81+
sortInfos(infos, "?sort=N", "")
8282
ok = expectInfos(infos, file3, dir3, file2, dir2, file1, dir1)
8383
if !ok {
8484
t.Errorf("%+v\n", infos)
8585
}
8686

8787
copy(infos, originInfos)
88-
sortSubItems(infos, "?sort=s", "")
88+
sortInfos(infos, "?sort=s", "")
8989
ok = expectInfos(infos, dir1, file1, file2, dir3, file3, dir2)
9090
if !ok {
9191
t.Errorf("%+v\n", infos)
9292
}
9393

9494
copy(infos, originInfos)
95-
sortSubItems(infos, "?sort=S", "")
95+
sortInfos(infos, "?sort=S", "")
9696
ok = expectInfos(infos, dir2, file3, dir3, file2, file1, dir1)
9797
if !ok {
9898
t.Errorf("%+v\n", infos)
9999
}
100100

101101
copy(infos, originInfos)
102-
sortSubItems(infos, "?sort=t", "")
102+
sortInfos(infos, "?sort=t", "")
103103
ok = expectInfos(infos, dir1, file1, dir2, dir3, file2, file3)
104104
if !ok {
105105
t.Errorf("%+v\n", infos)
106106
}
107107

108108
copy(infos, originInfos)
109-
sortSubItems(infos, "?sort=T", "")
109+
sortInfos(infos, "?sort=T", "")
110110
ok = expectInfos(infos, file3, file2, dir3, dir2, file1, dir1)
111111
if !ok {
112112
t.Errorf("%+v\n", infos)
113113
}
114114

115115
copy(infos, originInfos)
116-
sortSubItems(infos, "?sort=/", "")
116+
sortInfos(infos, "?sort=/", "")
117117
ok = expectInfos(infos, dir3, dir1, dir2, file2, file3, file1)
118118
if !ok {
119119
t.Errorf("%+v\n", infos)
120120
}
121121

122122
copy(infos, originInfos)
123-
sortSubItems(infos, "", "")
123+
sortInfos(infos, "", "")
124124
ok = expectInfos(infos, originInfos...)
125125
if !ok {
126126
t.Errorf("%+v\n", infos)
127127
}
128128

129129
copy(infos, originInfos)
130-
sortSubItems(infos, "", "/n")
130+
sortInfos(infos, "", "/n")
131131
ok = expectInfos(infos, dir1, dir2, dir3, file1, file2, file3)
132132
if !ok {
133133
t.Errorf("%+v\n", infos)

0 commit comments

Comments
 (0)