tapioca 0.16.10 → 0.17.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 (123) hide show
  1. checksums.yaml +4 -4
  2. data/lib/ruby_lsp/tapioca/addon.rb +24 -20
  3. data/lib/ruby_lsp/tapioca/run_gem_rbi_check.rb +20 -20
  4. data/lib/tapioca/bundler_ext/auto_require_hook.rb +5 -10
  5. data/lib/tapioca/commands/abstract_dsl.rb +36 -62
  6. data/lib/tapioca/commands/abstract_gem.rb +23 -43
  7. data/lib/tapioca/commands/annotations.rb +27 -33
  8. data/lib/tapioca/commands/check_shims.rb +4 -13
  9. data/lib/tapioca/commands/command.rb +8 -20
  10. data/lib/tapioca/commands/command_without_tracker.rb +1 -1
  11. data/lib/tapioca/commands/configure.rb +11 -16
  12. data/lib/tapioca/commands/dsl_compiler_list.rb +2 -1
  13. data/lib/tapioca/commands/dsl_generate.rb +2 -1
  14. data/lib/tapioca/commands/dsl_verify.rb +2 -1
  15. data/lib/tapioca/commands/gem_generate.rb +4 -8
  16. data/lib/tapioca/commands/gem_sync.rb +2 -1
  17. data/lib/tapioca/commands/gem_verify.rb +3 -2
  18. data/lib/tapioca/commands/require.rb +3 -7
  19. data/lib/tapioca/commands/todo.rb +6 -10
  20. data/lib/tapioca/dsl/compiler.rb +28 -53
  21. data/lib/tapioca/dsl/compilers/aasm.rb +31 -41
  22. data/lib/tapioca/dsl/compilers/action_controller_helpers.rb +7 -5
  23. data/lib/tapioca/dsl/compilers/action_mailer.rb +5 -3
  24. data/lib/tapioca/dsl/compilers/action_text.rb +5 -3
  25. data/lib/tapioca/dsl/compilers/active_job.rb +5 -8
  26. data/lib/tapioca/dsl/compilers/active_model_attributes.rb +9 -7
  27. data/lib/tapioca/dsl/compilers/active_model_secure_password.rb +4 -2
  28. data/lib/tapioca/dsl/compilers/active_model_validations_confirmation.rb +4 -2
  29. data/lib/tapioca/dsl/compilers/active_record_associations.rb +16 -42
  30. data/lib/tapioca/dsl/compilers/active_record_columns.rb +19 -24
  31. data/lib/tapioca/dsl/compilers/active_record_delegated_types.rb +7 -5
  32. data/lib/tapioca/dsl/compilers/active_record_enum.rb +6 -4
  33. data/lib/tapioca/dsl/compilers/active_record_fixtures.rb +53 -61
  34. data/lib/tapioca/dsl/compilers/active_record_relations.rb +86 -119
  35. data/lib/tapioca/dsl/compilers/active_record_scope.rb +7 -11
  36. data/lib/tapioca/dsl/compilers/active_record_secure_token.rb +4 -2
  37. data/lib/tapioca/dsl/compilers/active_record_store.rb +4 -2
  38. data/lib/tapioca/dsl/compilers/active_record_typed_store.rb +18 -26
  39. data/lib/tapioca/dsl/compilers/active_resource.rb +18 -19
  40. data/lib/tapioca/dsl/compilers/active_storage.rb +5 -5
  41. data/lib/tapioca/dsl/compilers/active_support_concern.rb +8 -6
  42. data/lib/tapioca/dsl/compilers/active_support_current_attributes.rb +7 -5
  43. data/lib/tapioca/dsl/compilers/active_support_time_ext.rb +4 -2
  44. data/lib/tapioca/dsl/compilers/config.rb +4 -2
  45. data/lib/tapioca/dsl/compilers/frozen_record.rb +6 -9
  46. data/lib/tapioca/dsl/compilers/graphql_input_object.rb +8 -8
  47. data/lib/tapioca/dsl/compilers/graphql_mutation.rb +5 -8
  48. data/lib/tapioca/dsl/compilers/identity_cache.rb +10 -37
  49. data/lib/tapioca/dsl/compilers/json_api_client_resource.rb +8 -16
  50. data/lib/tapioca/dsl/compilers/kredis.rb +6 -4
  51. data/lib/tapioca/dsl/compilers/mixed_in_class_attributes.rb +4 -2
  52. data/lib/tapioca/dsl/compilers/protobuf.rb +12 -24
  53. data/lib/tapioca/dsl/compilers/rails_generators.rb +8 -9
  54. data/lib/tapioca/dsl/compilers/sidekiq_worker.rb +22 -11
  55. data/lib/tapioca/dsl/compilers/smart_properties.rb +11 -20
  56. data/lib/tapioca/dsl/compilers/state_machines.rb +14 -24
  57. data/lib/tapioca/dsl/compilers/url_helpers.rb +9 -7
  58. data/lib/tapioca/dsl/compilers.rb +4 -7
  59. data/lib/tapioca/dsl/helpers/active_model_type_helper.rb +13 -16
  60. data/lib/tapioca/dsl/helpers/active_record_column_type_helper.rb +13 -28
  61. data/lib/tapioca/dsl/helpers/active_record_constants_helper.rb +19 -15
  62. data/lib/tapioca/dsl/helpers/graphql_type_helper.rb +5 -24
  63. data/lib/tapioca/dsl/pipeline.rb +30 -58
  64. data/lib/tapioca/executor.rb +6 -12
  65. data/lib/tapioca/gem/events.rb +22 -28
  66. data/lib/tapioca/gem/listeners/base.rb +6 -6
  67. data/lib/tapioca/gem/listeners/dynamic_mixins.rb +4 -2
  68. data/lib/tapioca/gem/listeners/foreign_constants.rb +5 -7
  69. data/lib/tapioca/gem/listeners/methods.rb +15 -34
  70. data/lib/tapioca/gem/listeners/mixins.rb +6 -18
  71. data/lib/tapioca/gem/listeners/remove_empty_payload_scopes.rb +4 -2
  72. data/lib/tapioca/gem/listeners/sorbet_enums.rb +4 -2
  73. data/lib/tapioca/gem/listeners/sorbet_helpers.rb +4 -2
  74. data/lib/tapioca/gem/listeners/sorbet_props.rb +4 -2
  75. data/lib/tapioca/gem/listeners/sorbet_required_ancestors.rb +4 -2
  76. data/lib/tapioca/gem/listeners/sorbet_signatures.rb +7 -5
  77. data/lib/tapioca/gem/listeners/sorbet_type_variables.rb +6 -4
  78. data/lib/tapioca/gem/listeners/source_location.rb +7 -4
  79. data/lib/tapioca/gem/listeners/subconstants.rb +5 -4
  80. data/lib/tapioca/gem/listeners/yard_doc.rb +23 -22
  81. data/lib/tapioca/gem/pipeline.rb +57 -72
  82. data/lib/tapioca/gem_info.rb +1 -1
  83. data/lib/tapioca/gemfile.rb +64 -73
  84. data/lib/tapioca/helpers/cli_helper.rb +3 -3
  85. data/lib/tapioca/helpers/config_helper.rb +15 -24
  86. data/lib/tapioca/helpers/env_helper.rb +1 -1
  87. data/lib/tapioca/helpers/gem_helper.rb +5 -5
  88. data/lib/tapioca/helpers/git_attributes.rb +3 -3
  89. data/lib/tapioca/helpers/rbi_files_helper.rb +73 -67
  90. data/lib/tapioca/helpers/rbi_helper.rb +14 -22
  91. data/lib/tapioca/helpers/sorbet_helper.rb +9 -18
  92. data/lib/tapioca/helpers/source_uri.rb +15 -25
  93. data/lib/tapioca/helpers/test/content.rb +6 -6
  94. data/lib/tapioca/helpers/test/dsl_compiler.rb +19 -29
  95. data/lib/tapioca/helpers/test/isolation.rb +4 -4
  96. data/lib/tapioca/helpers/test/template.rb +5 -7
  97. data/lib/tapioca/internal.rb +5 -1
  98. data/lib/tapioca/loaders/dsl.rb +11 -19
  99. data/lib/tapioca/loaders/gem.rb +6 -21
  100. data/lib/tapioca/loaders/loader.rb +15 -27
  101. data/lib/tapioca/rbi_ext/model.rb +12 -37
  102. data/lib/tapioca/rbi_formatter.rb +10 -19
  103. data/lib/tapioca/rbs/rewriter.rb +55 -0
  104. data/lib/tapioca/repo_index.rb +7 -7
  105. data/lib/tapioca/runtime/attached_class_of_32.rb +1 -1
  106. data/lib/tapioca/runtime/attached_class_of_legacy.rb +1 -1
  107. data/lib/tapioca/runtime/dynamic_mixin_compiler.rb +23 -23
  108. data/lib/tapioca/runtime/generic_type_registry.rb +13 -23
  109. data/lib/tapioca/runtime/reflection.rb +48 -56
  110. data/lib/tapioca/runtime/trackers/autoload.rb +4 -8
  111. data/lib/tapioca/runtime/trackers/mixin.rb +6 -10
  112. data/lib/tapioca/runtime/trackers/required_ancestor.rb +3 -3
  113. data/lib/tapioca/runtime/trackers/tracker.rb +2 -2
  114. data/lib/tapioca/runtime/trackers.rb +4 -8
  115. data/lib/tapioca/sorbet_ext/generic_name_patch.rb +9 -15
  116. data/lib/tapioca/sorbet_ext/name_patch.rb +1 -1
  117. data/lib/tapioca/sorbet_ext/proc_bind_patch.rb +1 -1
  118. data/lib/tapioca/static/requires_compiler.rb +6 -6
  119. data/lib/tapioca/static/symbol_loader.rb +14 -16
  120. data/lib/tapioca/static/symbol_table_parser.rb +8 -8
  121. data/lib/tapioca/version.rb +1 -1
  122. data/lib/tapioca.rb +22 -29
  123. metadata +25 -10
@@ -130,19 +130,12 @@ module Tapioca
130
130
  end
131
131
  end
132
132
 
133
- DEFAULT_BOUNDS_PROC = T.let(-> { {} }, T.proc.returns(T::Hash[Symbol, T.untyped]))
133
+ DEFAULT_BOUNDS_PROC = -> { {} } #: ^-> Hash[Symbol, untyped]
134
134
 
135
- sig { returns(Type) }
135
+ #: Type
136
136
  attr_reader :type
137
137
 
138
- sig do
139
- params(
140
- context: Module,
141
- type: Type,
142
- variance: Symbol,
143
- bounds_proc: T.nilable(T.proc.returns(T::Hash[Symbol, T.untyped])),
144
- ).void
145
- end
138
+ #: (Module context, Type type, Symbol variance, (^-> Hash[Symbol, untyped])? bounds_proc) -> void
146
139
  def initialize(context, type, variance, bounds_proc)
147
140
  @context = context
148
141
  @type = type
@@ -151,18 +144,19 @@ module Tapioca
151
144
 
152
145
  super()
153
146
  end
154
- sig { returns(T.nilable(String)) }
147
+
148
+ #: -> String?
155
149
  def name
156
150
  constant_name = super
157
151
  constant_name&.split("::")&.last
158
152
  end
159
153
 
160
- sig { returns(T::Boolean) }
154
+ #: -> bool
161
155
  def fixed?
162
156
  bounds.key?(:fixed)
163
157
  end
164
158
 
165
- sig { returns(String) }
159
+ #: -> String
166
160
  def serialize
167
161
  fixed = bounds[:fixed].to_s if fixed?
168
162
  lower = bounds[:lower].to_s if bounds.key?(:lower)
@@ -177,14 +171,14 @@ module Tapioca
177
171
  )
178
172
  end
179
173
 
180
- sig { returns(Tapioca::TypeVariable) }
174
+ #: -> Tapioca::TypeVariable
181
175
  def coerce_to_type_variable
182
176
  TypeVariable.new(name, @variance)
183
177
  end
184
178
 
185
179
  private
186
180
 
187
- sig { returns(T::Hash[Symbol, T.untyped]) }
181
+ #: -> Hash[Symbol, untyped]
188
182
  def bounds
189
183
  @bounds ||= @bounds_proc.call
190
184
  end
@@ -5,7 +5,7 @@ module T
5
5
  module Types
6
6
  class Simple
7
7
  module NamePatch
8
- NAME_METHOD = T.let(Module.instance_method(:name), UnboundMethod)
8
+ NAME_METHOD = Module.instance_method(:name) #: UnboundMethod
9
9
 
10
10
  def name
11
11
  # Sorbet memoizes this method into the `@name` instance variable but
@@ -8,7 +8,7 @@ module T
8
8
  super(arg_types, returns)
9
9
 
10
10
  unless bind == T::Private::Methods::ARG_NOT_PROVIDED
11
- @bind = T.let(T::Utils.coerce(bind), T::Types::Base)
11
+ @bind = T::Utils.coerce(bind) #: T::Types::Base
12
12
  end
13
13
  end
14
14
 
@@ -6,12 +6,12 @@ module Tapioca
6
6
  class RequiresCompiler
7
7
  extend T::Sig
8
8
 
9
- sig { params(sorbet_path: String).void }
9
+ #: (String sorbet_path) -> void
10
10
  def initialize(sorbet_path)
11
11
  @sorbet_path = sorbet_path
12
12
  end
13
13
 
14
- sig { returns(String) }
14
+ #: -> String
15
15
  def compile
16
16
  config = Spoom::Sorbet::Config.parse_file(@sorbet_path)
17
17
  files = collect_files(config)
@@ -25,7 +25,7 @@ module Tapioca
25
25
 
26
26
  private
27
27
 
28
- sig { params(config: Spoom::Sorbet::Config).returns(T::Array[String]) }
28
+ #: (Spoom::Sorbet::Config config) -> Array[String]
29
29
  def collect_files(config)
30
30
  config.paths.flat_map do |path|
31
31
  path = (Pathname.new(@sorbet_path) / "../.." / path).cleanpath
@@ -40,14 +40,14 @@ module Tapioca
40
40
  end.sort.uniq
41
41
  end
42
42
 
43
- sig { params(file_path: String).returns(T::Enumerable[String]) }
43
+ #: (String file_path) -> T::Enumerable[String]
44
44
  def collect_requires(file_path)
45
45
  File.binread(file_path).lines.filter_map do |line|
46
46
  /^\s*require\s*(\(\s*)?['"](?<name>[^'"]+)['"](\s*\))?/.match(line) { |m| m["name"] }
47
47
  end.reject { |require| require.include?('#{') } # ignore interpolation
48
48
  end
49
49
 
50
- sig { params(config: Spoom::Sorbet::Config, file_path: Pathname).returns(T::Boolean) }
50
+ #: (Spoom::Sorbet::Config config, Pathname file_path) -> bool
51
51
  def file_ignored_by_sorbet?(config, file_path)
52
52
  file_path_parts = path_parts(file_path)
53
53
 
@@ -76,7 +76,7 @@ module Tapioca
76
76
  end
77
77
  end
78
78
 
79
- sig { params(path: Pathname).returns(T::Array[String]) }
79
+ #: (Pathname path) -> Array[String]
80
80
  def path_parts(path)
81
81
  T.unsafe(path).descend.map { |part| part.basename.to_s }
82
82
  end
@@ -9,17 +9,17 @@ module Tapioca
9
9
  include SorbetHelper
10
10
  include Runtime::Reflection
11
11
 
12
- sig { returns(T::Set[String]) }
12
+ #: -> Set[String]
13
13
  def payload_symbols
14
14
  unless @payload_symbols
15
15
  output = symbol_table_json_from("-e ''", table_type: "symbol-table-full-json")
16
- @payload_symbols = T.let(SymbolTableParser.parse_json(output), T.nilable(T::Set[String]))
16
+ @payload_symbols = SymbolTableParser.parse_json(output) #: Set[String]?
17
17
  end
18
18
 
19
19
  T.must(@payload_symbols)
20
20
  end
21
21
 
22
- sig { params(gem: Gemfile::GemSpec).returns(T::Set[String]) }
22
+ #: (Gemfile::GemSpec gem) -> Set[String]
23
23
  def engine_symbols(gem)
24
24
  gem_engine = engines.find do |engine|
25
25
  gem.full_gem_path == engine.config.root.to_s
@@ -44,12 +44,12 @@ module Tapioca
44
44
  Set.new
45
45
  end
46
46
 
47
- sig { params(gem: Gemfile::GemSpec).returns(T::Set[String]) }
47
+ #: (Gemfile::GemSpec gem) -> Set[String]
48
48
  def gem_symbols(gem)
49
49
  symbols_from_paths(gem.files)
50
50
  end
51
51
 
52
- sig { params(paths: T::Array[Pathname]).returns(T::Set[String]) }
52
+ #: (Array[Pathname] paths) -> Set[String]
53
53
  def symbols_from_paths(paths)
54
54
  return Set.new if paths.empty?
55
55
 
@@ -67,20 +67,18 @@ module Tapioca
67
67
 
68
68
  private
69
69
 
70
- T::Sig::WithoutRuntime.sig { returns(T::Array[T.class_of(Rails::Engine)]) }
70
+ # @without_runtime
71
+ #: -> Array[singleton(Rails::Engine)]
71
72
  def engines
72
- @engines ||= T.let(
73
- if Object.const_defined?("Rails::Engine")
74
- descendants_of(Object.const_get("Rails::Engine"))
75
- .reject(&:abstract_railtie?)
76
- else
77
- []
78
- end,
79
- T.nilable(T::Array[T.class_of(Rails::Engine)]),
80
- )
73
+ @engines ||= if Object.const_defined?("Rails::Engine")
74
+ descendants_of(Object.const_get("Rails::Engine"))
75
+ .reject(&:abstract_railtie?)
76
+ else
77
+ []
78
+ end #: Array[singleton(Rails::Engine)]?
81
79
  end
82
80
 
83
- sig { params(input: String, table_type: String).returns(String) }
81
+ #: (String input, ?table_type: String) -> String
84
82
  def symbol_table_json_from(input, table_type: "symbol-table-json")
85
83
  sorbet("--no-config", "--quiet", "--print=#{table_type}", input).out
86
84
  end
@@ -6,12 +6,12 @@ module Tapioca
6
6
  class SymbolTableParser
7
7
  extend T::Sig
8
8
 
9
- SKIP_PARSE_KINDS = T.let(["CLASS_OR_MODULE", "STATIC_FIELD"].freeze, T::Array[String])
9
+ SKIP_PARSE_KINDS = ["CLASS_OR_MODULE", "STATIC_FIELD"].freeze #: Array[String]
10
10
 
11
11
  class << self
12
12
  extend T::Sig
13
13
 
14
- sig { params(json_string: String).returns(T::Set[String]) }
14
+ #: (String json_string) -> Set[String]
15
15
  def parse_json(json_string)
16
16
  obj = JSON.parse(json_string)
17
17
 
@@ -23,16 +23,16 @@ module Tapioca
23
23
  end
24
24
  end
25
25
 
26
- sig { returns(T::Set[String]) }
26
+ #: Set[String]
27
27
  attr_reader :symbols
28
28
 
29
- sig { void }
29
+ #: -> void
30
30
  def initialize
31
- @symbols = T.let(Set.new, T::Set[String])
32
- @parents = T.let([], T::Array[String])
31
+ @symbols = Set.new #: Set[String]
32
+ @parents = [] #: Array[String]
33
33
  end
34
34
 
35
- sig { params(object: T::Hash[String, T.untyped]).void }
35
+ #: (Hash[String, untyped] object) -> void
36
36
  def parse_object(object)
37
37
  children = object.fetch("children", [])
38
38
 
@@ -61,7 +61,7 @@ module Tapioca
61
61
  end
62
62
  end
63
63
 
64
- sig { params(name: String).returns(String) }
64
+ #: (String name) -> String
65
65
  def fully_qualified_name(name)
66
66
  [*@parents, name].join("::")
67
67
  end
@@ -2,5 +2,5 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Tapioca
5
- VERSION = "0.16.10"
5
+ VERSION = "0.17.0"
6
6
  end
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 = T.let([], T::Array[TracePoint])
10
+ @traces = [] #: Array[TracePoint]
11
11
 
12
12
  class << self
13
13
  extend T::Sig
14
14
 
15
- sig do
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.let(T.must(__dir__), String)
34
- SORBET_DIR = T.let("sorbet", String)
35
- SORBET_CONFIG_FILE = T.let("#{SORBET_DIR}/config", String)
36
- TAPIOCA_DIR = T.let("#{SORBET_DIR}/tapioca", String)
37
- TAPIOCA_CONFIG_FILE = T.let("#{TAPIOCA_DIR}/config.yml", String)
38
-
39
- BINARY_FILE = T.let("bin/tapioca", String)
40
- DEFAULT_POSTREQUIRE_FILE = T.let("#{TAPIOCA_DIR}/require.rb", String)
41
- DEFAULT_RBI_DIR = T.let("#{SORBET_DIR}/rbi", String)
42
- DEFAULT_DSL_DIR = T.let("#{DEFAULT_RBI_DIR}/dsl", String)
43
- DEFAULT_GEM_DIR = T.let("#{DEFAULT_RBI_DIR}/gems", String)
44
- DEFAULT_SHIM_DIR = T.let("#{DEFAULT_RBI_DIR}/shims", String)
45
- DEFAULT_TODO_FILE = T.let("#{DEFAULT_RBI_DIR}/todo.rbi", String)
46
- DEFAULT_ANNOTATIONS_DIR = T.let("#{DEFAULT_RBI_DIR}/annotations", String)
47
-
48
- DEFAULT_OVERRIDES = T.let(
49
- {
50
- # ActiveSupport overrides some core methods with different signatures
51
- # so we generate a typed: false RBI for it to suppress errors
52
- "activesupport" => "false",
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.16.10
4
+ version: 0.17.0
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: 2025-02-12 00:00:00.000000000 Z
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: '0.2'
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: '0.2'
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.2.0
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.2.0
126
+ version: 1.7.0
113
127
  - !ruby/object:Gem::Dependency
114
128
  name: thor
115
129
  requirement: !ruby/object:Gem::Requirement
@@ -260,6 +274,7 @@ 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
@@ -292,14 +307,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
292
307
  requirements:
293
308
  - - ">="
294
309
  - !ruby/object:Gem::Version
295
- version: '3.1'
310
+ version: '3.2'
296
311
  required_rubygems_version: !ruby/object:Gem::Requirement
297
312
  requirements:
298
313
  - - ">="
299
314
  - !ruby/object:Gem::Version
300
315
  version: '0'
301
316
  requirements: []
302
- rubygems_version: 3.6.3
317
+ rubygems_version: 3.6.9
303
318
  specification_version: 4
304
319
  summary: A Ruby Interface file generator for gems, core types and the Ruby standard
305
320
  library