Browse Source

Hide constants

Benedikt Lang 12 years ago
parent
commit
ab6403b31a
1 changed files with 14 additions and 13 deletions
  1. +14
    -13
      semver.go

+ 14
- 13
semver.go View File

@ -8,8 +8,9 @@ import (
"strings" "strings"
) )
const NUMBERS = "0123456789"
const ALPHAS = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-"
const numbers = "0123456789"
const alphas = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-"
const alphanum = alphas + numbers
// Latest fully supported spec version // Latest fully supported spec version
var SPEC_VERSION = Version{ var SPEC_VERSION = Version{
@ -147,7 +148,7 @@ func (v *Version) Validate() error {
if len(pre.VersionStr) == 0 { if len(pre.VersionStr) == 0 {
return fmt.Errorf("Prerelease can not be empty %q", pre.VersionStr) return fmt.Errorf("Prerelease can not be empty %q", pre.VersionStr)
} }
if !containsOnly(pre.VersionStr, NUMBERS+ALPHAS) {
if !containsOnly(pre.VersionStr, alphanum) {
return fmt.Errorf("Invalid character(s) found in prerelease %q", pre.VersionStr) return fmt.Errorf("Invalid character(s) found in prerelease %q", pre.VersionStr)
} }
} }
@ -159,7 +160,7 @@ func (v *Version) Validate() error {
if len(build) == 0 { if len(build) == 0 {
return fmt.Errorf("Build meta data can not be empty %q", build) return fmt.Errorf("Build meta data can not be empty %q", build)
} }
if !containsOnly(build, ALPHAS+NUMBERS) {
if !containsOnly(build, alphanum) {
return fmt.Errorf("Invalid character(s) found in build meta data %q", build) return fmt.Errorf("Invalid character(s) found in build meta data %q", build)
} }
} }
@ -168,12 +169,12 @@ func (v *Version) Validate() error {
return nil return nil
} }
// Alias for Parse
// Alias for Parse, parses version string and returns a validated Version or error
func New(s string) (*Version, error) { func New(s string) (*Version, error) {
return Parse(s) return Parse(s)
} }
// Parses a string to version
// Parses version string and returns a validated Version or error
func Parse(s string) (*Version, error) { func Parse(s string) (*Version, error) {
if len(s) == 0 { if len(s) == 0 {
return nil, errors.New("Version string empty") return nil, errors.New("Version string empty")
@ -186,7 +187,7 @@ func Parse(s string) (*Version, error) {
} }
// Major // Major
if !containsOnly(parts[0], NUMBERS) {
if !containsOnly(parts[0], numbers) {
return nil, fmt.Errorf("Invalid character(s) found in major number %q", parts[0]) return nil, fmt.Errorf("Invalid character(s) found in major number %q", parts[0])
} }
if hasLeadingZeroes(parts[0]) { if hasLeadingZeroes(parts[0]) {
@ -198,7 +199,7 @@ func Parse(s string) (*Version, error) {
} }
// Minor // Minor
if !containsOnly(parts[1], NUMBERS) {
if !containsOnly(parts[1], numbers) {
return nil, fmt.Errorf("Invalid character(s) found in minor number %q", parts[1]) return nil, fmt.Errorf("Invalid character(s) found in minor number %q", parts[1])
} }
if hasLeadingZeroes(parts[1]) { if hasLeadingZeroes(parts[1]) {
@ -230,7 +231,7 @@ func Parse(s string) (*Version, error) {
} }
} }
if !containsOnly(parts[2][:subVersionIndex], NUMBERS) {
if !containsOnly(parts[2][:subVersionIndex], numbers) {
return nil, fmt.Errorf("Invalid character(s) found in patch number %q", parts[2][:subVersionIndex]) return nil, fmt.Errorf("Invalid character(s) found in patch number %q", parts[2][:subVersionIndex])
} }
if hasLeadingZeroes(parts[2][:subVersionIndex]) { if hasLeadingZeroes(parts[2][:subVersionIndex]) {
@ -271,7 +272,7 @@ func Parse(s string) (*Version, error) {
if len(str) == 0 { if len(str) == 0 {
return nil, errors.New("Build meta data is empty") return nil, errors.New("Build meta data is empty")
} }
if !containsOnly(str, ALPHAS+NUMBERS) {
if !containsOnly(str, alphanum) {
return nil, fmt.Errorf("Invalid character(s) found in build meta data %q", str) return nil, fmt.Errorf("Invalid character(s) found in build meta data %q", str)
} }
v.Build = append(v.Build, str) v.Build = append(v.Build, str)
@ -294,7 +295,7 @@ func NewPRVersion(s string) (*PRVersion, error) {
return nil, errors.New("Prerelease is empty") return nil, errors.New("Prerelease is empty")
} }
v := &PRVersion{} v := &PRVersion{}
if containsOnly(s, NUMBERS) {
if containsOnly(s, numbers) {
if hasLeadingZeroes(s) { if hasLeadingZeroes(s) {
return nil, fmt.Errorf("Numeric PreRelease version must not contain leading zeroes %q", s) return nil, fmt.Errorf("Numeric PreRelease version must not contain leading zeroes %q", s)
} }
@ -306,7 +307,7 @@ func NewPRVersion(s string) (*PRVersion, error) {
} }
v.VersionNum = num v.VersionNum = num
v.IsNum = true v.IsNum = true
} else if containsOnly(s, ALPHAS+NUMBERS) {
} else if containsOnly(s, alphanum) {
v.VersionStr = s v.VersionStr = s
v.IsNum = false v.IsNum = false
} else { } else {
@ -377,7 +378,7 @@ func NewBuildVersion(s string) (string, error) {
if len(s) == 0 { if len(s) == 0 {
return "", errors.New("Buildversion is empty") return "", errors.New("Buildversion is empty")
} }
if !containsOnly(s, ALPHAS+NUMBERS) {
if !containsOnly(s, alphanum) {
return "", fmt.Errorf("Invalid character(s) found in build meta data %q", s) return "", fmt.Errorf("Invalid character(s) found in build meta data %q", s)
} }
return s, nil return s, nil


Loading…
Cancel
Save