Sha256: 8f42c617b615fad0660cf5a8e52ad58abbe34996c7250f593249e5c849fbf1ef

Contents?: true

Size: 1.05 KB

Versions: 6

Compression:

Stored size: 1.05 KB

Contents

# frozen_string_literal: true

require "ruby-next/version"

module RubyNext
  # Mininum Ruby version supported by RubyNext
  MIN_SUPPORTED_VERSION = Gem::Version.new("2.2.0")

  # Where to store transpiled files (relative from the project LOAD_PATH, usually `lib/`)
  RUBY_NEXT_DIR = ".rbnext"

  # Defines last minor version for every major version
  LAST_MINOR_VERSIONS = {
    2 => 8, # 2.8 is required for backward compatibility: some gems already uses it
    3 => 0
  }.freeze

  LATEST_VERSION = [3, 0].freeze

  class << self
    def next_version(version = RUBY_VERSION)
      major, minor = Gem::Version.new(version).segments.map(&:to_i)

      return if major >= LATEST_VERSION.first && minor >= LATEST_VERSION.last

      nxt =
        if LAST_MINOR_VERSIONS[major] == minor
          "#{major + 1}.0.0"
        else
          "#{major}.#{minor + 1}.0"
        end

      Gem::Version.new(nxt)
    end
  end

  require "ruby-next/setup_self"
  require "ruby-next/core"
  require "ruby-next/core_ext" if RubyNext::Core.core_ext?
  require "ruby-next/logging"
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
ruby-next-core-0.10.5 lib/ruby-next.rb
ruby-next-core-0.10.4 lib/ruby-next.rb
ruby-next-core-0.10.3 lib/ruby-next.rb
ruby-next-core-0.10.2 lib/ruby-next.rb
ruby-next-core-0.10.1 lib/ruby-next.rb
ruby-next-core-0.10.0 lib/ruby-next.rb