Add a parse class method to SemVer that parses a SemVer instance from a string and passed format. If the format is omitted, it defaults to SemVer::TAG_FORMAT. By default, the parse still pass if major, minor, or patch isn't found (or omitted from the format), but that can be turned off by passing false for allow_missing.

    SemVer.parse 'v1.2.3-beta'
    SemVer.parse '1-2-3===beta', '%M-%m-%p===%s'
    SemVer.parse 'v1.2', 'v%M.%m'
    SemVer.parse 'v1.2', 'v%M.%m', false  ===> fails and returns nil
Only allow the special bit to be proceeded by a hyphen. This makes the format used for output and parsing more consistent.
ignoring Gemfile.lock
fixing my issues with this pull request - string mutation
Merge branch 'pullreqs/1'

https://github.com/haf/semver/pull/1