tapioca 0.6.4 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
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: