mirror of https://github.com/gobeam/stringy.git
commit
fb0683fbbf
12
README.md
12
README.md
|
@ -54,7 +54,7 @@ Convert string to camel case, snake case, kebab case / slugify, custom delimiter
|
|||
</tr>
|
||||
<tr>
|
||||
<td><a href="#suffixstring-string">Suffix</a></td>
|
||||
<td></td>
|
||||
<td><a href="#acronym-string">Acronym</a></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
@ -357,6 +357,16 @@ Suffix makes sure string has been suffixed with a given string and avoids adding
|
|||
```
|
||||
|
||||
|
||||
#### Acronym() string
|
||||
|
||||
Acronym func returns acronym of input string. You can chain ToUpper() which with make result all upercase or ToLower() which will make result all lower case or Get which will return result as it is
|
||||
|
||||
```go
|
||||
acronym := stringy.New("Laugh Out Loud")
|
||||
fmt.Println(acronym.Acronym().ToLower()) // lol
|
||||
```
|
||||
|
||||
|
||||
## Running the tests
|
||||
|
||||
``` bash
|
||||
|
|
|
@ -2,6 +2,7 @@ package main
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/gobeam/stringy"
|
||||
)
|
||||
|
||||
|
@ -79,4 +80,7 @@ func main() {
|
|||
|
||||
pun := stringy.New("this really is a cliff")
|
||||
fmt.Println(pun.Suffix("hanger")) // this really is a cliffhanger
|
||||
|
||||
acronym := stringy.New("Laugh Out Loud")
|
||||
fmt.Println(acronym.Acronym().ToLower()) // lol
|
||||
}
|
||||
|
|
15
stringy.go
15
stringy.go
|
@ -18,6 +18,7 @@ type input struct {
|
|||
|
||||
// StringManipulation is an interface that holds all abstract methods to manipulate strings
|
||||
type StringManipulation interface {
|
||||
Acronym() StringManipulation
|
||||
Between(start, end string) StringManipulation
|
||||
Boolean() bool
|
||||
CamelCase(rule ...string) string
|
||||
|
@ -50,6 +51,20 @@ func New(val string) StringManipulation {
|
|||
return &input{Input: val}
|
||||
}
|
||||
|
||||
// Acronym func returns acronym of input string.
|
||||
// You can chain to upper which with make result all upercase or ToLower
|
||||
// which will make result all lower case or Get which will return result as it is
|
||||
func (i *input) Acronym() StringManipulation {
|
||||
input := getInput(*i)
|
||||
words := strings.Fields(input)
|
||||
var acronym string
|
||||
for _, word := range words {
|
||||
acronym += string(word[0])
|
||||
}
|
||||
i.Result = acronym
|
||||
return i
|
||||
}
|
||||
|
||||
// Between takes two string params start and end which and returns
|
||||
// value which is in middle of start and end part of input. You can
|
||||
// chain to upper which with make result all upercase or ToLower which
|
||||
|
|
|
@ -6,6 +6,14 @@ import (
|
|||
|
||||
var sm StringManipulation = New("This is example.")
|
||||
|
||||
func TestInput_Acronym(t *testing.T) {
|
||||
acronym := New("Laugh Out Loud")
|
||||
val := acronym.Acronym().Get()
|
||||
if val != "LOL" {
|
||||
t.Errorf("Expected: %s but got: %s", "IS", val)
|
||||
}
|
||||
}
|
||||
|
||||
func TestInput_Between(t *testing.T) {
|
||||
val := sm.Between("This", "example").ToUpper()
|
||||
if val != "IS" {
|
||||
|
|
Loading…
Reference in New Issue