tapioca 0.6.4 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +8 -2
  3. data/README.md +27 -15
  4. data/Rakefile +10 -14
  5. data/lib/tapioca/cli.rb +65 -80
  6. data/lib/tapioca/{generators/base.rb → commands/command.rb} +16 -9
  7. data/lib/tapioca/{generators → commands}/dsl.rb +59 -45
  8. data/lib/tapioca/{generators → commands}/gem.rb +93 -30
  9. data/lib/tapioca/{generators → commands}/init.rb +9 -13
  10. data/lib/tapioca/{generators → commands}/require.rb +8 -10
  11. data/lib/tapioca/commands/todo.rb +84 -0
  12. data/lib/tapioca/commands.rb +13 -0
  13. data/lib/tapioca/dsl/compiler.rb +185 -0
  14. data/lib/tapioca/{compilers/dsl → dsl/compilers}/aasm.rb +12 -9
  15. data/lib/tapioca/{compilers/dsl → dsl/compilers}/action_controller_helpers.rb +13 -20
  16. data/lib/tapioca/{compilers/dsl → dsl/compilers}/action_mailer.rb +10 -8
  17. data/lib/tapioca/{compilers/dsl → dsl/compilers}/active_job.rb +11 -9
  18. data/lib/tapioca/{compilers/dsl → dsl/compilers}/active_model_attributes.rb +13 -11
  19. data/lib/tapioca/{compilers/dsl → dsl/compilers}/active_model_secure_password.rb +10 -12
  20. data/lib/tapioca/{compilers/dsl → dsl/compilers}/active_record_associations.rb +28 -34
  21. data/lib/tapioca/{compilers/dsl → dsl/compilers}/active_record_columns.rb +18 -16
  22. data/lib/tapioca/{compilers/dsl → dsl/compilers}/active_record_enum.rb +14 -12
  23. data/lib/tapioca/{compilers/dsl → dsl/compilers}/active_record_fixtures.rb +10 -8
  24. data/lib/tapioca/dsl/compilers/active_record_relations.rb +712 -0
  25. data/lib/tapioca/{compilers/dsl → dsl/compilers}/active_record_scope.rb +21 -20
  26. data/lib/tapioca/{compilers/dsl → dsl/compilers}/active_record_typed_store.rb +11 -16
  27. data/lib/tapioca/{compilers/dsl → dsl/compilers}/active_resource.rb +10 -8
  28. data/lib/tapioca/{compilers/dsl → dsl/compilers}/active_storage.rb +11 -11
  29. data/lib/tapioca/{compilers/dsl → dsl/compilers}/active_support_concern.rb +19 -14
  30. data/lib/tapioca/{compilers/dsl → dsl/compilers}/active_support_current_attributes.rb +16 -21
  31. data/lib/tapioca/{compilers/dsl → dsl/compilers}/config.rb +10 -8
  32. data/lib/tapioca/{compilers/dsl → dsl/compilers}/frozen_record.rb +13 -11
  33. data/lib/tapioca/{compilers/dsl → dsl/compilers}/identity_cache.rb +23 -22
  34. data/lib/tapioca/{compilers/dsl → dsl/compilers}/mixed_in_class_attributes.rb +12 -10
  35. data/lib/tapioca/{compilers/dsl → dsl/compilers}/protobuf.rb +10 -8
  36. data/lib/tapioca/{compilers/dsl → dsl/compilers}/rails_generators.rb +12 -13
  37. data/lib/tapioca/{compilers/dsl → dsl/compilers}/sidekiq_worker.rb +14 -13
  38. data/lib/tapioca/{compilers/dsl → dsl/compilers}/smart_properties.rb +11 -9
  39. data/lib/tapioca/{compilers/dsl → dsl/compilers}/state_machines.rb +12 -10
  40. data/lib/tapioca/{compilers/dsl → dsl/compilers}/url_helpers.rb +16 -14
  41. data/lib/tapioca/dsl/compilers.rb +31 -0
  42. data/lib/tapioca/{compilers/dsl → dsl}/extensions/frozen_record.rb +2 -2
  43. data/lib/tapioca/dsl/helpers/active_record_column_type_helper.rb +114 -0
  44. data/lib/tapioca/dsl/helpers/active_record_constants_helper.rb +29 -0
  45. data/lib/tapioca/{compilers/dsl → dsl/helpers}/param_helper.rb +2 -2
  46. data/lib/tapioca/{compilers/dsl_compiler.rb → dsl/pipeline.rb} +41 -33
  47. data/lib/tapioca/gem/events.rb +120 -0
  48. data/lib/tapioca/gem/listeners/base.rb +48 -0
  49. data/lib/tapioca/gem/listeners/dynamic_mixins.rb +32 -0
  50. data/lib/tapioca/gem/listeners/methods.rb +183 -0
  51. data/lib/tapioca/gem/listeners/mixins.rb +101 -0
  52. data/lib/tapioca/gem/listeners/remove_empty_payload_scopes.rb +21 -0
  53. data/lib/tapioca/gem/listeners/sorbet_enums.rb +26 -0
  54. data/lib/tapioca/gem/listeners/sorbet_helpers.rb +29 -0
  55. data/lib/tapioca/gem/listeners/sorbet_props.rb +33 -0
  56. data/lib/tapioca/gem/listeners/sorbet_required_ancestors.rb +23 -0
  57. data/lib/tapioca/gem/listeners/sorbet_signatures.rb +79 -0
  58. data/lib/tapioca/gem/listeners/sorbet_type_variables.rb +51 -0
  59. data/lib/tapioca/gem/listeners/subconstants.rb +37 -0
  60. data/lib/tapioca/gem/listeners/yard_doc.rb +96 -0
  61. data/lib/tapioca/gem/listeners.rb +16 -0
  62. data/lib/tapioca/gem/pipeline.rb +365 -0
  63. data/lib/tapioca/helpers/cli_helper.rb +7 -0
  64. data/lib/tapioca/helpers/config_helper.rb +5 -8
  65. data/lib/tapioca/helpers/rbi_helper.rb +17 -0
  66. data/lib/tapioca/helpers/shims_helper.rb +87 -0
  67. data/lib/tapioca/helpers/sorbet_helper.rb +57 -0
  68. data/lib/tapioca/helpers/test/dsl_compiler.rb +118 -0
  69. data/lib/tapioca/helpers/test/isolation.rb +1 -1
  70. data/lib/tapioca/helpers/test/template.rb +13 -2
  71. data/lib/tapioca/internal.rb +17 -10
  72. data/lib/tapioca/rbi_ext/model.rb +2 -48
  73. data/lib/tapioca/rbi_formatter.rb +37 -0
  74. data/lib/tapioca/runtime/dynamic_mixin_compiler.rb +227 -0
  75. data/lib/tapioca/runtime/generic_type_registry.rb +166 -0
  76. data/lib/tapioca/runtime/loader.rb +123 -0
  77. data/lib/tapioca/runtime/reflection.rb +153 -0
  78. data/lib/tapioca/runtime/trackers/autoload.rb +72 -0
  79. data/lib/tapioca/runtime/trackers/constant_definition.rb +44 -0
  80. data/lib/tapioca/runtime/trackers/mixin.rb +80 -0
  81. data/lib/tapioca/runtime/trackers/required_ancestor.rb +50 -0
  82. data/lib/tapioca/{trackers.rb → runtime/trackers.rb} +4 -3
  83. data/lib/tapioca/sorbet_ext/generic_name_patch.rb +33 -15
  84. data/lib/tapioca/sorbet_ext/name_patch.rb +7 -1
  85. data/lib/tapioca/{compilers → static}/requires_compiler.rb +2 -2
  86. data/lib/tapioca/static/symbol_loader.rb +83 -0
  87. data/lib/tapioca/static/symbol_table_parser.rb +63 -0
  88. data/lib/tapioca/version.rb +1 -1
  89. data/lib/tapioca.rb +2 -7
  90. metadata +80 -60
  91. data/lib/tapioca/compilers/dsl/active_record_relations.rb +0 -720
  92. data/lib/tapioca/compilers/dsl/base.rb +0 -195
  93. data/lib/tapioca/compilers/dsl/helper/active_record_constants.rb +0 -27
  94. data/lib/tapioca/compilers/dynamic_mixin_compiler.rb +0 -223
  95. data/lib/tapioca/compilers/sorbet.rb +0 -59
  96. data/lib/tapioca/compilers/symbol_table/symbol_generator.rb +0 -780
  97. data/lib/tapioca/compilers/symbol_table/symbol_loader.rb +0 -90
  98. data/lib/tapioca/compilers/symbol_table_compiler.rb +0 -17
  99. data/lib/tapioca/compilers/todos_compiler.rb +0 -32
  100. data/lib/tapioca/generators/todo.rb +0 -76
  101. data/lib/tapioca/generators.rb +0 -9
  102. data/lib/tapioca/generic_type_registry.rb +0 -164
  103. data/lib/tapioca/helpers/active_record_column_type_helper.rb +0 -108
  104. data/lib/tapioca/loader.rb +0 -119
  105. data/lib/tapioca/reflection.rb +0 -151
  106. data/lib/tapioca/trackers/autoload.rb +0 -70
  107. data/lib/tapioca/trackers/constant_definition.rb +0 -42
  108. data/lib/tapioca/trackers/mixin.rb +0 -78
@@ -0,0 +1,83 @@
1
+ # typed: strict
2
+ # frozen_string_literal: true
3
+
4
+ require "json"
5
+ require "tempfile"
6
+
7
+ module Tapioca
8
+ module Static
9
+ module SymbolLoader
10
+ class << self
11
+ extend T::Sig
12
+ include SorbetHelper
13
+ include Runtime::Reflection
14
+
15
+ sig { returns(T::Set[String]) }
16
+ def payload_symbols
17
+ unless @payload_symbols
18
+ output = symbol_table_json_from("-e ''", table_type: "symbol-table-full-json")
19
+ @payload_symbols = T.let(SymbolTableParser.parse_json(output), T.nilable(T::Set[String]))
20
+ end
21
+
22
+ T.must(@payload_symbols)
23
+ end
24
+
25
+ sig { returns(T::Set[String]) }
26
+ def engine_symbols
27
+ unless @engine_symbols
28
+ @engine_symbols = T.let(load_engine_symbols, T.nilable(T::Set[String]))
29
+ end
30
+ T.must(@engine_symbols)
31
+ end
32
+
33
+ sig { params(gem: Gemfile::GemSpec).returns(T::Set[String]) }
34
+ def gem_symbols(gem)
35
+ symbols_from_paths(gem.files)
36
+ end
37
+
38
+ private
39
+
40
+ sig { params(input: String, table_type: String).returns(String) }
41
+ def symbol_table_json_from(input, table_type: "symbol-table-json")
42
+ sorbet("--no-config", "--quiet", "--print=#{table_type}", input).out
43
+ end
44
+
45
+ sig { returns(T::Set[String]) }
46
+ def load_engine_symbols
47
+ return Set.new unless Object.const_defined?("Rails::Engine")
48
+
49
+ engine = descendants_of(Object.const_get("Rails::Engine"))
50
+ .reject(&:abstract_railtie?)
51
+ .find do |klass|
52
+ name = name_of(klass)
53
+ !name.nil? && payload_symbols.include?(name)
54
+ end
55
+
56
+ return Set.new unless engine
57
+
58
+ paths = engine.config.eager_load_paths.flat_map do |load_path|
59
+ Pathname.glob("#{load_path}/**/*.rb")
60
+ end
61
+
62
+ symbols_from_paths(paths)
63
+ rescue
64
+ Set.new
65
+ end
66
+
67
+ sig { params(paths: T::Array[Pathname]).returns(T::Set[String]) }
68
+ def symbols_from_paths(paths)
69
+ output = T.cast(Tempfile.create("sorbet") do |file|
70
+ file.write(Array(paths).join("\n"))
71
+ file.flush
72
+
73
+ symbol_table_json_from("@#{file.path.shellescape}")
74
+ end, T.nilable(String))
75
+
76
+ return Set.new if output.nil? || output.empty?
77
+
78
+ SymbolTableParser.parse_json(output)
79
+ end
80
+ end
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,63 @@
1
+ # typed: strict
2
+ # frozen_string_literal: true
3
+
4
+ require "json"
5
+ require "tempfile"
6
+
7
+ module Tapioca
8
+ module Static
9
+ class SymbolTableParser
10
+ extend T::Sig
11
+
12
+ sig { params(json_string: String).returns(T::Set[String]) }
13
+ def self.parse_json(json_string)
14
+ obj = JSON.parse(json_string)
15
+
16
+ parser = SymbolTableParser.new
17
+ parser.parse_object(obj)
18
+ parser.symbols
19
+ end
20
+
21
+ sig { returns(T::Set[String]) }
22
+ attr_reader :symbols
23
+
24
+ sig { void }
25
+ def initialize
26
+ @symbols = T.let(Set.new, T::Set[String])
27
+ @parents = T.let([], T::Array[String])
28
+ end
29
+
30
+ sig { params(object: T::Hash[String, T.untyped]).void }
31
+ def parse_object(object)
32
+ children = object.fetch("children", [])
33
+
34
+ children.each do |child|
35
+ kind = child.fetch("kind")
36
+ name = child.fetch("name")
37
+ name = name.fetch("name") if name.is_a?(Hash)
38
+
39
+ next if kind.nil? || name.nil?
40
+
41
+ # TODO: CLASS is removed since v0.4.4730 of Sorbet
42
+ # but keeping here for backward compatibility. Remove
43
+ # once the minimum version is moved past that.
44
+ next unless ["CLASS", "CLASS_OR_MODULE", "STATIC_FIELD"].include?(kind)
45
+ next if name =~ /[<>()$]/
46
+ next if name =~ /^[0-9]+$/
47
+ next if name == "T::Helpers"
48
+
49
+ @symbols.add(fully_qualified_name(name))
50
+
51
+ @parents << name
52
+ parse_object(child)
53
+ @parents.pop
54
+ end
55
+ end
56
+
57
+ sig { params(name: String).returns(String) }
58
+ def fully_qualified_name(name)
59
+ [*@parents, name].join("::")
60
+ end
61
+ end
62
+ end
63
+ end
@@ -2,5 +2,5 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Tapioca
5
- VERSION = "0.6.4"
5
+ VERSION = "0.7.0"
6
6
  end
data/lib/tapioca.rb CHANGED
@@ -14,7 +14,7 @@ module Tapioca
14
14
  def self.silence_warnings(&blk)
15
15
  original_verbosity = $VERBOSE
16
16
  $VERBOSE = nil
17
- Gem::DefaultUserInteraction.use_ui(Gem::SilentUI.new) do
17
+ ::Gem::DefaultUserInteraction.use_ui(::Gem::SilentUI.new) do
18
18
  blk.call
19
19
  end
20
20
  ensure
@@ -28,7 +28,7 @@ module Tapioca
28
28
  TAPIOCA_DIR = T.let("#{SORBET_DIR}/tapioca", String)
29
29
  TAPIOCA_CONFIG_FILE = T.let("#{TAPIOCA_DIR}/config.yml", String)
30
30
 
31
- DEFAULT_COMMAND = T.let("bin/tapioca", String)
31
+ BINARY_FILE = T.let("bin/tapioca", String)
32
32
  DEFAULT_POSTREQUIRE_FILE = T.let("#{TAPIOCA_DIR}/require.rb", String)
33
33
  DEFAULT_RBI_DIR = T.let("#{SORBET_DIR}/rbi", String)
34
34
  DEFAULT_DSL_DIR = T.let("#{DEFAULT_RBI_DIR}/dsl", String)
@@ -43,9 +43,4 @@ module Tapioca
43
43
  }.freeze, T::Hash[String, String])
44
44
  end
45
45
 
46
- require "tapioca/reflection"
47
- require "tapioca/trackers"
48
- require "tapioca/compilers/dsl/base"
49
- require "tapioca/compilers/dynamic_mixin_compiler"
50
- require "tapioca/helpers/active_record_column_type_helper"
51
46
  require "tapioca/version"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tapioca
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.4
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ufuk Kayserilioglu
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: exe
13
13
  cert_chain: []
14
- date: 2022-02-11 00:00:00.000000000 Z
14
+ date: 2022-02-17 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: bundler
@@ -50,7 +50,7 @@ dependencies:
50
50
  version: 0.0.0
51
51
  - - ">="
52
52
  - !ruby/object:Gem::Version
53
- version: 0.0.9
53
+ version: 0.0.12
54
54
  type: :runtime
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
@@ -60,9 +60,9 @@ dependencies:
60
60
  version: 0.0.0
61
61
  - - ">="
62
62
  - !ruby/object:Gem::Version
63
- version: 0.0.9
63
+ version: 0.0.12
64
64
  - !ruby/object:Gem::Dependency
65
- name: sorbet-static
65
+ name: sorbet-runtime
66
66
  requirement: !ruby/object:Gem::Requirement
67
67
  requirements:
68
68
  - - ">="
@@ -76,7 +76,7 @@ dependencies:
76
76
  - !ruby/object:Gem::Version
77
77
  version: 0.5.9204
78
78
  - !ruby/object:Gem::Dependency
79
- name: sorbet-runtime
79
+ name: sorbet-static
80
80
  requirement: !ruby/object:Gem::Requirement
81
81
  requirements:
82
82
  - - ">="
@@ -151,72 +151,92 @@ files:
151
151
  - exe/tapioca
152
152
  - lib/tapioca.rb
153
153
  - lib/tapioca/cli.rb
154
- - lib/tapioca/compilers/dsl/aasm.rb
155
- - lib/tapioca/compilers/dsl/action_controller_helpers.rb
156
- - lib/tapioca/compilers/dsl/action_mailer.rb
157
- - lib/tapioca/compilers/dsl/active_job.rb
158
- - lib/tapioca/compilers/dsl/active_model_attributes.rb
159
- - lib/tapioca/compilers/dsl/active_model_secure_password.rb
160
- - lib/tapioca/compilers/dsl/active_record_associations.rb
161
- - lib/tapioca/compilers/dsl/active_record_columns.rb
162
- - lib/tapioca/compilers/dsl/active_record_enum.rb
163
- - lib/tapioca/compilers/dsl/active_record_fixtures.rb
164
- - lib/tapioca/compilers/dsl/active_record_relations.rb
165
- - lib/tapioca/compilers/dsl/active_record_scope.rb
166
- - lib/tapioca/compilers/dsl/active_record_typed_store.rb
167
- - lib/tapioca/compilers/dsl/active_resource.rb
168
- - lib/tapioca/compilers/dsl/active_storage.rb
169
- - lib/tapioca/compilers/dsl/active_support_concern.rb
170
- - lib/tapioca/compilers/dsl/active_support_current_attributes.rb
171
- - lib/tapioca/compilers/dsl/base.rb
172
- - lib/tapioca/compilers/dsl/config.rb
173
- - lib/tapioca/compilers/dsl/extensions/frozen_record.rb
174
- - lib/tapioca/compilers/dsl/frozen_record.rb
175
- - lib/tapioca/compilers/dsl/helper/active_record_constants.rb
176
- - lib/tapioca/compilers/dsl/identity_cache.rb
177
- - lib/tapioca/compilers/dsl/mixed_in_class_attributes.rb
178
- - lib/tapioca/compilers/dsl/param_helper.rb
179
- - lib/tapioca/compilers/dsl/protobuf.rb
180
- - lib/tapioca/compilers/dsl/rails_generators.rb
181
- - lib/tapioca/compilers/dsl/sidekiq_worker.rb
182
- - lib/tapioca/compilers/dsl/smart_properties.rb
183
- - lib/tapioca/compilers/dsl/state_machines.rb
184
- - lib/tapioca/compilers/dsl/url_helpers.rb
185
- - lib/tapioca/compilers/dsl_compiler.rb
186
- - lib/tapioca/compilers/dynamic_mixin_compiler.rb
187
- - lib/tapioca/compilers/requires_compiler.rb
188
- - lib/tapioca/compilers/sorbet.rb
189
- - lib/tapioca/compilers/symbol_table/symbol_generator.rb
190
- - lib/tapioca/compilers/symbol_table/symbol_loader.rb
191
- - lib/tapioca/compilers/symbol_table_compiler.rb
192
- - lib/tapioca/compilers/todos_compiler.rb
154
+ - lib/tapioca/commands.rb
155
+ - lib/tapioca/commands/command.rb
156
+ - lib/tapioca/commands/dsl.rb
157
+ - lib/tapioca/commands/gem.rb
158
+ - lib/tapioca/commands/init.rb
159
+ - lib/tapioca/commands/require.rb
160
+ - lib/tapioca/commands/todo.rb
161
+ - lib/tapioca/dsl/compiler.rb
162
+ - lib/tapioca/dsl/compilers.rb
163
+ - lib/tapioca/dsl/compilers/aasm.rb
164
+ - lib/tapioca/dsl/compilers/action_controller_helpers.rb
165
+ - lib/tapioca/dsl/compilers/action_mailer.rb
166
+ - lib/tapioca/dsl/compilers/active_job.rb
167
+ - lib/tapioca/dsl/compilers/active_model_attributes.rb
168
+ - lib/tapioca/dsl/compilers/active_model_secure_password.rb
169
+ - lib/tapioca/dsl/compilers/active_record_associations.rb
170
+ - lib/tapioca/dsl/compilers/active_record_columns.rb
171
+ - lib/tapioca/dsl/compilers/active_record_enum.rb
172
+ - lib/tapioca/dsl/compilers/active_record_fixtures.rb
173
+ - lib/tapioca/dsl/compilers/active_record_relations.rb
174
+ - lib/tapioca/dsl/compilers/active_record_scope.rb
175
+ - lib/tapioca/dsl/compilers/active_record_typed_store.rb
176
+ - lib/tapioca/dsl/compilers/active_resource.rb
177
+ - lib/tapioca/dsl/compilers/active_storage.rb
178
+ - lib/tapioca/dsl/compilers/active_support_concern.rb
179
+ - lib/tapioca/dsl/compilers/active_support_current_attributes.rb
180
+ - lib/tapioca/dsl/compilers/config.rb
181
+ - lib/tapioca/dsl/compilers/frozen_record.rb
182
+ - lib/tapioca/dsl/compilers/identity_cache.rb
183
+ - lib/tapioca/dsl/compilers/mixed_in_class_attributes.rb
184
+ - lib/tapioca/dsl/compilers/protobuf.rb
185
+ - lib/tapioca/dsl/compilers/rails_generators.rb
186
+ - lib/tapioca/dsl/compilers/sidekiq_worker.rb
187
+ - lib/tapioca/dsl/compilers/smart_properties.rb
188
+ - lib/tapioca/dsl/compilers/state_machines.rb
189
+ - lib/tapioca/dsl/compilers/url_helpers.rb
190
+ - lib/tapioca/dsl/extensions/frozen_record.rb
191
+ - lib/tapioca/dsl/helpers/active_record_column_type_helper.rb
192
+ - lib/tapioca/dsl/helpers/active_record_constants_helper.rb
193
+ - lib/tapioca/dsl/helpers/param_helper.rb
194
+ - lib/tapioca/dsl/pipeline.rb
193
195
  - lib/tapioca/executor.rb
196
+ - lib/tapioca/gem/events.rb
197
+ - lib/tapioca/gem/listeners.rb
198
+ - lib/tapioca/gem/listeners/base.rb
199
+ - lib/tapioca/gem/listeners/dynamic_mixins.rb
200
+ - lib/tapioca/gem/listeners/methods.rb
201
+ - lib/tapioca/gem/listeners/mixins.rb
202
+ - lib/tapioca/gem/listeners/remove_empty_payload_scopes.rb
203
+ - lib/tapioca/gem/listeners/sorbet_enums.rb
204
+ - lib/tapioca/gem/listeners/sorbet_helpers.rb
205
+ - lib/tapioca/gem/listeners/sorbet_props.rb
206
+ - lib/tapioca/gem/listeners/sorbet_required_ancestors.rb
207
+ - lib/tapioca/gem/listeners/sorbet_signatures.rb
208
+ - lib/tapioca/gem/listeners/sorbet_type_variables.rb
209
+ - lib/tapioca/gem/listeners/subconstants.rb
210
+ - lib/tapioca/gem/listeners/yard_doc.rb
211
+ - lib/tapioca/gem/pipeline.rb
194
212
  - lib/tapioca/gemfile.rb
195
- - lib/tapioca/generators.rb
196
- - lib/tapioca/generators/base.rb
197
- - lib/tapioca/generators/dsl.rb
198
- - lib/tapioca/generators/gem.rb
199
- - lib/tapioca/generators/init.rb
200
- - lib/tapioca/generators/require.rb
201
- - lib/tapioca/generators/todo.rb
202
- - lib/tapioca/generic_type_registry.rb
203
- - lib/tapioca/helpers/active_record_column_type_helper.rb
204
213
  - lib/tapioca/helpers/cli_helper.rb
205
214
  - lib/tapioca/helpers/config_helper.rb
215
+ - lib/tapioca/helpers/rbi_helper.rb
216
+ - lib/tapioca/helpers/shims_helper.rb
217
+ - lib/tapioca/helpers/sorbet_helper.rb
206
218
  - lib/tapioca/helpers/test/content.rb
219
+ - lib/tapioca/helpers/test/dsl_compiler.rb
207
220
  - lib/tapioca/helpers/test/isolation.rb
208
221
  - lib/tapioca/helpers/test/template.rb
209
222
  - lib/tapioca/internal.rb
210
- - lib/tapioca/loader.rb
211
223
  - lib/tapioca/rbi_ext/model.rb
212
- - lib/tapioca/reflection.rb
224
+ - lib/tapioca/rbi_formatter.rb
225
+ - lib/tapioca/runtime/dynamic_mixin_compiler.rb
226
+ - lib/tapioca/runtime/generic_type_registry.rb
227
+ - lib/tapioca/runtime/loader.rb
228
+ - lib/tapioca/runtime/reflection.rb
229
+ - lib/tapioca/runtime/trackers.rb
230
+ - lib/tapioca/runtime/trackers/autoload.rb
231
+ - lib/tapioca/runtime/trackers/constant_definition.rb
232
+ - lib/tapioca/runtime/trackers/mixin.rb
233
+ - lib/tapioca/runtime/trackers/required_ancestor.rb
213
234
  - lib/tapioca/sorbet_ext/fixed_hash_patch.rb
214
235
  - lib/tapioca/sorbet_ext/generic_name_patch.rb
215
236
  - lib/tapioca/sorbet_ext/name_patch.rb
216
- - lib/tapioca/trackers.rb
217
- - lib/tapioca/trackers/autoload.rb
218
- - lib/tapioca/trackers/constant_definition.rb
219
- - lib/tapioca/trackers/mixin.rb
237
+ - lib/tapioca/static/requires_compiler.rb
238
+ - lib/tapioca/static/symbol_loader.rb
239
+ - lib/tapioca/static/symbol_table_parser.rb
220
240
  - lib/tapioca/version.rb
221
241
  homepage: https://github.com/Shopify/tapioca
222
242
  licenses: