Sha256: 1a22e055ad9a37f356ff9302da91472248a3ec91d8f7fbafc4362840f955d610

Contents?: true

Size: 944 Bytes

Versions: 16

Compression:

Stored size: 944 Bytes

Contents

# frozen_string_literal: true
# encoding: utf-8

module Mrss
  module Utils
    extend self

    def print_backtrace(dest=STDERR)
      raise
    rescue => e
      dest.puts e.backtrace.join("\n")
    end

    # Parses the given version string, accounting for suffix information that
    # Gem::Version cannot successfully parse.
    #
    # @param [ String ] version the version to parse
    #
    # @return [ Gem::Version ] the parsed version
    #
    # @raise [ ArgumentError ] if the string cannot be parsed.
    def parse_version(version)
      Gem::Version.new(version)
    rescue ArgumentError
      match = version.match(/\A(?<major>\d+)\.(?<minor>\d+)\.(?<patch>\d+)?(-[A-Za-z\+\d]+)?\z/)
      raise ArgumentError.new("Malformed version number string #{version}") if match.nil?

      Gem::Version.new(
        [
          match[:major],
          match[:minor],
          match[:patch]
        ].join('.')
      )
    end
  end
end

Version data entries

16 entries across 16 versions & 4 rubygems

Version Path
mogno-1.0.0 spec/shared/lib/mrss/utils.rb
mongoid-9.0.0 spec/shared/lib/mrss/utils.rb
mongo-2.20.0 spec/shared/lib/mrss/utils.rb
mongoid-8.0.8 spec/shared/lib/mrss/utils.rb
mongoid-8.1.5 spec/shared/lib/mrss/utils.rb
bson-5.0.0-java spec/shared/lib/mrss/utils.rb
bson-5.0.0 spec/shared/lib/mrss/utils.rb
mongoid-8.1.4 spec/shared/lib/mrss/utils.rb
mongo-2.19.3 spec/shared/lib/mrss/utils.rb
mongo-2.19.2 spec/shared/lib/mrss/utils.rb
mongoid-8.0.7 spec/shared/lib/mrss/utils.rb
mongoid-8.1.3 spec/shared/lib/mrss/utils.rb
mongo-2.19.1 spec/shared/lib/mrss/utils.rb
mongoid-8.1.1 spec/shared/lib/mrss/utils.rb
mongoid-8.1.0 spec/shared/lib/mrss/utils.rb
mongo-2.19.0 spec/shared/lib/mrss/utils.rb