Module: Philiprehberger::Semver::Parser
- Defined in:
- lib/philiprehberger/semver/parser.rb
Constant Summary collapse
- PRE_RELEASE_PART =
'(?:-(?<pre>[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))'- BUILD_PART =
'(?:\+(?<build>[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))'- CORE_PART =
'(?<major>0|[1-9]\d*)\.(?<minor>0|[1-9]\d*)\.(?<patch>0|[1-9]\d*)'- SEMVER_REGEX =
/\A#{CORE_PART}#{PRE_RELEASE_PART}?#{BUILD_PART}?\z/
Class Method Summary collapse
Class Method Details
.parse(string) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/philiprehberger/semver/parser.rb', line 11 def self.parse(string) match = SEMVER_REGEX.match(string.to_s.strip) raise Error, "invalid semver: #{string}" unless match Version.new( match[:major], match[:minor], match[:patch], pre_release: match[:pre], build_metadata: match[:build] ) end |