tapioca 0.17.9 → 0.18.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 (112) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -2
  3. data/lib/tapioca/bundler_ext/auto_require_hook.rb +0 -3
  4. data/lib/tapioca/cli.rb +0 -2
  5. data/lib/tapioca/commands/abstract_dsl.rb +21 -2
  6. data/lib/tapioca/commands/abstract_gem.rb +20 -1
  7. data/lib/tapioca/commands/annotations.rb +7 -3
  8. data/lib/tapioca/commands/check_shims.rb +9 -2
  9. data/lib/tapioca/commands/command.rb +0 -1
  10. data/lib/tapioca/dsl/compiler.rb +17 -16
  11. data/lib/tapioca/dsl/compilers/aasm.rb +2 -6
  12. data/lib/tapioca/dsl/compilers/action_controller_helpers.rb +2 -6
  13. data/lib/tapioca/dsl/compilers/action_mailer.rb +1 -5
  14. data/lib/tapioca/dsl/compilers/action_text.rb +1 -5
  15. data/lib/tapioca/dsl/compilers/active_job.rb +1 -5
  16. data/lib/tapioca/dsl/compilers/active_model_attributes.rb +1 -5
  17. data/lib/tapioca/dsl/compilers/active_model_secure_password.rb +1 -5
  18. data/lib/tapioca/dsl/compilers/active_model_validations_confirmation.rb +1 -3
  19. data/lib/tapioca/dsl/compilers/active_record_associations.rb +1 -6
  20. data/lib/tapioca/dsl/compilers/active_record_columns.rb +8 -5
  21. data/lib/tapioca/dsl/compilers/active_record_delegated_types.rb +1 -4
  22. data/lib/tapioca/dsl/compilers/active_record_enum.rb +1 -5
  23. data/lib/tapioca/dsl/compilers/active_record_fixtures.rb +1 -5
  24. data/lib/tapioca/dsl/compilers/active_record_relations.rb +45 -87
  25. data/lib/tapioca/dsl/compilers/active_record_scope.rb +1 -2
  26. data/lib/tapioca/dsl/compilers/active_record_secure_token.rb +1 -4
  27. data/lib/tapioca/dsl/compilers/active_record_store.rb +1 -4
  28. data/lib/tapioca/dsl/compilers/active_record_typed_store.rb +1 -5
  29. data/lib/tapioca/dsl/compilers/active_resource.rb +1 -5
  30. data/lib/tapioca/dsl/compilers/active_storage.rb +2 -6
  31. data/lib/tapioca/dsl/compilers/active_support_concern.rb +6 -10
  32. data/lib/tapioca/dsl/compilers/active_support_current_attributes.rb +4 -19
  33. data/lib/tapioca/dsl/compilers/active_support_environment_inquirer.rb +60 -0
  34. data/lib/tapioca/dsl/compilers/active_support_time_ext.rb +1 -5
  35. data/lib/tapioca/dsl/compilers/config.rb +2 -6
  36. data/lib/tapioca/dsl/compilers/frozen_record.rb +1 -5
  37. data/lib/tapioca/dsl/compilers/graphql_input_object.rb +1 -5
  38. data/lib/tapioca/dsl/compilers/graphql_mutation.rb +1 -5
  39. data/lib/tapioca/dsl/compilers/identity_cache.rb +2 -6
  40. data/lib/tapioca/dsl/compilers/json_api_client_resource.rb +4 -18
  41. data/lib/tapioca/dsl/compilers/kredis.rb +1 -5
  42. data/lib/tapioca/dsl/compilers/mixed_in_class_attributes.rb +2 -6
  43. data/lib/tapioca/dsl/compilers/protobuf.rb +2 -6
  44. data/lib/tapioca/dsl/compilers/rails_generators.rb +1 -5
  45. data/lib/tapioca/dsl/compilers/sidekiq_worker.rb +1 -5
  46. data/lib/tapioca/dsl/compilers/smart_properties.rb +1 -5
  47. data/lib/tapioca/dsl/compilers/state_machines.rb +2 -6
  48. data/lib/tapioca/dsl/compilers/url_helpers.rb +7 -10
  49. data/lib/tapioca/dsl/helpers/active_model_type_helper.rb +0 -2
  50. data/lib/tapioca/dsl/helpers/active_record_column_type_helper.rb +3 -6
  51. data/lib/tapioca/dsl/helpers/active_record_constants_helper.rb +0 -2
  52. data/lib/tapioca/dsl/helpers/graphql_type_helper.rb +18 -5
  53. data/lib/tapioca/dsl/pipeline.rb +25 -13
  54. data/lib/tapioca/executor.rb +0 -2
  55. data/lib/tapioca/gem/events.rb +15 -23
  56. data/lib/tapioca/gem/listeners/base.rb +0 -1
  57. data/lib/tapioca/gem/listeners/dynamic_mixins.rb +0 -2
  58. data/lib/tapioca/gem/listeners/foreign_constants.rb +0 -2
  59. data/lib/tapioca/gem/listeners/methods.rb +19 -9
  60. data/lib/tapioca/gem/listeners/mixins.rb +3 -5
  61. data/lib/tapioca/gem/listeners/remove_empty_payload_scopes.rb +0 -2
  62. data/lib/tapioca/gem/listeners/sorbet_enums.rb +0 -2
  63. data/lib/tapioca/gem/listeners/sorbet_helpers.rb +0 -2
  64. data/lib/tapioca/gem/listeners/sorbet_props.rb +0 -1
  65. data/lib/tapioca/gem/listeners/sorbet_required_ancestors.rb +0 -2
  66. data/lib/tapioca/gem/listeners/sorbet_signatures.rb +0 -2
  67. data/lib/tapioca/gem/listeners/sorbet_type_variables.rb +1 -3
  68. data/lib/tapioca/gem/listeners/source_location.rb +6 -7
  69. data/lib/tapioca/gem/listeners/subconstants.rb +0 -2
  70. data/lib/tapioca/gem/listeners/yard_doc.rb +0 -2
  71. data/lib/tapioca/gem/pipeline.rb +25 -21
  72. data/lib/tapioca/gemfile.rb +1 -3
  73. data/lib/tapioca/helpers/cli_helper.rb +0 -1
  74. data/lib/tapioca/helpers/config_helper.rb +5 -2
  75. data/lib/tapioca/helpers/env_helper.rb +0 -1
  76. data/lib/tapioca/helpers/gem_helper.rb +0 -2
  77. data/lib/tapioca/helpers/git_attributes.rb +0 -2
  78. data/lib/tapioca/helpers/package_url.rb +416 -0
  79. data/lib/tapioca/helpers/rbi_files_helper.rb +8 -2
  80. data/lib/tapioca/helpers/rbi_helper.rb +0 -3
  81. data/lib/tapioca/helpers/sorbet_helper.rb +0 -2
  82. data/lib/tapioca/helpers/test/content.rb +0 -1
  83. data/lib/tapioca/helpers/test/dsl_compiler.rb +0 -3
  84. data/lib/tapioca/helpers/test/isolation.rb +0 -6
  85. data/lib/tapioca/helpers/test/template.rb +1 -9
  86. data/lib/tapioca/internal.rb +1 -1
  87. data/lib/tapioca/loaders/dsl.rb +0 -4
  88. data/lib/tapioca/loaders/gem.rb +14 -6
  89. data/lib/tapioca/loaders/loader.rb +0 -1
  90. data/lib/tapioca/rbi_ext/model.rb +9 -4
  91. data/lib/tapioca/rbi_formatter.rb +0 -2
  92. data/lib/tapioca/repo_index.rb +1 -4
  93. data/lib/tapioca/runtime/dynamic_mixin_compiler.rb +6 -9
  94. data/lib/tapioca/runtime/generic_type_registry.rb +8 -12
  95. data/lib/tapioca/runtime/reflection.rb +25 -31
  96. data/lib/tapioca/runtime/trackers/autoload.rb +0 -3
  97. data/lib/tapioca/runtime/trackers/constant_definition.rb +30 -8
  98. data/lib/tapioca/runtime/trackers/method_definition.rb +4 -5
  99. data/lib/tapioca/runtime/trackers/mixin.rb +5 -8
  100. data/lib/tapioca/runtime/trackers/required_ancestor.rb +2 -4
  101. data/lib/tapioca/runtime/trackers/tracker.rb +1 -4
  102. data/lib/tapioca/runtime/trackers.rb +0 -4
  103. data/lib/tapioca/sorbet_ext/generic_name_patch.rb +1 -3
  104. data/lib/tapioca/static/requires_compiler.rb +1 -3
  105. data/lib/tapioca/static/symbol_loader.rb +0 -1
  106. data/lib/tapioca/static/symbol_table_parser.rb +0 -4
  107. data/lib/tapioca/version.rb +1 -1
  108. data/lib/tapioca.rb +0 -2
  109. metadata +18 -5
  110. data/lib/tapioca/helpers/source_uri.rb +0 -84
  111. data/lib/tapioca/runtime/attached_class_of_32.rb +0 -20
  112. data/lib/tapioca/runtime/attached_class_of_legacy.rb +0 -24
@@ -5,8 +5,6 @@ module Tapioca
5
5
  module Gem
6
6
  module Listeners
7
7
  class Mixins < Base
8
- extend T::Sig
9
-
10
8
  include Runtime::Reflection
11
9
 
12
10
  private
@@ -32,7 +30,7 @@ module Tapioca
32
30
  add_mixins(node, constant, extends.reverse, Runtime::Trackers::Mixin::Type::Extend)
33
31
  end
34
32
 
35
- #: (RBI::Tree tree, Module constant, Array[Module] mods, Runtime::Trackers::Mixin::Type mixin_type) -> void
33
+ #: (RBI::Tree tree, T::Module[top] constant, Array[T::Module[top]] mods, Runtime::Trackers::Mixin::Type mixin_type) -> void
36
34
  def add_mixins(tree, constant, mods, mixin_type)
37
35
  mods
38
36
  .select do |mod|
@@ -59,7 +57,7 @@ module Tapioca
59
57
  end
60
58
  end
61
59
 
62
- #: (Module constant, Module mixin, Runtime::Trackers::Mixin::Type mixin_type) -> bool
60
+ #: (T::Module[top] constant, T::Module[top] mixin, Runtime::Trackers::Mixin::Type mixin_type) -> bool
63
61
  def mixed_in_by_gem?(constant, mixin, mixin_type)
64
62
  mixin_location = Runtime::Trackers::Mixin.mixin_location(mixin, mixin_type, constant)
65
63
 
@@ -75,7 +73,7 @@ module Tapioca
75
73
  mixin_name.start_with?("T::") && !mixin_name.start_with?("T::Props")
76
74
  end
77
75
 
78
- #: (Module constant) -> Array[Module]
76
+ #: (T::Module[top] constant) -> Array[T::Module[top]]
79
77
  def interesting_ancestors_of(constant)
80
78
  inherited_ancestors = Set.new.compare_by_identity.merge(inherited_ancestors_of(constant))
81
79
 
@@ -5,8 +5,6 @@ module Tapioca
5
5
  module Gem
6
6
  module Listeners
7
7
  class RemoveEmptyPayloadScopes < Base
8
- extend T::Sig
9
-
10
8
  include Runtime::Reflection
11
9
 
12
10
  private
@@ -5,8 +5,6 @@ module Tapioca
5
5
  module Gem
6
6
  module Listeners
7
7
  class SorbetEnums < Base
8
- extend T::Sig
9
-
10
8
  private
11
9
 
12
10
  # @override
@@ -5,8 +5,6 @@ module Tapioca
5
5
  module Gem
6
6
  module Listeners
7
7
  class SorbetHelpers < Base
8
- extend T::Sig
9
-
10
8
  include Runtime::Reflection
11
9
 
12
10
  private
@@ -5,7 +5,6 @@ module Tapioca
5
5
  module Gem
6
6
  module Listeners
7
7
  class SorbetProps < Base
8
- extend T::Sig
9
8
  include RBIHelper
10
9
 
11
10
  private
@@ -5,8 +5,6 @@ module Tapioca
5
5
  module Gem
6
6
  module Listeners
7
7
  class SorbetRequiredAncestors < Base
8
- extend T::Sig
9
-
10
8
  private
11
9
 
12
10
  # @override
@@ -5,8 +5,6 @@ module Tapioca
5
5
  module Gem
6
6
  module Listeners
7
7
  class SorbetSignatures < Base
8
- extend T::Sig
9
-
10
8
  include Runtime::Reflection
11
9
  include RBIHelper
12
10
 
@@ -5,8 +5,6 @@ module Tapioca
5
5
  module Gem
6
6
  module Listeners
7
7
  class SorbetTypeVariables < Base
8
- extend T::Sig
9
-
10
8
  include Runtime::Reflection
11
9
 
12
10
  private
@@ -24,7 +22,7 @@ module Tapioca
24
22
  node << sclass if sclass.nodes.length > 1
25
23
  end
26
24
 
27
- #: (RBI::Tree tree, Module constant) -> void
25
+ #: (RBI::Tree tree, T::Module[top] constant) -> void
28
26
  def compile_type_variable_declarations(tree, constant)
29
27
  # Try to find the type variables defined on this constant, bail if we can't
30
28
  type_variables = Runtime::GenericTypeRegistry.lookup_type_variables(constant)
@@ -5,8 +5,6 @@ module Tapioca
5
5
  module Gem
6
6
  module Listeners
7
7
  class SourceLocation < Base
8
- extend T::Sig
9
-
10
8
  private
11
9
 
12
10
  # @override
@@ -64,12 +62,13 @@ module Tapioca
64
62
  # we can clear the gem version if the gem is the same one we are processing
65
63
  version = "" if gem == @pipeline.gem
66
64
 
67
- uri = SourceURI.build(
68
- gem_name: gem.name,
69
- gem_version: version,
70
- path: path.to_s,
71
- line_number: line.to_s,
65
+ uri = Tapioca::Helpers::PackageURL.new(
66
+ type: "gem",
67
+ name: gem.name,
68
+ version: version,
69
+ subpath: "#{path}:#{line}",
72
70
  )
71
+
73
72
  node.comments << RBI::Comment.new("") if node.comments.any?
74
73
  node.comments << RBI::Comment.new(uri.to_s)
75
74
  rescue URI::InvalidComponentError, URI::InvalidURIError
@@ -5,8 +5,6 @@ module Tapioca
5
5
  module Gem
6
6
  module Listeners
7
7
  class Subconstants < Base
8
- extend T::Sig
9
-
10
8
  include Runtime::Reflection
11
9
 
12
10
  private
@@ -5,8 +5,6 @@ module Tapioca
5
5
  module Gem
6
6
  module Listeners
7
7
  class YardDoc < Base
8
- extend T::Sig
9
-
10
8
  IGNORED_COMMENTS = [
11
9
  ":doc:",
12
10
  ":nodoc:",
@@ -4,7 +4,6 @@
4
4
  module Tapioca
5
5
  module Gem
6
6
  class Pipeline
7
- extend T::Sig
8
7
  include Runtime::Reflection
9
8
  include RBIHelper
10
9
 
@@ -72,27 +71,34 @@ module Tapioca
72
71
  @events << Gem::ConstantFound.new(symbol, constant)
73
72
  end
74
73
 
75
- #: (String symbol, Module constant) -> void
74
+ #: (String symbol, T::Module[top] constant) -> void
76
75
  def push_foreign_constant(symbol, constant)
77
76
  @events << Gem::ForeignConstantFound.new(symbol, constant)
78
77
  end
79
78
 
80
- #: (String symbol, Module constant, RBI::Const node) -> void
79
+ #: (String symbol, T::Module[top] constant, RBI::Const node) -> void
81
80
  def push_const(symbol, constant, node)
82
81
  @events << Gem::ConstNodeAdded.new(symbol, constant, node)
83
82
  end
84
83
 
85
- #: (String symbol, Module constant, RBI::Scope node) -> void
84
+ #: (String symbol, T::Module[top] constant, RBI::Scope node) -> void
86
85
  def push_scope(symbol, constant, node)
87
86
  @events << Gem::ScopeNodeAdded.new(symbol, constant, node)
88
87
  end
89
88
 
90
- #: (String symbol, Module constant, RBI::Scope node) -> void
89
+ #: (String symbol, T::Module[top] constant, RBI::Scope node) -> void
91
90
  def push_foreign_scope(symbol, constant, node)
92
91
  @events << Gem::ForeignScopeNodeAdded.new(symbol, constant, node)
93
92
  end
94
93
 
95
- #: (String symbol, Module constant, UnboundMethod method, RBI::Method node, untyped signature, Array[[Symbol, String]] parameters) -> void
94
+ #: (
95
+ #| String symbol,
96
+ #| T::Module[top] constant,
97
+ #| UnboundMethod method,
98
+ #| RBI::Method node,
99
+ #| untyped signature,
100
+ #| Array[[Symbol, String]] parameters
101
+ #| ) -> void
96
102
  def push_method(symbol, constant, method, node, signature, parameters) # rubocop:disable Metrics/ParameterLists
97
103
  @events << Gem::MethodNodeAdded.new(symbol, constant, method, node, signature, parameters)
98
104
  end
@@ -133,8 +139,6 @@ module Tapioca
133
139
 
134
140
  # The method defined in gem and has a source location
135
141
  class MethodInGemWithLocation < MethodDefinitionLookupResult
136
- extend T::Sig
137
-
138
142
  #: Runtime::SourceLocation
139
143
  attr_reader :location
140
144
 
@@ -145,7 +149,7 @@ module Tapioca
145
149
  end
146
150
  end
147
151
 
148
- #: (Symbol method_name, Module owner) -> MethodDefinitionLookupResult
152
+ #: (Symbol method_name, T::Module[top] owner) -> MethodDefinitionLookupResult
149
153
  def method_definition_in_gem(method_name, owner)
150
154
  definitions = Tapioca::Runtime::Trackers::MethodDefinition.method_definitions_for(method_name, owner)
151
155
 
@@ -171,7 +175,7 @@ module Tapioca
171
175
 
172
176
  # Helpers
173
177
 
174
- #: (Module constant) -> String?
178
+ #: (T::Module[top] constant) -> String?
175
179
  def name_of(constant)
176
180
  name = name_of_proxy_target(constant, super(class_of(constant)))
177
181
  return name if name
@@ -243,7 +247,7 @@ module Tapioca
243
247
 
244
248
  # Compiling
245
249
 
246
- #: (String symbol, Module constant) -> void
250
+ #: (String symbol, T::Module[top] constant) -> void
247
251
  def compile_foreign_constant(symbol, constant)
248
252
  return if skip_foreign_constant?(symbol, constant)
249
253
  return if seen?(symbol)
@@ -269,7 +273,7 @@ module Tapioca
269
273
  end
270
274
  end
271
275
 
272
- #: (String name, Module constant) -> void
276
+ #: (String name, T::Module[top] constant) -> void
273
277
  def compile_alias(name, constant)
274
278
  return if seen?(name)
275
279
 
@@ -324,7 +328,7 @@ module Tapioca
324
328
  @root << node
325
329
  end
326
330
 
327
- #: (String name, Module constant) -> void
331
+ #: (String name, T::Module[top] constant) -> void
328
332
  def compile_module(name, constant)
329
333
  return if skip_module?(name, constant)
330
334
  return if seen?(name)
@@ -335,7 +339,7 @@ module Tapioca
335
339
  push_scope(name, constant, scope)
336
340
  end
337
341
 
338
- #: (String name, Module constant) -> RBI::Scope
342
+ #: (String name, T::Module[top] constant) -> RBI::Scope
339
343
  def compile_scope(name, constant)
340
344
  scope = if constant.is_a?(Class)
341
345
  superclass = compile_superclass(constant)
@@ -418,7 +422,7 @@ module Tapioca
418
422
  false
419
423
  end
420
424
 
421
- #: (String name, Module constant) -> bool
425
+ #: (String name, T::Module[top] constant) -> bool
422
426
  def skip_alias?(name, constant)
423
427
  return true if symbol_in_payload?(name)
424
428
  return true unless constant_in_gem?(name)
@@ -436,12 +440,12 @@ module Tapioca
436
440
  false
437
441
  end
438
442
 
439
- #: (String name, Module constant) -> bool
443
+ #: (String name, T::Module[top] constant) -> bool
440
444
  def skip_foreign_constant?(name, constant)
441
445
  Tapioca::TypeVariableModule === constant
442
446
  end
443
447
 
444
- #: (String name, Module constant) -> bool
448
+ #: (String name, T::Module[top] constant) -> bool
445
449
  def skip_module?(name, constant)
446
450
  return true unless defined_in_gem?(constant, strict: false)
447
451
  return true if Tapioca::TypeVariableModule === constant
@@ -449,7 +453,7 @@ module Tapioca
449
453
  false
450
454
  end
451
455
 
452
- #: (Module constant, ?strict: bool) -> bool
456
+ #: (T::Module[top] constant, ?strict: bool) -> bool
453
457
  def defined_in_gem?(constant, strict: true)
454
458
  files = get_file_candidates(constant)
455
459
  .merge(Runtime::Trackers::ConstantDefinition.files_for(constant))
@@ -461,7 +465,7 @@ module Tapioca
461
465
  end
462
466
  end
463
467
 
464
- #: (Module constant) -> Set[String]
468
+ #: (T::Module[top] constant) -> Set[String]
465
469
  def get_file_candidates(constant)
466
470
  file_candidates_for(constant)
467
471
  rescue ArgumentError, NameError
@@ -492,7 +496,7 @@ module Tapioca
492
496
 
493
497
  # Helpers
494
498
 
495
- #: ((Module & T::Generic) constant) -> String
499
+ #: ((T::Module[top] & T::Generic) constant) -> String
496
500
  def generic_name_of(constant)
497
501
  type_name = T.must(constant.name)
498
502
  return type_name if type_name =~ /\[.*\]$/
@@ -508,7 +512,7 @@ module Tapioca
508
512
  "#{type_name}[#{type_variable_names}]"
509
513
  end
510
514
 
511
- #: (Module constant, String? class_name) -> String?
515
+ #: (T::Module[top] constant, String? class_name) -> String?
512
516
  def name_of_proxy_target(constant, class_name)
513
517
  return unless class_name == "ActiveSupport::Deprecation::DeprecatedConstantProxy"
514
518
 
@@ -64,7 +64,7 @@ module Tapioca
64
64
  [dependencies, missing_specs]
65
65
  end
66
66
 
67
- #: -> [T::Enumerable[Spec], Array[String]]
67
+ #: -> [Enumerable[Spec], Array[String]]
68
68
  def materialize_deps
69
69
  deps = definition.locked_gems.dependencies.except(*@excluded_gems).values
70
70
  resolve = definition.resolve
@@ -107,8 +107,6 @@ module Tapioca
107
107
  include GemHelper
108
108
 
109
109
  class << self
110
- extend T::Sig
111
-
112
110
  #: -> Hash[String, Gemfile::GemSpec]
113
111
  def spec_lookup_by_file_path
114
112
  @lookup ||= [*::Gem::Specification.default_stubs, *::Gem::Specification.stubs]
@@ -4,7 +4,6 @@
4
4
  module Tapioca
5
5
  # @requires_ancestor: Thor::Shell
6
6
  module CliHelper
7
- extend T::Sig
8
7
  #: (?String message, *(Symbol | Array[Symbol]) color) -> void
9
8
  def say_error(message = "", *color)
10
9
  # Thor has its own `say_error` now, but it has two problems:
@@ -4,7 +4,6 @@
4
4
  module Tapioca
5
5
  # @requires_ancestor: Thor
6
6
  module ConfigHelper
7
- extend T::Sig
8
7
  #: String
9
8
  attr_reader :command_name
10
9
 
@@ -89,7 +88,11 @@ module Tapioca
89
88
  @validating_config = false
90
89
  end
91
90
 
92
- #: (Hash[Symbol, Thor::Option] command_options, String config_key, Hash[untyped, untyped] config_options) -> Array[ConfigError]
91
+ #: (
92
+ #| Hash[Symbol, Thor::Option] command_options,
93
+ #| String config_key,
94
+ #| Hash[untyped, untyped] config_options
95
+ #| ) -> Array[ConfigError]
93
96
  def validate_config_options(command_options, config_key, config_options)
94
97
  config_options.filter_map do |config_option_key, config_option_value|
95
98
  command_option = command_options[config_option_key.to_sym]
@@ -4,7 +4,6 @@
4
4
  module Tapioca
5
5
  # @requires_ancestor: Thor
6
6
  module EnvHelper
7
- extend T::Sig
8
7
  #: (Hash[Symbol, untyped] options) -> void
9
8
  def set_environment(options) # rubocop:disable Naming/AccessorMethodName
10
9
  ENV["RAILS_ENV"] = ENV["RACK_ENV"] = options[:environment]
@@ -3,8 +3,6 @@
3
3
 
4
4
  module Tapioca
5
5
  module GemHelper
6
- extend T::Sig
7
-
8
6
  #: ((String | Pathname) app_dir, String full_gem_path) -> bool
9
7
  def gem_in_app_dir?(app_dir, full_gem_path)
10
8
  app_dir = to_realpath(app_dir)
@@ -3,8 +3,6 @@
3
3
 
4
4
  class GitAttributes
5
5
  class << self
6
- extend T::Sig
7
-
8
6
  #: (Pathname path) -> void
9
7
  def create_generated_attribute_file(path)
10
8
  create_gitattributes_file(path, <<~CONTENT)