Sha256: ef5fc481f90bc1752661bcca039eb4ec7f32d949c8be2f19ad23a7c240b43340

Contents?: true

Size: 1.59 KB

Versions: 13

Compression:

Stored size: 1.59 KB

Contents

module RubyDep
  class Travis
    class RubyVersion
      REGEXP = /^
      (?:
       (?<engine>ruby|jruby)
      -)?
        (?<version>\d+\.\d+\.\d+(?:\.\d+)?)
      (?:-p\d+)?
      (?:-clang)?
      $/x

      class Error < RuntimeError
        class Unrecognized < Error
          def initialize(invalid_version_string)
            @invalid_version_string = invalid_version_string
          end

          def message
            "Unrecognized Ruby version: #{@invalid_version_string.inspect}"
          end

          class JRubyVersion < Unrecognized
            def message
              "Unrecognized JRuby version: #{@invalid_version_string.inspect}"
            end
          end
        end
      end

      def initialize(travis_version_string)
        ruby_version_string = version_for(travis_version_string)
        @version = Gem::Version.new(ruby_version_string)
      end

      def segments
        @version.segments
      end

      private

      def version_for(travis_version_string)
        match = REGEXP.match(travis_version_string)
        raise Error::Unrecognized, travis_version_string unless match
        return match[:version] unless match[:engine]
        return jruby_version(match[:version]) if match[:engine] == 'jruby'
        match[:version] # if match[:engine] == 'ruby'
      end

      def jruby_version(version)
        return '2.3.0' if version == '9.1.2.0'
        return '2.3.0' if version == '9.1.0.0'
        return '2.2.3' if version == '9.0.5.0'
        return '2.2.2' if version == '9.0.4.0'
        raise Error::Unrecognized::JRubyVersion, version
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 7 rubygems

Version Path
chatops-rpc-0.0.2 fixtures/chatops-controller-example/vendor/bundle/ruby/2.5.0/gems/ruby_dep-1.5.0/lib/ruby_dep/travis/ruby_version.rb
chatops-rpc-0.0.1 fixtures/chatops-controller-example/vendor/bundle/ruby/2.5.0/gems/ruby_dep-1.5.0/lib/ruby_dep/travis/ruby_version.rb
alimentos-alu0100945645-0.1.0 vendor/bundle/ruby/2.3.0/gems/ruby_dep-1.5.0/lib/ruby_dep/travis/ruby_version.rb
alimentos-alu0100945645-1.0.0 vendor/bundle/ruby/2.3.0/gems/ruby_dep-1.5.0/lib/ruby_dep/travis/ruby_version.rb
comiditaULL-0.1.1 vendor/bundle/ruby/2.3.0/gems/ruby_dep-1.5.0/lib/ruby_dep/travis/ruby_version.rb
comidita_ull-0.1.1 vendor/bundle/ruby/2.3.0/gems/ruby_dep-1.5.0/lib/ruby_dep/travis/ruby_version.rb
comidita_ull-0.1.0 vendor/bundle/ruby/2.3.0/gems/ruby_dep-1.5.0/lib/ruby_dep/travis/ruby_version.rb
gameboard-3.1.0 vendor/bundle/ruby/2.3.0/gems/ruby_dep-1.5.0/lib/ruby_dep/travis/ruby_version.rb
gameboard-3.0.0 vendor/bundle/ruby/2.3.0/gems/ruby_dep-1.5.0/lib/ruby_dep/travis/ruby_version.rb
ruby_dep-1.5.0 lib/ruby_dep/travis/ruby_version.rb
vagrant-unbundled-1.8.5.2 vendor/bundle/ruby/2.3.0/gems/ruby_dep-1.4.0/lib/ruby_dep/travis/ruby_version.rb
vagrant-unbundled-1.8.5.1 vendor/bundle/ruby/2.3.0/gems/ruby_dep-1.4.0/lib/ruby_dep/travis/ruby_version.rb
ruby_dep-1.4.0 lib/ruby_dep/travis/ruby_version.rb