tapioca 0.16.9 → 0.17.7
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.
- checksums.yaml +4 -4
- data/README.md +21 -0
- data/exe/tapioca +6 -1
- data/lib/ruby_lsp/tapioca/addon.rb +73 -43
- data/lib/ruby_lsp/tapioca/run_gem_rbi_check.rb +43 -43
- data/lib/ruby_lsp/tapioca/server_addon.rb +13 -10
- data/lib/tapioca/bundler_ext/auto_require_hook.rb +6 -14
- data/lib/tapioca/cli.rb +16 -8
- data/lib/tapioca/commands/abstract_dsl.rb +39 -66
- data/lib/tapioca/commands/abstract_gem.rb +25 -46
- data/lib/tapioca/commands/annotations.rb +28 -34
- data/lib/tapioca/commands/check_shims.rb +6 -15
- data/lib/tapioca/commands/command.rb +12 -26
- data/lib/tapioca/commands/command_without_tracker.rb +2 -5
- data/lib/tapioca/commands/configure.rb +11 -16
- data/lib/tapioca/commands/dsl_compiler_list.rb +2 -1
- data/lib/tapioca/commands/dsl_generate.rb +2 -1
- data/lib/tapioca/commands/dsl_verify.rb +2 -1
- data/lib/tapioca/commands/gem_generate.rb +5 -9
- data/lib/tapioca/commands/gem_sync.rb +2 -1
- data/lib/tapioca/commands/gem_verify.rb +3 -2
- data/lib/tapioca/commands/require.rb +3 -7
- data/lib/tapioca/commands/todo.rb +6 -10
- data/lib/tapioca/dsl/compiler.rb +36 -63
- data/lib/tapioca/dsl/compilers/aasm.rb +33 -44
- data/lib/tapioca/dsl/compilers/action_controller_helpers.rb +8 -7
- data/lib/tapioca/dsl/compilers/action_mailer.rb +6 -5
- data/lib/tapioca/dsl/compilers/action_text.rb +6 -5
- data/lib/tapioca/dsl/compilers/active_job.rb +6 -10
- data/lib/tapioca/dsl/compilers/active_model_attributes.rb +10 -11
- data/lib/tapioca/dsl/compilers/active_model_secure_password.rb +5 -6
- data/lib/tapioca/dsl/compilers/active_model_validations_confirmation.rb +5 -12
- data/lib/tapioca/dsl/compilers/active_record_associations.rb +17 -44
- data/lib/tapioca/dsl/compilers/active_record_columns.rb +20 -26
- data/lib/tapioca/dsl/compilers/active_record_delegated_types.rb +9 -8
- data/lib/tapioca/dsl/compilers/active_record_enum.rb +7 -6
- data/lib/tapioca/dsl/compilers/active_record_fixtures.rb +54 -62
- data/lib/tapioca/dsl/compilers/active_record_relations.rb +148 -209
- data/lib/tapioca/dsl/compilers/active_record_scope.rb +8 -13
- data/lib/tapioca/dsl/compilers/active_record_secure_token.rb +5 -4
- data/lib/tapioca/dsl/compilers/active_record_store.rb +5 -4
- data/lib/tapioca/dsl/compilers/active_record_typed_store.rb +19 -28
- data/lib/tapioca/dsl/compilers/active_resource.rb +19 -21
- data/lib/tapioca/dsl/compilers/active_storage.rb +6 -14
- data/lib/tapioca/dsl/compilers/active_support_concern.rb +9 -8
- data/lib/tapioca/dsl/compilers/active_support_current_attributes.rb +8 -7
- data/lib/tapioca/dsl/compilers/active_support_time_ext.rb +5 -4
- data/lib/tapioca/dsl/compilers/config.rb +5 -4
- data/lib/tapioca/dsl/compilers/frozen_record.rb +7 -11
- data/lib/tapioca/dsl/compilers/graphql_input_object.rb +9 -10
- data/lib/tapioca/dsl/compilers/graphql_mutation.rb +6 -10
- data/lib/tapioca/dsl/compilers/identity_cache.rb +11 -39
- data/lib/tapioca/dsl/compilers/json_api_client_resource.rb +9 -18
- data/lib/tapioca/dsl/compilers/kredis.rb +7 -8
- data/lib/tapioca/dsl/compilers/mixed_in_class_attributes.rb +5 -4
- data/lib/tapioca/dsl/compilers/protobuf.rb +13 -26
- data/lib/tapioca/dsl/compilers/rails_generators.rb +9 -11
- data/lib/tapioca/dsl/compilers/sidekiq_worker.rb +23 -13
- data/lib/tapioca/dsl/compilers/smart_properties.rb +32 -38
- data/lib/tapioca/dsl/compilers/state_machines.rb +15 -26
- data/lib/tapioca/dsl/compilers/url_helpers.rb +10 -9
- data/lib/tapioca/dsl/compilers.rb +4 -7
- data/lib/tapioca/dsl/helpers/active_model_type_helper.rb +13 -16
- data/lib/tapioca/dsl/helpers/active_record_column_type_helper.rb +13 -28
- data/lib/tapioca/dsl/helpers/active_record_constants_helper.rb +19 -15
- data/lib/tapioca/dsl/helpers/graphql_type_helper.rb +5 -24
- data/lib/tapioca/dsl/pipeline.rb +30 -58
- data/lib/tapioca/executor.rb +6 -12
- data/lib/tapioca/gem/events.rb +24 -34
- data/lib/tapioca/gem/listeners/base.rb +7 -10
- data/lib/tapioca/gem/listeners/dynamic_mixins.rb +4 -2
- data/lib/tapioca/gem/listeners/foreign_constants.rb +5 -7
- data/lib/tapioca/gem/listeners/methods.rb +36 -47
- data/lib/tapioca/gem/listeners/mixins.rb +6 -18
- data/lib/tapioca/gem/listeners/remove_empty_payload_scopes.rb +4 -2
- data/lib/tapioca/gem/listeners/sorbet_enums.rb +4 -2
- data/lib/tapioca/gem/listeners/sorbet_helpers.rb +4 -2
- data/lib/tapioca/gem/listeners/sorbet_props.rb +4 -2
- data/lib/tapioca/gem/listeners/sorbet_required_ancestors.rb +4 -2
- data/lib/tapioca/gem/listeners/sorbet_signatures.rb +7 -5
- data/lib/tapioca/gem/listeners/sorbet_type_variables.rb +6 -4
- data/lib/tapioca/gem/listeners/source_location.rb +15 -8
- data/lib/tapioca/gem/listeners/subconstants.rb +5 -4
- data/lib/tapioca/gem/listeners/yard_doc.rb +30 -23
- data/lib/tapioca/gem/pipeline.rb +107 -91
- data/lib/tapioca/gem_info.rb +1 -1
- data/lib/tapioca/gemfile.rb +64 -73
- data/lib/tapioca/helpers/cli_helper.rb +4 -7
- data/lib/tapioca/helpers/config_helper.rb +17 -29
- data/lib/tapioca/helpers/env_helper.rb +2 -5
- data/lib/tapioca/helpers/gem_helper.rb +5 -5
- data/lib/tapioca/helpers/git_attributes.rb +3 -3
- data/lib/tapioca/helpers/rbi_files_helper.rb +76 -73
- data/lib/tapioca/helpers/rbi_helper.rb +14 -22
- data/lib/tapioca/helpers/sorbet_helper.rb +9 -18
- data/lib/tapioca/helpers/source_uri.rb +15 -25
- data/lib/tapioca/helpers/test/content.rb +7 -10
- data/lib/tapioca/helpers/test/dsl_compiler.rb +20 -33
- data/lib/tapioca/helpers/test/isolation.rb +10 -14
- data/lib/tapioca/helpers/test/template.rb +6 -11
- data/lib/tapioca/internal.rb +18 -8
- data/lib/tapioca/loaders/dsl.rb +11 -19
- data/lib/tapioca/loaders/gem.rb +6 -21
- data/lib/tapioca/loaders/loader.rb +21 -39
- data/lib/tapioca/rbi_ext/model.rb +12 -37
- data/lib/tapioca/rbi_formatter.rb +10 -19
- data/lib/tapioca/rbs/rewriter.rb +55 -0
- data/lib/tapioca/repo_index.rb +7 -9
- data/lib/tapioca/runtime/attached_class_of_32.rb +1 -1
- data/lib/tapioca/runtime/attached_class_of_legacy.rb +2 -5
- data/lib/tapioca/runtime/dynamic_mixin_compiler.rb +23 -23
- data/lib/tapioca/runtime/generic_type_registry.rb +13 -23
- data/lib/tapioca/runtime/reflection.rb +81 -60
- data/lib/tapioca/runtime/source_location.rb +44 -0
- data/lib/tapioca/runtime/trackers/autoload.rb +7 -9
- data/lib/tapioca/runtime/trackers/constant_definition.rb +18 -14
- data/lib/tapioca/runtime/trackers/method_definition.rb +65 -0
- data/lib/tapioca/runtime/trackers/mixin.rb +8 -11
- data/lib/tapioca/runtime/trackers/required_ancestor.rb +3 -3
- data/lib/tapioca/runtime/trackers/tracker.rb +3 -6
- data/lib/tapioca/runtime/trackers.rb +5 -8
- data/lib/tapioca/sorbet_ext/generic_name_patch.rb +9 -15
- data/lib/tapioca/sorbet_ext/name_patch.rb +2 -2
- data/lib/tapioca/sorbet_ext/proc_bind_patch.rb +1 -1
- data/lib/tapioca/static/requires_compiler.rb +6 -6
- data/lib/tapioca/static/symbol_loader.rb +14 -16
- data/lib/tapioca/static/symbol_table_parser.rb +8 -8
- data/lib/tapioca/version.rb +1 -1
- data/lib/tapioca.rb +22 -29
- metadata +27 -10
data/lib/tapioca.rb
CHANGED
|
@@ -7,16 +7,12 @@ require "rubygems/user_interaction"
|
|
|
7
7
|
module Tapioca
|
|
8
8
|
extend T::Sig
|
|
9
9
|
|
|
10
|
-
@traces =
|
|
10
|
+
@traces = [] #: Array[TracePoint]
|
|
11
11
|
|
|
12
12
|
class << self
|
|
13
13
|
extend T::Sig
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
type_parameters(:Result)
|
|
17
|
-
.params(blk: T.proc.returns(T.type_parameter(:Result)))
|
|
18
|
-
.returns(T.type_parameter(:Result))
|
|
19
|
-
end
|
|
15
|
+
#: [Result] { -> Result } -> Result
|
|
20
16
|
def silence_warnings(&blk)
|
|
21
17
|
original_verbosity = $VERBOSE
|
|
22
18
|
$VERBOSE = nil
|
|
@@ -30,29 +26,26 @@ module Tapioca
|
|
|
30
26
|
|
|
31
27
|
class Error < StandardError; end
|
|
32
28
|
|
|
33
|
-
LIB_ROOT_DIR = T.
|
|
34
|
-
SORBET_DIR =
|
|
35
|
-
SORBET_CONFIG_FILE =
|
|
36
|
-
TAPIOCA_DIR =
|
|
37
|
-
TAPIOCA_CONFIG_FILE =
|
|
38
|
-
|
|
39
|
-
BINARY_FILE =
|
|
40
|
-
DEFAULT_POSTREQUIRE_FILE =
|
|
41
|
-
DEFAULT_RBI_DIR =
|
|
42
|
-
DEFAULT_DSL_DIR =
|
|
43
|
-
DEFAULT_GEM_DIR =
|
|
44
|
-
DEFAULT_SHIM_DIR =
|
|
45
|
-
DEFAULT_TODO_FILE =
|
|
46
|
-
DEFAULT_ANNOTATIONS_DIR =
|
|
47
|
-
|
|
48
|
-
DEFAULT_OVERRIDES =
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
}.freeze,
|
|
54
|
-
T::Hash[String, String],
|
|
55
|
-
)
|
|
29
|
+
LIB_ROOT_DIR = T.must(__dir__) #: String
|
|
30
|
+
SORBET_DIR = "sorbet" #: String
|
|
31
|
+
SORBET_CONFIG_FILE = "#{SORBET_DIR}/config" #: String
|
|
32
|
+
TAPIOCA_DIR = "#{SORBET_DIR}/tapioca" #: String
|
|
33
|
+
TAPIOCA_CONFIG_FILE = "#{TAPIOCA_DIR}/config.yml" #: String
|
|
34
|
+
|
|
35
|
+
BINARY_FILE = "bin/tapioca" #: String
|
|
36
|
+
DEFAULT_POSTREQUIRE_FILE = "#{TAPIOCA_DIR}/require.rb" #: String
|
|
37
|
+
DEFAULT_RBI_DIR = "#{SORBET_DIR}/rbi" #: String
|
|
38
|
+
DEFAULT_DSL_DIR = "#{DEFAULT_RBI_DIR}/dsl" #: String
|
|
39
|
+
DEFAULT_GEM_DIR = "#{DEFAULT_RBI_DIR}/gems" #: String
|
|
40
|
+
DEFAULT_SHIM_DIR = "#{DEFAULT_RBI_DIR}/shims" #: String
|
|
41
|
+
DEFAULT_TODO_FILE = "#{DEFAULT_RBI_DIR}/todo.rbi" #: String
|
|
42
|
+
DEFAULT_ANNOTATIONS_DIR = "#{DEFAULT_RBI_DIR}/annotations" #: String
|
|
43
|
+
|
|
44
|
+
DEFAULT_OVERRIDES = {
|
|
45
|
+
# ActiveSupport overrides some core methods with different signatures
|
|
46
|
+
# so we generate a typed: false RBI for it to suppress errors
|
|
47
|
+
"activesupport" => "false",
|
|
48
|
+
}.freeze #: Hash[String, String]
|
|
56
49
|
|
|
57
50
|
DEFAULT_RBI_MAX_LINE_LENGTH = 120
|
|
58
51
|
DEFAULT_ENVIRONMENT = "development"
|
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.
|
|
4
|
+
version: 0.17.7
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ufuk Kayserilioglu
|
|
@@ -10,7 +10,7 @@ authors:
|
|
|
10
10
|
- Peter Zhu
|
|
11
11
|
bindir: exe
|
|
12
12
|
cert_chain: []
|
|
13
|
-
date:
|
|
13
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: benchmark
|
|
@@ -72,16 +72,30 @@ dependencies:
|
|
|
72
72
|
name: rbi
|
|
73
73
|
requirement: !ruby/object:Gem::Requirement
|
|
74
74
|
requirements:
|
|
75
|
-
- - "
|
|
75
|
+
- - ">="
|
|
76
76
|
- !ruby/object:Gem::Version
|
|
77
|
-
version:
|
|
77
|
+
version: 0.3.1
|
|
78
78
|
type: :runtime
|
|
79
79
|
prerelease: false
|
|
80
80
|
version_requirements: !ruby/object:Gem::Requirement
|
|
81
81
|
requirements:
|
|
82
|
-
- - "
|
|
82
|
+
- - ">="
|
|
83
83
|
- !ruby/object:Gem::Version
|
|
84
|
-
version:
|
|
84
|
+
version: 0.3.1
|
|
85
|
+
- !ruby/object:Gem::Dependency
|
|
86
|
+
name: require-hooks
|
|
87
|
+
requirement: !ruby/object:Gem::Requirement
|
|
88
|
+
requirements:
|
|
89
|
+
- - ">="
|
|
90
|
+
- !ruby/object:Gem::Version
|
|
91
|
+
version: 0.2.2
|
|
92
|
+
type: :runtime
|
|
93
|
+
prerelease: false
|
|
94
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
95
|
+
requirements:
|
|
96
|
+
- - ">="
|
|
97
|
+
- !ruby/object:Gem::Version
|
|
98
|
+
version: 0.2.2
|
|
85
99
|
- !ruby/object:Gem::Dependency
|
|
86
100
|
name: sorbet-static-and-runtime
|
|
87
101
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -102,14 +116,14 @@ dependencies:
|
|
|
102
116
|
requirements:
|
|
103
117
|
- - ">="
|
|
104
118
|
- !ruby/object:Gem::Version
|
|
105
|
-
version: 1.
|
|
119
|
+
version: 1.7.0
|
|
106
120
|
type: :runtime
|
|
107
121
|
prerelease: false
|
|
108
122
|
version_requirements: !ruby/object:Gem::Requirement
|
|
109
123
|
requirements:
|
|
110
124
|
- - ">="
|
|
111
125
|
- !ruby/object:Gem::Version
|
|
112
|
-
version: 1.
|
|
126
|
+
version: 1.7.0
|
|
113
127
|
- !ruby/object:Gem::Dependency
|
|
114
128
|
name: thor
|
|
115
129
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -260,15 +274,18 @@ files:
|
|
|
260
274
|
- lib/tapioca/loaders/loader.rb
|
|
261
275
|
- lib/tapioca/rbi_ext/model.rb
|
|
262
276
|
- lib/tapioca/rbi_formatter.rb
|
|
277
|
+
- lib/tapioca/rbs/rewriter.rb
|
|
263
278
|
- lib/tapioca/repo_index.rb
|
|
264
279
|
- lib/tapioca/runtime/attached_class_of_32.rb
|
|
265
280
|
- lib/tapioca/runtime/attached_class_of_legacy.rb
|
|
266
281
|
- lib/tapioca/runtime/dynamic_mixin_compiler.rb
|
|
267
282
|
- lib/tapioca/runtime/generic_type_registry.rb
|
|
268
283
|
- lib/tapioca/runtime/reflection.rb
|
|
284
|
+
- lib/tapioca/runtime/source_location.rb
|
|
269
285
|
- lib/tapioca/runtime/trackers.rb
|
|
270
286
|
- lib/tapioca/runtime/trackers/autoload.rb
|
|
271
287
|
- lib/tapioca/runtime/trackers/constant_definition.rb
|
|
288
|
+
- lib/tapioca/runtime/trackers/method_definition.rb
|
|
272
289
|
- lib/tapioca/runtime/trackers/mixin.rb
|
|
273
290
|
- lib/tapioca/runtime/trackers/required_ancestor.rb
|
|
274
291
|
- lib/tapioca/runtime/trackers/tracker.rb
|
|
@@ -292,14 +309,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
292
309
|
requirements:
|
|
293
310
|
- - ">="
|
|
294
311
|
- !ruby/object:Gem::Version
|
|
295
|
-
version: '3.
|
|
312
|
+
version: '3.2'
|
|
296
313
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
297
314
|
requirements:
|
|
298
315
|
- - ">="
|
|
299
316
|
- !ruby/object:Gem::Version
|
|
300
317
|
version: '0'
|
|
301
318
|
requirements: []
|
|
302
|
-
rubygems_version: 3.6.
|
|
319
|
+
rubygems_version: 3.6.9
|
|
303
320
|
specification_version: 4
|
|
304
321
|
summary: A Ruby Interface file generator for gems, core types and the Ruby standard
|
|
305
322
|
library
|