瀏覽代碼

consolidate ArgsToStrings

tags/v2.5.0-rc1
Shivaram Lingamneni 3 年之前
父節點
當前提交
ec375f5bdc
共有 5 個文件被更改,包括 22 次插入42 次删除
  1. 3
    3
      irc/handlers.go
  2. 0
    31
      irc/utils/args.go
  3. 0
    8
      irc/utils/args_test.go
  4. 11
    0
      irc/utils/text.go
  5. 8
    0
      irc/utils/text_test.go

+ 3
- 3
irc/handlers.go 查看文件

@@ -1864,7 +1864,7 @@ func monitorListHandler(server *Server, client *Client, msg ircmsg.IrcMessage, r
1864 1864
 		nickList = append(nickList, replynick)
1865 1865
 	}
1866 1866
 
1867
-	for _, line := range utils.ArgsToStrings(maxLastArgLength, nickList, ",") {
1867
+	for _, line := range utils.BuildTokenLines(maxLastArgLength, nickList, ",") {
1868 1868
 		rb.Add(nil, server.name, RPL_MONLIST, nick, line)
1869 1869
 	}
1870 1870
 
@@ -1890,12 +1890,12 @@ func monitorStatusHandler(server *Server, client *Client, msg ircmsg.IrcMessage,
1890 1890
 	}
1891 1891
 
1892 1892
 	if len(online) > 0 {
1893
-		for _, line := range utils.ArgsToStrings(maxLastArgLength, online, ",") {
1893
+		for _, line := range utils.BuildTokenLines(maxLastArgLength, online, ",") {
1894 1894
 			rb.Add(nil, server.name, RPL_MONONLINE, client.Nick(), line)
1895 1895
 		}
1896 1896
 	}
1897 1897
 	if len(offline) > 0 {
1898
-		for _, line := range utils.ArgsToStrings(maxLastArgLength, offline, ",") {
1898
+		for _, line := range utils.BuildTokenLines(maxLastArgLength, offline, ",") {
1899 1899
 			rb.Add(nil, server.name, RPL_MONOFFLINE, client.Nick(), line)
1900 1900
 		}
1901 1901
 	}

+ 0
- 31
irc/utils/args.go 查看文件

@@ -18,37 +18,6 @@ var (
18 18
 	ErrInvalidParams = errors.New("Invalid parameters")
19 19
 )
20 20
 
21
-// ArgsToStrings takes the arguments and splits them into a series of strings,
22
-// each argument separated by delim and each string bounded by maxLength.
23
-func ArgsToStrings(maxLength int, arguments []string, delim string) []string {
24
-	var messages []string
25
-
26
-	var buffer string
27
-	for {
28
-		if len(arguments) < 1 {
29
-			break
30
-		}
31
-
32
-		if len(buffer) > 0 && maxLength < len(buffer)+len(delim)+len(arguments[0]) {
33
-			messages = append(messages, buffer)
34
-			buffer = ""
35
-			continue
36
-		}
37
-
38
-		if len(buffer) > 0 {
39
-			buffer += delim
40
-		}
41
-		buffer += arguments[0]
42
-		arguments = arguments[1:]
43
-	}
44
-
45
-	if len(buffer) > 0 {
46
-		messages = append(messages, buffer)
47
-	}
48
-
49
-	return messages
50
-}
51
-
52 21
 func StringToBool(str string) (result bool, err error) {
53 22
 	switch strings.ToLower(str) {
54 23
 	case "on", "true", "t", "yes", "y", "enabled":

+ 0
- 8
irc/utils/args_test.go 查看文件

@@ -5,14 +5,6 @@ package utils
5 5
 
6 6
 import "testing"
7 7
 
8
-func TestArgsToStrings(t *testing.T) {
9
-	val := ArgsToStrings(512, []string{"a", "b", "c"}, ",")
10
-	assertEqual(val, []string{"a,b,c"}, t)
11
-
12
-	val = ArgsToStrings(10, []string{"abcd", "efgh", "ijkl"}, ",")
13
-	assertEqual(val, []string{"abcd,efgh", "ijkl"}, t)
14
-}
15
-
16 8
 func TestStringToBool(t *testing.T) {
17 9
 	val, err := StringToBool("on")
18 10
 	assertEqual(val, true, t)

+ 11
- 0
irc/utils/text.go 查看文件

@@ -132,3 +132,14 @@ func (t *TokenLineBuilder) Lines() (result []string) {
132 132
 	}
133 133
 	return
134 134
 }
135
+
136
+// BuildTokenLines is a convenience to apply TokenLineBuilder to a predetermined
137
+// slice of tokens.
138
+func BuildTokenLines(lineLen int, tokens []string, delim string) []string {
139
+	var tl TokenLineBuilder
140
+	tl.Initialize(lineLen, delim)
141
+	for _, arg := range tokens {
142
+		tl.Add(arg)
143
+	}
144
+	return tl.Lines()
145
+}

+ 8
- 0
irc/utils/text_test.go 查看文件

@@ -35,3 +35,11 @@ func TestTokenLineBuilder(t *testing.T) {
35 35
 		t.Errorf("text incorrectly split into lines: %s instead of %s", joined, monteCristo)
36 36
 	}
37 37
 }
38
+
39
+func TestBuildTokenLines(t *testing.T) {
40
+	val := BuildTokenLines(512, []string{"a", "b", "c"}, ",")
41
+	assertEqual(val, []string{"a,b,c"}, t)
42
+
43
+	val = BuildTokenLines(10, []string{"abcd", "efgh", "ijkl"}, ",")
44
+	assertEqual(val, []string{"abcd,efgh", "ijkl"}, t)
45
+}

Loading…
取消
儲存