Class: Tapioca::Helpers::Test::DslCompiler::CompilerContext
- Inherits:
-
Object
- Object
- Tapioca::Helpers::Test::DslCompiler::CompilerContext
- Extended by:
- T::Sig
- Defined in:
- lib/tapioca/helpers/test/dsl_compiler.rb
Instance Attribute Summary collapse
-
#compiler_class ⇒ Object
readonly
Returns the value of attribute compiler_class.
-
#other_compiler_classes ⇒ Object
readonly
Returns the value of attribute other_compiler_classes.
Instance Method Summary collapse
- #activate_other_dsl_compilers(compiler_classes) ⇒ Object
- #activated_compiler_classes ⇒ Object
- #errors ⇒ Object
- #gathered_constants ⇒ Object
-
#initialize(compiler_class) ⇒ CompilerContext
constructor
A new instance of CompilerContext.
- #rbi_for(constant_name) ⇒ Object
Constructor Details
#initialize(compiler_class) ⇒ CompilerContext
Returns a new instance of CompilerContext.
63 64 65 66 67 68 |
# File 'lib/tapioca/helpers/test/dsl_compiler.rb', line 63 def initialize(compiler_class) @compiler_class = compiler_class @other_compiler_classes = T.let([], T::Array[T.class_of(Tapioca::Dsl::Compiler)]) @pipeline = T.let(nil, T.nilable(Tapioca::Dsl::Pipeline)) @errors = T.let([], T::Array[String]) end |
Instance Attribute Details
#compiler_class ⇒ Object (readonly)
Returns the value of attribute compiler_class.
57 58 59 |
# File 'lib/tapioca/helpers/test/dsl_compiler.rb', line 57 def compiler_class @compiler_class end |
#other_compiler_classes ⇒ Object (readonly)
Returns the value of attribute other_compiler_classes.
60 61 62 |
# File 'lib/tapioca/helpers/test/dsl_compiler.rb', line 60 def other_compiler_classes @other_compiler_classes end |
Instance Method Details
#activate_other_dsl_compilers(compiler_classes) ⇒ Object
71 72 73 |
# File 'lib/tapioca/helpers/test/dsl_compiler.rb', line 71 def activate_other_dsl_compilers(compiler_classes) @other_compiler_classes = compiler_classes end |
#activated_compiler_classes ⇒ Object
76 77 78 |
# File 'lib/tapioca/helpers/test/dsl_compiler.rb', line 76 def activated_compiler_classes [compiler_class, *other_compiler_classes] end |
#errors ⇒ Object
102 103 104 |
# File 'lib/tapioca/helpers/test/dsl_compiler.rb', line 102 def errors pipeline.errors end |
#gathered_constants ⇒ Object
81 82 83 |
# File 'lib/tapioca/helpers/test/dsl_compiler.rb', line 81 def gathered_constants compiler_class.processable_constants.filter_map(&:name).sort end |
#rbi_for(constant_name) ⇒ Object
86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/tapioca/helpers/test/dsl_compiler.rb', line 86 def rbi_for(constant_name) # Make sure this is a constant that we can handle. unless gathered_constants.include?(constant_name.to_s) raise "`#{constant_name}` is not processable by the `#{compiler_class}` compiler." end file = RBI::File.new(strictness: "strong") constant = Object.const_get(constant_name) compiler = compiler_class.new(pipeline, file.root, constant) compiler.decorate Tapioca::DEFAULT_RBI_FORMATTER.print_file(file) end |