package syw

import "strings"

// Ref is an object representing a commit in a repository.
type Ref struct {
	Repo *Repository
	Name string
	Hash string
}

func (r Ref) IsBranch() bool { return strings.HasPrefix(r.Name, "refs/heads/") }
func (r Ref) IsTag() bool    { return strings.HasPrefix(r.Name, "refs/tags/") }

// ShortName returns the branch or tag name with "refs/[heads|tags]/" trimmed off.
func (r Ref) ShortName() string {
	if r.IsBranch() {
		return r.Name[11:]
	} else if r.IsTag() {
		return r.Name[10:]
	} else {
		return r.Name
	}
}