module Chandler::Refinements::VersionFormat

Monkey patch String to provide conveniences for identifying strings that represent a version, and converting between between tags (e.g “v1.0.2”) and version numbers (“1.0.2”).

Public Instance Methods

version?() click to toggle source

Does this string represent a version?

“1.0.2”.version? # => true “v1.0.2”.version? # => true “nope”.version? # => false “”.version? # => false

# File lib/chandler/refinements/version_format.rb, line 16
def version?
  !!version_number
end
version_number() click to toggle source

The version number portion of the string, with the optional “v” prefix removed.

“1.0.2”.version_number # => “1.0.2” “v1.0.2”.version_number # => “1.0.2” “nope”.version_number # => nil “”.version_number # => nil

# File lib/chandler/refinements/version_format.rb, line 28
def version_number
  self[/^v?(#{Gem::Version::VERSION_PATTERN})$/, 1]
end
version_tag() click to toggle source

The version number reformatted as a tag, by prefixing “v”.

“1.0.2”.version_tag # => “v1.0.2” “v1.0.2”.version_tag # => “v1.0.2” “nope”.version_tag # => nil “”.version_tag # => nil

# File lib/chandler/refinements/version_format.rb, line 39
def version_tag
  number = version_number
  number && "v#{version_number}"
end