Browse Source

consolidate ArgsToStrings

tags/v2.5.0-rc1
Shivaram Lingamneni 3 years ago
parent
commit
ec375f5bdc
5 changed files with 22 additions and 42 deletions
  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 View File

1864
 		nickList = append(nickList, replynick)
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
 		rb.Add(nil, server.name, RPL_MONLIST, nick, line)
1868
 		rb.Add(nil, server.name, RPL_MONLIST, nick, line)
1869
 	}
1869
 	}
1870
 
1870
 
1890
 	}
1890
 	}
1891
 
1891
 
1892
 	if len(online) > 0 {
1892
 	if len(online) > 0 {
1893
-		for _, line := range utils.ArgsToStrings(maxLastArgLength, online, ",") {
1893
+		for _, line := range utils.BuildTokenLines(maxLastArgLength, online, ",") {
1894
 			rb.Add(nil, server.name, RPL_MONONLINE, client.Nick(), line)
1894
 			rb.Add(nil, server.name, RPL_MONONLINE, client.Nick(), line)
1895
 		}
1895
 		}
1896
 	}
1896
 	}
1897
 	if len(offline) > 0 {
1897
 	if len(offline) > 0 {
1898
-		for _, line := range utils.ArgsToStrings(maxLastArgLength, offline, ",") {
1898
+		for _, line := range utils.BuildTokenLines(maxLastArgLength, offline, ",") {
1899
 			rb.Add(nil, server.name, RPL_MONOFFLINE, client.Nick(), line)
1899
 			rb.Add(nil, server.name, RPL_MONOFFLINE, client.Nick(), line)
1900
 		}
1900
 		}
1901
 	}
1901
 	}

+ 0
- 31
irc/utils/args.go View File

18
 	ErrInvalidParams = errors.New("Invalid parameters")
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
 func StringToBool(str string) (result bool, err error) {
21
 func StringToBool(str string) (result bool, err error) {
53
 	switch strings.ToLower(str) {
22
 	switch strings.ToLower(str) {
54
 	case "on", "true", "t", "yes", "y", "enabled":
23
 	case "on", "true", "t", "yes", "y", "enabled":

+ 0
- 8
irc/utils/args_test.go View File

5
 
5
 
6
 import "testing"
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
 func TestStringToBool(t *testing.T) {
8
 func TestStringToBool(t *testing.T) {
17
 	val, err := StringToBool("on")
9
 	val, err := StringToBool("on")
18
 	assertEqual(val, true, t)
10
 	assertEqual(val, true, t)

+ 11
- 0
irc/utils/text.go View File

132
 	}
132
 	}
133
 	return
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 View File

35
 		t.Errorf("text incorrectly split into lines: %s instead of %s", joined, monteCristo)
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…
Cancel
Save