Code cleaning, update Readme

This commit is contained in:
probandula
2016-10-26 18:32:11 +02:00
parent 3f7f13785f
commit eef61fca27
9 changed files with 1165 additions and 66 deletions

44
char.go Normal file
View File

@@ -0,0 +1,44 @@
package figlet4go
import (
"errors"
"strings"
"github.com/fatih/color"
)
type AsciiChar struct {
// Slice with the lines of the Char
Lines []string
// Color of the char
Color color.Attribute
}
func NewAsciiChar(font *font, char rune) (*AsciiChar, error) {
// If not ascii, throw an error
if char < 0 || char > 127 {
return nil, errors.New("Not Ascii")
}
height := font.height
beginRow := (int(char) - 32) * height
lines := make([]string, height)
for i := 0; i < height; i++ {
row := font.fontSlice[beginRow + i]
row = strings.Replace(row, "@", "", -1)
row = strings.Replace(row, font.hardblank, " ", -1)
lines[i] = row
}
return &AsciiChar{Lines: lines}, nil
}
// Return a line of the char as string with color if set
func (char *AsciiChar) GetLine(index int) string {
if char.Color != 0 {
colorFunc := color.New(char.Color).SprintFunc()
return colorFunc(char.Lines[index])
}
return char.Lines[index]
}