diff --git a/cmd/pgcql-cli/main.go b/cmd/pgcql-cli/main.go index 11049f2..2b150bc 100644 --- a/cmd/pgcql-cli/main.go +++ b/cmd/pgcql-cli/main.go @@ -14,8 +14,7 @@ func main() { flag.StringVar(&serverChoiceColumn, "s", "text", "column for cql.serverChoice") def := pgcql.NewPgDefinition() if serverChoiceColumn != "" { - serverChoice := &pgcql.FieldString{} - serverChoice.WithFullText("english").SetColumn(serverChoiceColumn) + serverChoice := pgcql.NewFieldString().WithFullText("english").WithColumn(serverChoiceColumn) def.AddField("cql.serverChoice", serverChoice) } flag.Parse() @@ -26,8 +25,7 @@ func main() { } for i := 0; i < len(flag.Args()); i++ { if i < len(flag.Args())-1 { - field := &pgcql.FieldString{} - field.WithLikeOps() + field := pgcql.NewFieldString().WithLikeOps() def.AddField(flag.Args()[i], field) continue } diff --git a/pgcql/pg_field_string.go b/pgcql/pg_field_string.go index 6c936dd..e67211c 100644 --- a/pgcql/pg_field_string.go +++ b/pgcql/pg_field_string.go @@ -13,7 +13,16 @@ type FieldString struct { enableExact bool } -func (f *FieldString) WithFullText(language string) Field { +func NewFieldString() *FieldString { + return &FieldString{} +} + +func (f *FieldString) WithColumn(column string) *FieldString { + f.column = column + return f +} + +func (f *FieldString) WithFullText(language string) *FieldString { if language == "" { f.language = "simple" } else { @@ -22,13 +31,13 @@ func (f *FieldString) WithFullText(language string) Field { return f } -func (f *FieldString) WithLikeOps() Field { +func (f *FieldString) WithLikeOps() *FieldString { f.enableExact = true f.enableLike = true return f } -func (f *FieldString) WithExact() Field { +func (f *FieldString) WithExact() *FieldString { f.enableExact = true return f } diff --git a/pgcql/pgcql_test.go b/pgcql/pgcql_test.go index 561af00..85c534c 100644 --- a/pgcql/pgcql_test.go +++ b/pgcql/pgcql_test.go @@ -27,8 +27,7 @@ func TestParsing(t *testing.T) { assert.Equal(t, title.GetColumn(), "Title", "GetColumn() should return the column name") - author := &FieldString{} - author.WithLikeOps().SetColumn("Author") + author := NewFieldString().WithLikeOps().WithColumn("Author") serverChoice := &FieldString{} serverChoice.WithExact().SetColumn("T")