module RubyNext

Constants

LAST_MINOR_VERSIONS

Defines last minor version for every major version

LATEST_VERSION
MIN_SUPPORTED_VERSION

Mininum Ruby version supported by RubyNext

NEXT_VERSION

A virtual version number used for proposed features

RUBY_NEXT_DIR

Where to store transpiled files (relative from the project LOAD_PATH, usually `lib/`)

VERSION

Attributes

debug_enabled[R]
debug_filter[R]
silence_warnings[RW]

Public Class Methods

current_ruby_version() click to toggle source
# File lib/ruby-next/config.rb, line 24
def current_ruby_version
  "2.6.5"
end
debug_enabled=(val) click to toggle source
# File lib/ruby-next/logging.rb, line 24
def debug_enabled=(val)
  return if val.nil?

  @debug_enabled = !(val == "false" || val == "0")

  return unless debug_enabled

  return if val == "true" || val == "1"

  @debug_filter = val
end
debug_source(source, filepath = nil) click to toggle source
# File lib/ruby-next/logging.rb, line 16
def debug_source(source, filepath = nil)
  return unless debug_enabled

  return if debug_filter && !filepath.include?(debug_filter)

  $stdout.puts Utils.source_with_lines(source, filepath)
end
next_ruby_version(version = current_ruby_version) click to toggle source
# File lib/ruby-next/config.rb, line 33
def next_ruby_version(version = current_ruby_version)
  return if version == Gem::Version.new(NEXT_VERSION)

  major, minor = Gem::Version.new(version).segments.map(&:to_i)

  return Gem::Version.new(NEXT_VERSION) 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
warn(msg) click to toggle source
# File lib/ruby-next/logging.rb, line 10
def warn(msg)
  return if silence_warnings

  Kernel.warn msg
end