Class: Terraspace::Autoloader

Inherits:
Object
  • Object
show all
Defined in:
lib/terraspace/autoloader.rb

Defined Under Namespace

Classes: Inflector

Class Method Summary collapse

Class Method Details

.project_helpersObject



30
31
32
# File 'lib/terraspace/autoloader.rb', line 30

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

.setupObject



20
21
22
23
24
25
26
27
28
# File 'lib/terraspace/autoloader.rb', line 20

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

.ts_rootObject

Duplicate definition because autoloader logic runs very early and doesnt have access to core methods yet



35
36
37
# File 'lib/terraspace/autoloader.rb', line 35

def ts_root
  ENV['TS_ROOT'] || Dir.pwd
end