Sha256: 076d62a6f71391bfdc5cc4c7983417d31839ff39e56fd94e31206c93923b3c8c

Contents?: true

Size: 1.15 KB

Versions: 48

Compression:

Stored size: 1.15 KB

Contents

require "terraspace/bundle"
Terraspace::Bundle.setup
begin
  require "zeitwerk"
rescue LoadError => e
  Terraspace::Bundle.handle_already_activated_error(e)
end

module Terraspace
  # These modules are namespaces for user-defined custom helpers
  module Module; end
  module Project; end
  module Stack; end

  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
        loader.push_dir(project_helpers, namespace: Terraspace::Project) if File.exist?(project_helpers)
        loader.log! if ENV["TS_AUTOLOAD_LOG"]
        loader.ignore("#{__dir__}/ext.rb")
        loader.setup
      end

      def project_helpers
        "#{ts_root}/config/helpers"
      end

      # Duplicate definition because autoloader logic runs very early and doesnt have access to core methods yet
      def ts_root
        ENV['TS_ROOT'] || Dir.pwd
      end
    end
  end
end

Version data entries

48 entries across 48 versions & 1 rubygems

Version Path
terraspace-2.2.17 lib/terraspace/autoloader.rb
terraspace-2.2.16 lib/terraspace/autoloader.rb
terraspace-2.2.15 lib/terraspace/autoloader.rb
terraspace-2.2.14 lib/terraspace/autoloader.rb
terraspace-2.2.13 lib/terraspace/autoloader.rb
terraspace-2.2.12 lib/terraspace/autoloader.rb
terraspace-2.2.11 lib/terraspace/autoloader.rb
terraspace-2.2.10 lib/terraspace/autoloader.rb
terraspace-2.2.9 lib/terraspace/autoloader.rb
terraspace-2.2.8 lib/terraspace/autoloader.rb
terraspace-2.2.7 lib/terraspace/autoloader.rb
terraspace-2.2.6 lib/terraspace/autoloader.rb
terraspace-2.2.5 lib/terraspace/autoloader.rb
terraspace-2.2.4 lib/terraspace/autoloader.rb
terraspace-2.2.3 lib/terraspace/autoloader.rb
terraspace-2.2.2 lib/terraspace/autoloader.rb
terraspace-2.2.1 lib/terraspace/autoloader.rb
terraspace-2.2.0 lib/terraspace/autoloader.rb
terraspace-2.1.7 lib/terraspace/autoloader.rb
terraspace-2.1.6 lib/terraspace/autoloader.rb