Merge pull request #20 from gobeam/feat/acronym

Feat/acronym
This commit is contained in:
Roshan Ranabhat 2023-01-20 11:12:48 +05:45 committed by GitHub
commit fb0683fbbf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 38 additions and 1 deletions

View File

@ -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

View File

@ -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
}

View File

@ -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

View File

@ -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" {