class XSemVer::SemVer

def format fmt

def format fmt
  fmt = fmt.gsub '%M', @major.to_s
  fmt = fmt.gsub '%m', @minor.to_s
  fmt = fmt.gsub '%p', @patch.to_s
  fmt = fmt.gsub('%s', prerelease? ? "-#{@special}" : '')
  fmt = fmt.gsub('%d', metadata? ? "+#{@metadata}" : '')
  fmt
end