Sha256: 7a887af6f17ec897e61067cd751536aecc33ecb4f4bf18735c94732cab5a2bec

Contents?: true

Size: 1.07 KB

Versions: 7

Compression:

Stored size: 1.07 KB

Contents

# frozen_string_literal: true

# Make sure Core is loaded
require "ruby-next"

module RubyNext
  module Language
    class << self
      def setup_gem_load_path(lib_dir = "lib", rbnext_dir: RUBY_NEXT_DIR)
        called_from = caller_locations(1, 1).first.path
        dirname = File.dirname(called_from)

        loop do
          basename = File.basename(dirname)
          raise "Couldn't find gem's load dir: #{lib_dir}" if basename == dirname

          break if basename == lib_dir

          dirname = File.dirname(basename)
        end

        current_index = $LOAD_PATH.index(dirname)

        raise "Gem's lib is not in the $LOAD_PATH: #{dirname}" if current_index.nil?

        version = RubyNext.next_version

        loop do
          break unless version

          version_dir = File.join(dirname, rbnext_dir, version.segments[0..1].join("."))

          if File.exist?(version_dir)
            $LOAD_PATH.insert current_index, version_dir
            current_index += 1
          end

          version = RubyNext.next_version(version)
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 2 rubygems

Version Path
ruby-next-core-0.4.0 lib/ruby-next/language/setup.rb
ruby-next-0.3.0 lib/ruby-next/language/setup.rb
ruby-next-core-0.3.0 lib/ruby-next/language/setup.rb
ruby-next-0.2.0 lib/ruby-next/language/setup.rb
ruby-next-core-0.2.0 lib/ruby-next/language/setup.rb
ruby-next-0.1.1 lib/ruby-next/language/setup.rb
ruby-next-0.1.0 lib/ruby-next/language/setup.rb