Class: Tapioca::Dsl::Compilers::PhlexSorbet

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

Overview

Generates RBI files for Phlex::Sorbet components.

This compiler generates:

  • Instance methods for direct prop access (user_id, notify, etc.)

  • A typed ‘initialize` signature derived from the component’s ‘Props` struct

Constant Summary collapse

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

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.gather_constantsObject



30
31
32
33
34
# File 'lib/tapioca/dsl/compilers/phlex_sorbet.rb', line 30

def self.gather_constants
  all_classes.select do |c|
    c.is_a?(Class) && c.included_modules.include?(::Phlex::Sorbet)
  end
end

Instance Method Details

#decorateObject



21
22
23
24
25
26
27
# File 'lib/tapioca/dsl/compilers/phlex_sorbet.rb', line 21

def decorate
  root.create_path(constant) do |klass|
    generate_prop_accessors(klass) if props_class
    generate_new_method(klass)
    generate_initialize_method(klass)
  end
end