oh-my-posh/src/segment_ruby.go

58 lines
1.2 KiB
Go
Raw Normal View History

2020-10-25 08:32:14 -07:00
package main
type ruby struct {
2021-12-03 11:19:57 -08:00
language
2020-10-25 08:32:14 -07:00
}
func (r *ruby) string() string {
2022-01-22 10:46:56 -08:00
segmentTemplate := r.language.props.getString(SegmentTemplate, "")
if len(segmentTemplate) == 0 {
version := r.language.string()
// asdf default non-set version
if version == "______" {
return ""
}
return version
2020-10-25 08:32:14 -07:00
}
2022-01-22 10:46:56 -08:00
return r.language.renderTemplate(segmentTemplate, r)
2020-10-25 08:32:14 -07:00
}
2022-01-01 11:09:52 -08:00
func (r *ruby) init(props Properties, env Environment) {
2021-12-03 11:19:57 -08:00
r.language = language{
2021-02-03 10:33:05 -08:00
env: env,
props: props,
extensions: []string{"*.rb", "Rakefile", "Gemfile"},
commands: []*cmd{
{
executable: "rbenv",
args: []string{"version-name"},
regex: `(?P<version>.+)`,
},
{
executable: "rvm-prompt",
args: []string{"i", "v", "g"},
regex: `(?P<version>.+)`,
},
{
executable: "chruby",
args: []string(nil),
regex: `\* (?P<version>.+)\n`,
},
{
executable: "asdf",
args: []string{"current", "ruby"},
regex: `ruby\s+(?P<version>[^\s]+)\s+`,
},
{
executable: "ruby",
args: []string{"--version"},
regex: `ruby\s+(?P<version>[^\s]+)\s+`,
},
},
2020-10-25 08:32:14 -07:00
}
}
2021-02-03 10:33:05 -08:00
func (r *ruby) enabled() bool {
return r.language.enabled()
2020-10-25 08:32:14 -07:00
}