Class: Tapioca::Dsl::Compilers::SorbetView

Inherits:
Compiler
  • Object
show all
Extended by:
T::Sig
Defined in:
lib/tapioca/dsl/compilers/sorbet_view.rb

Constant Summary collapse

ConstantType =
type_member { { fixed: T.class_of(::SorbetView) } }

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.gather_constantsObject



21
22
23
# File 'lib/tapioca/dsl/compilers/sorbet_view.rb', line 21

def gather_constants
  [::SorbetView]
end

Instance Method Details

#decorateObject



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/tapioca/dsl/compilers/sorbet_view.rb', line 27

def decorate
  @module_cache = T.let({}, T::Hash[String, RBI::Scope])
  @project = T.let(SrbLens::Project.load_or_index(Dir.pwd), T.untyped)

  # Ensure all controllers are loaded
  Rails.application.eager_load! if defined?(Rails) && Rails.respond_to?(:application)

  controllers = ObjectSpace.each_object(Class).select do |klass|
    klass < ::ActionController::Base && !klass.abstract?
  rescue StandardError
    false
  end

  controllers.each do |controller|
    process_controller(controller)
  end

  generate_ivar_mapping(controllers)
  process_components
  compile_all_templates
end