sorbet-rails 0.6.0 → 0.6.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (93) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +69 -24
  3. data/bin/sorbet +6 -0
  4. data/lib/sorbet-rails/helper_rbi_formatter.rb +1 -1
  5. data/lib/sorbet-rails/mailer_rbi_formatter.rb +1 -1
  6. data/lib/sorbet-rails/model_plugins/active_record_attribute.rb +35 -24
  7. data/lib/sorbet-rails/model_rbi_formatter.rb +5 -1
  8. data/lib/sorbet-rails/model_utils.rb +17 -1
  9. data/lib/sorbet-rails/railtie.rb +10 -0
  10. data/lib/sorbet-rails/routes_rbi_formatter.rb +1 -1
  11. data/lib/sorbet-rails/sorbet_utils.rb +120 -25
  12. data/sorbet-rails.gemspec +5 -3
  13. data/spec/generators/rails-template.rb +16 -0
  14. data/spec/model_rbi_formatter_spec.rb +7 -0
  15. data/spec/sorbet_utils_spec.rb +25 -13
  16. data/spec/support/v5.0/Gemfile.lock +13 -11
  17. data/spec/support/v5.0/app/mailers/hogwarts_acceptance_mailer.rb +17 -1
  18. data/spec/support/v5.1/Gemfile.lock +13 -11
  19. data/spec/support/v5.1/app/mailers/hogwarts_acceptance_mailer.rb +17 -1
  20. data/spec/support/v5.2/Gemfile.lock +13 -11
  21. data/spec/support/v5.2/app/mailers/hogwarts_acceptance_mailer.rb +17 -1
  22. data/spec/support/v6.0/Gemfile.lock +14 -12
  23. data/spec/support/v6.0/app/mailers/application_mailer.rb +1 -1
  24. data/spec/support/v6.0/app/mailers/hogwarts_acceptance_mailer.rb +17 -1
  25. data/spec/test_data/v5.0/expected_application_mailer.rbi +1 -1
  26. data/spec/test_data/v5.0/expected_daily_prophet_mailer.rbi +1 -1
  27. data/spec/test_data/v5.0/expected_helpers.rbi +1 -1
  28. data/spec/test_data/v5.0/expected_helpers_with_application_and_devise_helpers.rbi +1 -1
  29. data/spec/test_data/v5.0/expected_hogwarts_acceptance_mailer.rbi +11 -1
  30. data/spec/test_data/v5.0/expected_internal_metadata.rbi +5 -4
  31. data/spec/test_data/v5.0/expected_potion.rbi +2 -1
  32. data/spec/test_data/v5.0/expected_robe.rbi +4 -3
  33. data/spec/test_data/v5.0/expected_routes.rbi +1 -1
  34. data/spec/test_data/v5.0/expected_schema_migration.rbi +2 -1
  35. data/spec/test_data/v5.0/expected_school.rbi +4 -3
  36. data/spec/test_data/v5.0/expected_spell_book.rbi +5 -4
  37. data/spec/test_data/v5.0/expected_squib.rbi +10 -9
  38. data/spec/test_data/v5.0/expected_wand.rbi +11 -10
  39. data/spec/test_data/v5.0/expected_wizard.rbi +10 -9
  40. data/spec/test_data/v5.0/expected_wizard_wo_spellbook.rbi +10 -9
  41. data/spec/test_data/v5.1/expected_application_mailer.rbi +1 -1
  42. data/spec/test_data/v5.1/expected_daily_prophet_mailer.rbi +1 -1
  43. data/spec/test_data/v5.1/expected_helpers.rbi +1 -1
  44. data/spec/test_data/v5.1/expected_helpers_with_application_and_devise_helpers.rbi +1 -1
  45. data/spec/test_data/v5.1/expected_hogwarts_acceptance_mailer.rbi +11 -1
  46. data/spec/test_data/v5.1/expected_internal_metadata.rbi +5 -4
  47. data/spec/test_data/v5.1/expected_potion.rbi +2 -1
  48. data/spec/test_data/v5.1/expected_robe.rbi +4 -3
  49. data/spec/test_data/v5.1/expected_routes.rbi +1 -1
  50. data/spec/test_data/v5.1/expected_schema_migration.rbi +2 -1
  51. data/spec/test_data/v5.1/expected_school.rbi +4 -3
  52. data/spec/test_data/v5.1/expected_spell_book.rbi +5 -4
  53. data/spec/test_data/v5.1/expected_squib.rbi +10 -9
  54. data/spec/test_data/v5.1/expected_wand.rbi +11 -10
  55. data/spec/test_data/v5.1/expected_wizard.rbi +10 -9
  56. data/spec/test_data/v5.1/expected_wizard_wo_spellbook.rbi +10 -9
  57. data/spec/test_data/v5.2/expected_application_mailer.rbi +1 -1
  58. data/spec/test_data/v5.2/expected_attachment.rbi +2 -1
  59. data/spec/test_data/v5.2/expected_blob.rbi +2 -1
  60. data/spec/test_data/v5.2/expected_daily_prophet_mailer.rbi +1 -1
  61. data/spec/test_data/v5.2/expected_helpers.rbi +1 -1
  62. data/spec/test_data/v5.2/expected_helpers_with_application_and_devise_helpers.rbi +1 -1
  63. data/spec/test_data/v5.2/expected_hogwarts_acceptance_mailer.rbi +11 -1
  64. data/spec/test_data/v5.2/expected_internal_metadata.rbi +5 -4
  65. data/spec/test_data/v5.2/expected_potion.rbi +2 -1
  66. data/spec/test_data/v5.2/expected_robe.rbi +4 -3
  67. data/spec/test_data/v5.2/expected_routes.rbi +1 -1
  68. data/spec/test_data/v5.2/expected_schema_migration.rbi +2 -1
  69. data/spec/test_data/v5.2/expected_school.rbi +4 -3
  70. data/spec/test_data/v5.2/expected_spell_book.rbi +5 -4
  71. data/spec/test_data/v5.2/expected_squib.rbi +10 -9
  72. data/spec/test_data/v5.2/expected_wand.rbi +11 -10
  73. data/spec/test_data/v5.2/expected_wizard.rbi +10 -9
  74. data/spec/test_data/v5.2/expected_wizard_wo_spellbook.rbi +10 -9
  75. data/spec/test_data/v6.0/expected_application_mailer.rbi +1 -1
  76. data/spec/test_data/v6.0/expected_attachment.rbi +2 -1
  77. data/spec/test_data/v6.0/expected_blob.rbi +2 -1
  78. data/spec/test_data/v6.0/expected_daily_prophet_mailer.rbi +1 -1
  79. data/spec/test_data/v6.0/expected_helpers.rbi +1 -1
  80. data/spec/test_data/v6.0/expected_helpers_with_application_and_devise_helpers.rbi +1 -1
  81. data/spec/test_data/v6.0/expected_hogwarts_acceptance_mailer.rbi +11 -1
  82. data/spec/test_data/v6.0/expected_internal_metadata.rbi +5 -4
  83. data/spec/test_data/v6.0/expected_potion.rbi +2 -1
  84. data/spec/test_data/v6.0/expected_robe.rbi +4 -3
  85. data/spec/test_data/v6.0/expected_routes.rbi +1 -1
  86. data/spec/test_data/v6.0/expected_schema_migration.rbi +2 -1
  87. data/spec/test_data/v6.0/expected_school.rbi +4 -3
  88. data/spec/test_data/v6.0/expected_spell_book.rbi +5 -4
  89. data/spec/test_data/v6.0/expected_squib.rbi +10 -9
  90. data/spec/test_data/v6.0/expected_wand.rbi +11 -10
  91. data/spec/test_data/v6.0/expected_wizard.rbi +10 -9
  92. data/spec/test_data/v6.0/expected_wizard_wo_spellbook.rbi +10 -9
  93. metadata +33 -4
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = %q{sorbet-rails}
3
- s.version = "0.6.0"
3
+ s.version = "0.6.1"
4
4
  s.date = %q{2019-04-18}
5
5
  s.summary = %q{Set of tools to make Sorbet work with Rails seamlessly.}
6
6
  s.authors = ["Chan Zuckerberg Initiative"]
@@ -16,8 +16,10 @@ Gem::Specification.new do |s|
16
16
  end
17
17
 
18
18
  s.add_dependency 'parlour', '~> 2.0'
19
- s.add_dependency 'sorbet', '>= 0.5'
20
- s.add_dependency 'sorbet-coerce', '>= 0.2.3'
19
+ s.add_dependency 'sorbet-runtime', '>= 0.5'
20
+ s.add_dependency 'sorbet-coerce', '>= 0.2.4'
21
+ s.add_dependency 'method_source', '>= 0.9.2'
22
+ s.add_dependency 'parser', '>= 2.7'
21
23
 
22
24
  # Development
23
25
  s.add_development_dependency 'rspec', '~> 3.8', '>= 3.8'
@@ -340,6 +340,22 @@ def create_mailers
340
340
  # TODO: mail acceptance letter to student
341
341
  end
342
342
 
343
+ sig {
344
+ params(
345
+ teacher: Wizard,
346
+ note: String,
347
+ student: Wizard,
348
+ special: T::Boolean,
349
+ ).void
350
+ }
351
+ def notify_teacher(
352
+ teacher,
353
+ note=nil,
354
+ student:,
355
+ special: false
356
+ ) # TODO: let the teacher know when a students accepted offer
357
+ end
358
+
343
359
  def notify_retry(student)
344
360
  # TODO: send more owls!!
345
361
  end
@@ -53,4 +53,11 @@ RSpec.describe SorbetRails::ModelRbiFormatter do
53
53
  )
54
54
  end
55
55
  end
56
+
57
+ it 'creates Model::RelationType alias at runtime' do
58
+ ActiveRecord::Base.descendants.each do |model|
59
+ expect(model.const_defined?("RelationType")).to be(true)
60
+ expect(model.const_get("RelationType")).to be_a(T::Private::Types::TypeAlias)
61
+ end
62
+ end
56
63
  end
@@ -34,8 +34,10 @@ class SorbetUtilsExampleClass
34
34
 
35
35
  def method_without_sig(p1, p2, *p3, p4:, **p5, &p6); end
36
36
 
37
- sig { params(p1: String, p2: String, p3: Integer).void }
38
- def method_with_default(p1, p2='abc', p3: 123); end
37
+ sig { params(p1: String, p2: String, p3: Integer, p4: Integer).void }
38
+ def method_with_default_with_sig(p1, p2='abc', p3:, p4: 123); end
39
+
40
+ def method_with_default(p1, p2='abc', p3:, p4: 123); end
39
41
 
40
42
  def method_with_missing_args_name(p1, *); end
41
43
 
@@ -131,17 +133,27 @@ RSpec.describe SorbetRails::SorbetUtils do
131
133
  ])
132
134
  end
133
135
 
134
- # TODO it doesn't know how to extract default values from method yet
135
- # Would have to rely on reading & parsing the source code :(
136
- # it 'works when method arguments have default' do
137
- # method_def = SorbetUtilsExampleClass.instance_method(:method_with_default)
138
- # parameters = SorbetRails::SorbetUtils.parameters_from_method_def(method_def)
139
- # expect(parameters).to match_array([
140
- # Parameter.new('p1', type: 'T.untyped'),
141
- # Parameter.new('p2', type: 'T.untyped', default: '"abc"'),
142
- # Parameter.new('p3:', type: 'T.untyped', default: '123'),
143
- # ])
144
- # end
136
+ it 'works when method arguments have default' do
137
+ method_def = SorbetUtilsExampleClass.instance_method(:method_with_default)
138
+ parameters = SorbetRails::SorbetUtils.parameters_from_method_def(method_def)
139
+ expect(parameters).to match_array([
140
+ Parameter.new('p1', type: 'T.untyped'),
141
+ Parameter.new('p2', type: 'T.untyped', default: "'abc'"),
142
+ Parameter.new('p3:', type: 'T.untyped'),
143
+ Parameter.new('p4:', type: 'T.untyped', default: '123'),
144
+ ])
145
+ end
146
+
147
+ it 'works when method arguments have default and method has sig' do
148
+ method_def = SorbetUtilsExampleClass.instance_method(:method_with_default_with_sig)
149
+ parameters = SorbetRails::SorbetUtils.parameters_from_method_def(method_def)
150
+ expect(parameters).to match_array([
151
+ Parameter.new('p1', type: 'String'),
152
+ Parameter.new('p2', type: 'String', default: "'abc'"),
153
+ Parameter.new('p3:', type: 'Integer'),
154
+ Parameter.new('p4:', type: 'Integer', default: '123'),
155
+ ])
156
+ end
145
157
 
146
158
  it 'works when method args doesnt have name' do
147
159
  method_def = SorbetUtilsExampleClass.instance_method(:method_with_missing_args_name)
@@ -1,10 +1,12 @@
1
1
  PATH
2
2
  remote: ../../..
3
3
  specs:
4
- sorbet-rails (0.6.0)
4
+ sorbet-rails (0.6.1)
5
+ method_source (>= 0.9.2)
5
6
  parlour (~> 2.0)
6
- sorbet (>= 0.5)
7
- sorbet-coerce (>= 0.2.3)
7
+ parser (>= 2.7)
8
+ sorbet-coerce (>= 0.2.4)
9
+ sorbet-runtime (>= 0.5)
8
10
 
9
11
  GEM
10
12
  remote: https://rubygems.org/
@@ -50,7 +52,7 @@ GEM
50
52
  ast (2.4.0)
51
53
  builder (3.2.4)
52
54
  byebug (11.1.1)
53
- commander (4.5.0)
55
+ commander (4.5.2)
54
56
  highline (~> 2.0.0)
55
57
  concurrent-ruby (1.1.6)
56
58
  crass (1.0.6)
@@ -72,14 +74,14 @@ GEM
72
74
  mini_portile2 (2.4.0)
73
75
  minitest (5.14.0)
74
76
  nio4r (2.5.2)
75
- nokogiri (1.10.8)
77
+ nokogiri (1.10.9)
76
78
  mini_portile2 (~> 2.4.0)
77
79
  parlour (2.0.0)
78
80
  commander (~> 4.5)
79
81
  parser
80
82
  rainbow (~> 3.0)
81
83
  sorbet-runtime (>= 0.5)
82
- parser (2.7.0.3)
84
+ parser (2.7.0.4)
83
85
  ast (~> 2.4.0)
84
86
  polyfill (1.8.0)
85
87
  puma (3.12.4)
@@ -112,15 +114,15 @@ GEM
112
114
  rainbow (3.0.0)
113
115
  rake (13.0.1)
114
116
  safe_type (1.1.1)
115
- sorbet (0.5.5406)
116
- sorbet-static (= 0.5.5406)
117
- sorbet-coerce (0.2.3)
117
+ sorbet (0.5.5420)
118
+ sorbet-static (= 0.5.5420)
119
+ sorbet-coerce (0.2.4)
118
120
  polyfill (~> 1.8)
119
121
  safe_type (~> 1.1, >= 1.1.1)
120
122
  sorbet (>= 0.4.4704)
121
123
  sorbet-runtime (>= 0.4.4704)
122
- sorbet-runtime (0.5.5406)
123
- sorbet-static (0.5.5406-universal-darwin-14)
124
+ sorbet-runtime (0.5.5420)
125
+ sorbet-static (0.5.5420-universal-darwin-14)
124
126
  sprockets (4.0.0)
125
127
  concurrent-ruby (~> 1.0)
126
128
  rack (> 1, < 3)
@@ -1,4 +1,4 @@
1
- # typed: true
1
+ # typed: false
2
2
  class HogwartsAcceptanceMailer < ApplicationMailer
3
3
  extend T::Sig
4
4
 
@@ -7,6 +7,22 @@ class HogwartsAcceptanceMailer < ApplicationMailer
7
7
  # TODO: mail acceptance letter to student
8
8
  end
9
9
 
10
+ sig {
11
+ params(
12
+ teacher: Wizard,
13
+ note: String,
14
+ student: Wizard,
15
+ special: T::Boolean,
16
+ ).void
17
+ }
18
+ def notify_teacher(
19
+ teacher,
20
+ note=nil,
21
+ student:,
22
+ special: false
23
+ ) # TODO: let the teacher know when a students accepted offer
24
+ end
25
+
10
26
  def notify_retry(student)
11
27
  # TODO: send more owls!!
12
28
  end
@@ -1,10 +1,12 @@
1
1
  PATH
2
2
  remote: ../../..
3
3
  specs:
4
- sorbet-rails (0.6.0)
4
+ sorbet-rails (0.6.1)
5
+ method_source (>= 0.9.2)
5
6
  parlour (~> 2.0)
6
- sorbet (>= 0.5)
7
- sorbet-coerce (>= 0.2.3)
7
+ parser (>= 2.7)
8
+ sorbet-coerce (>= 0.2.4)
9
+ sorbet-runtime (>= 0.5)
8
10
 
9
11
  GEM
10
12
  remote: https://rubygems.org/
@@ -51,7 +53,7 @@ GEM
51
53
  bindex (0.8.1)
52
54
  builder (3.2.4)
53
55
  byebug (11.1.1)
54
- commander (4.5.0)
56
+ commander (4.5.2)
55
57
  highline (~> 2.0.0)
56
58
  concurrent-ruby (1.1.6)
57
59
  crass (1.0.6)
@@ -73,14 +75,14 @@ GEM
73
75
  mini_portile2 (2.4.0)
74
76
  minitest (5.14.0)
75
77
  nio4r (2.5.2)
76
- nokogiri (1.10.8)
78
+ nokogiri (1.10.9)
77
79
  mini_portile2 (~> 2.4.0)
78
80
  parlour (2.0.0)
79
81
  commander (~> 4.5)
80
82
  parser
81
83
  rainbow (~> 3.0)
82
84
  sorbet-runtime (>= 0.5)
83
- parser (2.7.0.3)
85
+ parser (2.7.0.4)
84
86
  ast (~> 2.4.0)
85
87
  polyfill (1.8.0)
86
88
  puma (3.12.4)
@@ -113,15 +115,15 @@ GEM
113
115
  rainbow (3.0.0)
114
116
  rake (13.0.1)
115
117
  safe_type (1.1.1)
116
- sorbet (0.5.5406)
117
- sorbet-static (= 0.5.5406)
118
- sorbet-coerce (0.2.3)
118
+ sorbet (0.5.5420)
119
+ sorbet-static (= 0.5.5420)
120
+ sorbet-coerce (0.2.4)
119
121
  polyfill (~> 1.8)
120
122
  safe_type (~> 1.1, >= 1.1.1)
121
123
  sorbet (>= 0.4.4704)
122
124
  sorbet-runtime (>= 0.4.4704)
123
- sorbet-runtime (0.5.5406)
124
- sorbet-static (0.5.5406-universal-darwin-14)
125
+ sorbet-runtime (0.5.5420)
126
+ sorbet-static (0.5.5420-universal-darwin-14)
125
127
  sprockets (4.0.0)
126
128
  concurrent-ruby (~> 1.0)
127
129
  rack (> 1, < 3)
@@ -1,4 +1,4 @@
1
- # typed: true
1
+ # typed: false
2
2
  class HogwartsAcceptanceMailer < ApplicationMailer
3
3
  extend T::Sig
4
4
 
@@ -7,6 +7,22 @@ class HogwartsAcceptanceMailer < ApplicationMailer
7
7
  # TODO: mail acceptance letter to student
8
8
  end
9
9
 
10
+ sig {
11
+ params(
12
+ teacher: Wizard,
13
+ note: String,
14
+ student: Wizard,
15
+ special: T::Boolean,
16
+ ).void
17
+ }
18
+ def notify_teacher(
19
+ teacher,
20
+ note=nil,
21
+ student:,
22
+ special: false
23
+ ) # TODO: let the teacher know when a students accepted offer
24
+ end
25
+
10
26
  def notify_retry(student)
11
27
  # TODO: send more owls!!
12
28
  end
@@ -1,10 +1,12 @@
1
1
  PATH
2
2
  remote: ../../..
3
3
  specs:
4
- sorbet-rails (0.6.0)
4
+ sorbet-rails (0.6.1)
5
+ method_source (>= 0.9.2)
5
6
  parlour (~> 2.0)
6
- sorbet (>= 0.5)
7
- sorbet-coerce (>= 0.2.3)
7
+ parser (>= 2.7)
8
+ sorbet-coerce (>= 0.2.4)
9
+ sorbet-runtime (>= 0.5)
8
10
 
9
11
  GEM
10
12
  remote: https://rubygems.org/
@@ -55,7 +57,7 @@ GEM
55
57
  bindex (0.8.1)
56
58
  builder (3.2.4)
57
59
  byebug (11.1.1)
58
- commander (4.5.0)
60
+ commander (4.5.2)
59
61
  highline (~> 2.0.0)
60
62
  concurrent-ruby (1.1.6)
61
63
  crass (1.0.6)
@@ -80,14 +82,14 @@ GEM
80
82
  mini_portile2 (2.4.0)
81
83
  minitest (5.14.0)
82
84
  nio4r (2.5.2)
83
- nokogiri (1.10.8)
85
+ nokogiri (1.10.9)
84
86
  mini_portile2 (~> 2.4.0)
85
87
  parlour (2.0.0)
86
88
  commander (~> 4.5)
87
89
  parser
88
90
  rainbow (~> 3.0)
89
91
  sorbet-runtime (>= 0.5)
90
- parser (2.7.0.3)
92
+ parser (2.7.0.4)
91
93
  ast (~> 2.4.0)
92
94
  polyfill (1.8.0)
93
95
  puma (3.12.4)
@@ -121,15 +123,15 @@ GEM
121
123
  rainbow (3.0.0)
122
124
  rake (13.0.1)
123
125
  safe_type (1.1.1)
124
- sorbet (0.5.5406)
125
- sorbet-static (= 0.5.5406)
126
- sorbet-coerce (0.2.3)
126
+ sorbet (0.5.5420)
127
+ sorbet-static (= 0.5.5420)
128
+ sorbet-coerce (0.2.4)
127
129
  polyfill (~> 1.8)
128
130
  safe_type (~> 1.1, >= 1.1.1)
129
131
  sorbet (>= 0.4.4704)
130
132
  sorbet-runtime (>= 0.4.4704)
131
- sorbet-runtime (0.5.5406)
132
- sorbet-static (0.5.5406-universal-darwin-14)
133
+ sorbet-runtime (0.5.5420)
134
+ sorbet-static (0.5.5420-universal-darwin-14)
133
135
  sprockets (4.0.0)
134
136
  concurrent-ruby (~> 1.0)
135
137
  rack (> 1, < 3)
@@ -1,4 +1,4 @@
1
- # typed: true
1
+ # typed: false
2
2
  class HogwartsAcceptanceMailer < ApplicationMailer
3
3
  extend T::Sig
4
4
 
@@ -7,6 +7,22 @@ class HogwartsAcceptanceMailer < ApplicationMailer
7
7
  # TODO: mail acceptance letter to student
8
8
  end
9
9
 
10
+ sig {
11
+ params(
12
+ teacher: Wizard,
13
+ note: String,
14
+ student: Wizard,
15
+ special: T::Boolean,
16
+ ).void
17
+ }
18
+ def notify_teacher(
19
+ teacher,
20
+ note=nil,
21
+ student:,
22
+ special: false
23
+ ) # TODO: let the teacher know when a students accepted offer
24
+ end
25
+
10
26
  def notify_retry(student)
11
27
  # TODO: send more owls!!
12
28
  end
@@ -1,10 +1,12 @@
1
1
  PATH
2
2
  remote: ../../..
3
3
  specs:
4
- sorbet-rails (0.6.0)
4
+ sorbet-rails (0.6.1)
5
+ method_source (>= 0.9.2)
5
6
  parlour (~> 2.0)
6
- sorbet (>= 0.5)
7
- sorbet-coerce (>= 0.2.3)
7
+ parser (>= 2.7)
8
+ sorbet-coerce (>= 0.2.4)
9
+ sorbet-runtime (>= 0.5)
8
10
 
9
11
  GEM
10
12
  remote: https://rubygems.org/
@@ -68,7 +70,7 @@ GEM
68
70
  bindex (0.8.1)
69
71
  builder (3.2.4)
70
72
  byebug (11.1.1)
71
- commander (4.5.0)
73
+ commander (4.5.2)
72
74
  highline (~> 2.0.0)
73
75
  concurrent-ruby (1.1.6)
74
76
  crass (1.0.6)
@@ -93,14 +95,14 @@ GEM
93
95
  mini_portile2 (2.4.0)
94
96
  minitest (5.14.0)
95
97
  nio4r (2.5.2)
96
- nokogiri (1.10.8)
98
+ nokogiri (1.10.9)
97
99
  mini_portile2 (~> 2.4.0)
98
100
  parlour (2.0.0)
99
101
  commander (~> 4.5)
100
102
  parser
101
103
  rainbow (~> 3.0)
102
104
  sorbet-runtime (>= 0.5)
103
- parser (2.7.0.3)
105
+ parser (2.7.0.4)
104
106
  ast (~> 2.4.0)
105
107
  polyfill (1.8.0)
106
108
  puma (3.12.4)
@@ -136,15 +138,15 @@ GEM
136
138
  rainbow (3.0.0)
137
139
  rake (13.0.1)
138
140
  safe_type (1.1.1)
139
- sorbet (0.5.5406)
140
- sorbet-static (= 0.5.5406)
141
- sorbet-coerce (0.2.3)
141
+ sorbet (0.5.5420)
142
+ sorbet-static (= 0.5.5420)
143
+ sorbet-coerce (0.2.4)
142
144
  polyfill (~> 1.8)
143
145
  safe_type (~> 1.1, >= 1.1.1)
144
146
  sorbet (>= 0.4.4704)
145
147
  sorbet-runtime (>= 0.4.4704)
146
- sorbet-runtime (0.5.5406)
147
- sorbet-static (0.5.5406-universal-darwin-14)
148
+ sorbet-runtime (0.5.5420)
149
+ sorbet-static (0.5.5420-universal-darwin-14)
148
150
  sprockets (4.0.0)
149
151
  concurrent-ruby (~> 1.0)
150
152
  rack (> 1, < 3)
@@ -165,7 +167,7 @@ GEM
165
167
  websocket-driver (0.7.1)
166
168
  websocket-extensions (>= 0.1.0)
167
169
  websocket-extensions (0.1.4)
168
- zeitwerk (2.2.2)
170
+ zeitwerk (2.3.0)
169
171
 
170
172
  PLATFORMS
171
173
  ruby