Sha256: 8b6abc90011d6720ea9f458399802b518d4a70cc40904d68fadfca5e25bad009

Contents?: true

Size: 739 Bytes

Versions: 39

Compression:

Stored size: 739 Bytes

Contents

require "zeitwerk"

module Kubes
  class Autoloader
    class Inflector < Zeitwerk::Inflector
      def camelize(basename, _abspath)
        map = { cli: "CLI", version: "VERSION" }
        map[basename.to_sym] || super
      end
    end

    class << self
      def setup
        loader = Zeitwerk::Loader.new
        loader.inflector = Inflector.new
        loader.push_dir(File.dirname(__dir__)) # lib

        helpers = "#{kubes_root}/.kubes/helpers"
        loader.push_dir(helpers) if File.exist?(helpers) # project helpers

        loader.setup
      end

      # Autoloader runs so early that Kubes.root is not available, so we must declare it here
      def kubes_root
        ENV['KUBES_ROOT'] || '.'
      end
    end
  end
end

Version data entries

39 entries across 39 versions & 1 rubygems

Version Path
kubes-0.9.3 lib/kubes/autoloader.rb
kubes-0.9.2 lib/kubes/autoloader.rb
kubes-0.9.1 lib/kubes/autoloader.rb
kubes-0.9.0 lib/kubes/autoloader.rb
kubes-0.8.10 lib/kubes/autoloader.rb
kubes-0.8.9 lib/kubes/autoloader.rb
kubes-0.8.8 lib/kubes/autoloader.rb
kubes-0.8.7 lib/kubes/autoloader.rb
kubes-0.8.6 lib/kubes/autoloader.rb
kubes-0.8.5 lib/kubes/autoloader.rb
kubes-0.8.4 lib/kubes/autoloader.rb
kubes-0.8.3 lib/kubes/autoloader.rb
kubes-0.8.2 lib/kubes/autoloader.rb
kubes-0.8.1 lib/kubes/autoloader.rb
kubes-0.8.0 lib/kubes/autoloader.rb
kubes-0.7.10 lib/kubes/autoloader.rb
kubes-0.7.9 lib/kubes/autoloader.rb
kubes-0.7.8 lib/kubes/autoloader.rb
kubes-0.7.7 lib/kubes/autoloader.rb
kubes-0.7.6 lib/kubes/autoloader.rb