tapioca 0.6.1 → 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 (109) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +13 -2
  3. data/README.md +79 -25
  4. data/Rakefile +10 -14
  5. data/lib/tapioca/cli.rb +66 -80
  6. data/lib/tapioca/{generators/base.rb → commands/command.rb} +17 -10
  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 +32 -24
  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 +29 -35
  21. data/lib/tapioca/{compilers/dsl → dsl/compilers}/active_record_columns.rb +26 -24
  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 +12 -17
  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 +28 -25
  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 +13 -14
  37. data/lib/tapioca/{compilers/dsl → dsl/compilers}/sidekiq_worker.rb +14 -13
  38. data/lib/tapioca/{compilers/dsl → dsl/compilers}/smart_properties.rb +12 -13
  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/gemfile.rb +44 -20
  64. data/lib/tapioca/helpers/cli_helper.rb +16 -8
  65. data/lib/tapioca/helpers/config_helper.rb +113 -0
  66. data/lib/tapioca/helpers/rbi_helper.rb +17 -0
  67. data/lib/tapioca/helpers/shims_helper.rb +87 -0
  68. data/lib/tapioca/helpers/sorbet_helper.rb +57 -0
  69. data/lib/tapioca/helpers/test/dsl_compiler.rb +118 -0
  70. data/lib/tapioca/helpers/test/isolation.rb +1 -1
  71. data/lib/tapioca/helpers/test/template.rb +13 -2
  72. data/lib/tapioca/internal.rb +17 -10
  73. data/lib/tapioca/rbi_ext/model.rb +2 -48
  74. data/lib/tapioca/rbi_formatter.rb +37 -0
  75. data/lib/tapioca/runtime/dynamic_mixin_compiler.rb +227 -0
  76. data/lib/tapioca/runtime/generic_type_registry.rb +166 -0
  77. data/lib/tapioca/runtime/loader.rb +123 -0
  78. data/lib/tapioca/runtime/reflection.rb +153 -0
  79. data/lib/tapioca/runtime/trackers/autoload.rb +72 -0
  80. data/lib/tapioca/runtime/trackers/constant_definition.rb +44 -0
  81. data/lib/tapioca/runtime/trackers/mixin.rb +80 -0
  82. data/lib/tapioca/runtime/trackers/required_ancestor.rb +50 -0
  83. data/lib/tapioca/{trackers.rb → runtime/trackers.rb} +4 -3
  84. data/lib/tapioca/sorbet_ext/generic_name_patch.rb +110 -54
  85. data/lib/tapioca/sorbet_ext/name_patch.rb +7 -1
  86. data/lib/tapioca/{compilers → static}/requires_compiler.rb +5 -12
  87. data/lib/tapioca/static/symbol_loader.rb +83 -0
  88. data/lib/tapioca/static/symbol_table_parser.rb +63 -0
  89. data/lib/tapioca/version.rb +1 -1
  90. data/lib/tapioca.rb +2 -7
  91. metadata +82 -62
  92. data/lib/tapioca/compilers/dsl/active_record_relations.rb +0 -711
  93. data/lib/tapioca/compilers/dsl/base.rb +0 -179
  94. data/lib/tapioca/compilers/dsl/helper/active_record_constants.rb +0 -27
  95. data/lib/tapioca/compilers/dynamic_mixin_compiler.rb +0 -198
  96. data/lib/tapioca/compilers/sorbet.rb +0 -59
  97. data/lib/tapioca/compilers/symbol_table/symbol_generator.rb +0 -780
  98. data/lib/tapioca/compilers/symbol_table/symbol_loader.rb +0 -90
  99. data/lib/tapioca/compilers/symbol_table_compiler.rb +0 -17
  100. data/lib/tapioca/compilers/todos_compiler.rb +0 -32
  101. data/lib/tapioca/generators/todo.rb +0 -76
  102. data/lib/tapioca/generators.rb +0 -9
  103. data/lib/tapioca/generic_type_registry.rb +0 -149
  104. data/lib/tapioca/helpers/active_record_column_type_helper.rb +0 -98
  105. data/lib/tapioca/loader.rb +0 -119
  106. data/lib/tapioca/reflection.rb +0 -151
  107. data/lib/tapioca/trackers/autoload.rb +0 -70
  108. data/lib/tapioca/trackers/constant_definition.rb +0 -42
  109. data/lib/tapioca/trackers/mixin.rb +0 -78
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.1
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: 2021-12-26 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
  - - ">="
@@ -115,14 +115,14 @@ dependencies:
115
115
  requirements:
116
116
  - - ">="
117
117
  - !ruby/object:Gem::Version
118
- version: 0.19.2
118
+ version: 1.2.0
119
119
  type: :runtime
120
120
  prerelease: false
121
121
  version_requirements: !ruby/object:Gem::Requirement
122
122
  requirements:
123
123
  - - ">="
124
124
  - !ruby/object:Gem::Version
125
- version: 0.19.2
125
+ version: 1.2.0
126
126
  - !ruby/object:Gem::Dependency
127
127
  name: yard-sorbet
128
128
  requirement: !ruby/object:Gem::Requirement
@@ -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: