Skip to content

Commit

Permalink
follow latest go-prompt (#31)
Browse files Browse the repository at this point in the history
  • Loading branch information
ktr authored Feb 14, 2018
1 parent 7b0affd commit ac3fc31
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 19 deletions.
35 changes: 22 additions & 13 deletions adapter/gateway/prompt_inputter.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,25 @@ var (
type prompter interface {
Input() string
Select(msg string, opts []string) (string, error)
SetPrefix(prefix string) error
SetPrefix(prefix string)
SetPrefixColor(color prompt.Color) error
}

type RealPrompter struct {
fieldPrompter *prompt.Prompt
currentPrefix string
}

func newRealPrompter() *RealPrompter {
executor := func(in string) {
return
}
completer := func(d prompt.Document) []prompt.Suggest {
return nil
}
p := &RealPrompter{}
p.fieldPrompter = prompt.New(executor, completer, prompt.OptionLivePrefix(p.livePrefix))
return p
}

func (p *RealPrompter) Input() string {
Expand All @@ -43,23 +56,21 @@ func (p *RealPrompter) Select(msg string, opts []string) (string, error) {
return choice, err
}

func (p *RealPrompter) SetPrefix(prefix string) error {
return prompt.OptionPrefix(prefix)(p.fieldPrompter)
func (p *RealPrompter) SetPrefix(prefix string) {
p.currentPrefix = prefix
}

func (p *RealPrompter) SetPrefixColor(color prompt.Color) error {
return prompt.OptionPrefixTextColor(color)(p.fieldPrompter)
}

func (p *RealPrompter) livePrefix() (string, bool) {
return p.currentPrefix, true
}

// mixin go-prompt
func NewPrompt(config *config.Config, env entity.Environment) *Prompt {
executor := func(in string) {
return
}
completer := func(d prompt.Document) []prompt.Suggest {
return nil
}
return newPrompt(&RealPrompter{prompt.New(executor, completer)}, config, env)
return newPrompt(newRealPrompter(), config, env)
}

type Prompt struct {
Expand Down Expand Up @@ -233,9 +244,7 @@ func (i *fieldInputter) inputField(field entity.Field) error {
// increment prompt color to next one
i.color = (i.color + 1) % 16
case entity.PrimitiveField:
if err := i.prompt.SetPrefix(i.makePrefix(field)); err != nil {
return err
}
i.prompt.SetPrefix(i.makePrefix(field))
v, err := i.inputPrimitiveField(f)
if err != nil {
return err
Expand Down
4 changes: 1 addition & 3 deletions adapter/gateway/prompt_inputter_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,7 @@ func (p *mockPrompt) setExpectedSelect(s string, err error) {
p.selectOutputError = err
}

func (p *mockPrompt) SetPrefix(_ string) error {
return nil
}
func (p *mockPrompt) SetPrefix(_ string) {}

func (p *mockPrompt) SetPrefixColor(_ prompt.Color) error {
return nil
Expand Down
6 changes: 3 additions & 3 deletions glide.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit ac3fc31

Please sign in to comment.