| package version |
| |
| import ( |
| "strconv" |
| "strings" |
| ) |
| |
| type Version string |
| |
| func (me Version) compareTo(other Version) int { |
| var ( |
| meTab = strings.Split(string(me), ".") |
| otherTab = strings.Split(string(other), ".") |
| ) |
| for i, s := range meTab { |
| var meInt, otherInt int |
| meInt, _ = strconv.Atoi(s) |
| if len(otherTab) > i { |
| otherInt, _ = strconv.Atoi(otherTab[i]) |
| } |
| if meInt > otherInt { |
| return 1 |
| } |
| if otherInt > meInt { |
| return -1 |
| } |
| } |
| if len(otherTab) > len(meTab) { |
| return -1 |
| } |
| return 0 |
| } |
| |
| func (me Version) LessThan(other Version) bool { |
| return me.compareTo(other) == -1 |
| } |
| |
| func (me Version) LessThanOrEqualTo(other Version) bool { |
| return me.compareTo(other) <= 0 |
| } |
| |
| func (me Version) GreaterThan(other Version) bool { |
| return me.compareTo(other) == 1 |
| } |
| |
| func (me Version) GreaterThanOrEqualTo(other Version) bool { |
| return me.compareTo(other) >= 0 |
| } |
| |
| func (me Version) Equal(other Version) bool { |
| return me.compareTo(other) == 0 |
| } |