Class: Jets::Autoloaders::Gem

Inherits:
Object
  • Object
show all
Defined in:
lib/jets/autoloaders/gem.rb

Overview

for jets gem itself

Instance Method Summary collapse

Instance Method Details

#autoloaderObject



18
19
20
21
22
23
24
25
26
27
# File 'lib/jets/autoloaders/gem.rb', line 18

def autoloader
  loader = Zeitwerk::Loader.new
  loader.tag = "jets.gem"
  loader.inflector = GemInflector.new
  loader.push_dir(lib)
  loader.do_not_eager_load(do_not_eager_load)
  loader.ignore(ignore_paths) # loader.ignore requires full dir or path
  # loader.log!
  loader
end

#do_not_eager_loadObject

For jets/info.rb see Jets::Info property Middleware for why we do not eager load.



34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/jets/autoloaders/gem.rb', line 34

def do_not_eager_load
  paths = %w[
    jets/info.rb
    jets/spec_helpers
    jets/spec_helpers.rb
    jets/commands
    jets/commands.rb
    jets/generators
    jets/generators.rb
  ]
  paths.map { |path| "#{lib}/#{path}" } # do_not_eager_load requires full dir or path
end

#ignore_pathsObject



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/jets/autoloaders/gem.rb', line 47

def ignore_paths
  # commands
  paths = %w[
    jets/application/dummy_config.rb
    jets/application/dummy_erb_compiler.rb
    jets/builders/rackup_wrappers
    jets/builders/templates
    jets/commands/templates
    jets/controller/middleware/webpacker_setup.rb
    jets/core_ext
    jets/core_ext.rb
    jets/generator
    jets/overrides
    jets/ruby_version_check.rb
    jets/cli.rb
    jets/commands.rb
    jets/generators/jets/app/ignore
    jets/tasks.rb
  ]
  paths.map { |path| "#{lib}/#{path}" }
end

#libObject



29
30
31
# File 'lib/jets/autoloaders/gem.rb', line 29

def lib
  File.expand_path("#{__dir__}/../..") # jets/lib
end