sorbet-rails 0.7.1 → 0.7.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +9 -7
  3. data/lib/sorbet-rails/active_record_rbi_formatter.rb +2 -2
  4. data/lib/sorbet-rails/helper_rbi_formatter.rb +1 -1
  5. data/lib/sorbet-rails/job_rbi_formatter.rb +4 -2
  6. data/lib/sorbet-rails/mailer_rbi_formatter.rb +3 -3
  7. data/lib/sorbet-rails/model_plugins/active_record_assoc.rb +1 -1
  8. data/lib/sorbet-rails/model_plugins/active_record_attribute.rb +10 -10
  9. data/lib/sorbet-rails/routes_rbi_formatter.rb +2 -2
  10. data/sorbet-rails.gemspec +2 -2
  11. data/spec/generators/sorbet_test_cases.rb +4 -2
  12. data/spec/sorbet_spec.rb +6 -6
  13. data/spec/support/v5.0/Gemfile.lock +8 -7
  14. data/spec/support/v5.0/sorbet_test_cases.rb +4 -2
  15. data/spec/support/v5.1/Gemfile.lock +8 -7
  16. data/spec/support/v5.1/sorbet_test_cases.rb +4 -2
  17. data/spec/support/v5.2/Gemfile.lock +8 -7
  18. data/spec/support/v5.2/sorbet_test_cases.rb +4 -2
  19. data/spec/support/v6.0/Gemfile.lock +8 -7
  20. data/spec/support/v6.0/sorbet_test_cases.rb +4 -2
  21. data/spec/test_data/v5.0/expected_application_job.rbi +2 -2
  22. data/spec/test_data/v5.0/expected_award_house_point_hourglasses.rbi +2 -2
  23. data/spec/test_data/v5.0/expected_custom_application_job.rbi +2 -2
  24. data/spec/test_data/v5.0/expected_custom_award_house_point_hourglasses.rbi +2 -2
  25. data/spec/test_data/v5.0/expected_spell_book.rbi +9 -9
  26. data/spec/test_data/v5.0/expected_wand.rbi +10 -10
  27. data/spec/test_data/v5.0/expected_wizard.rbi +58 -58
  28. data/spec/test_data/v5.0/expected_wizard_wo_spellbook.rbi +58 -58
  29. data/spec/test_data/v5.1/expected_application_job.rbi +2 -2
  30. data/spec/test_data/v5.1/expected_award_house_point_hourglasses.rbi +2 -2
  31. data/spec/test_data/v5.1/expected_custom_application_job.rbi +2 -2
  32. data/spec/test_data/v5.1/expected_custom_award_house_point_hourglasses.rbi +2 -2
  33. data/spec/test_data/v5.1/expected_spell_book.rbi +9 -9
  34. data/spec/test_data/v5.1/expected_wand.rbi +10 -10
  35. data/spec/test_data/v5.1/expected_wizard.rbi +58 -58
  36. data/spec/test_data/v5.1/expected_wizard_wo_spellbook.rbi +58 -58
  37. data/spec/test_data/v5.2/expected_application_job.rbi +2 -2
  38. data/spec/test_data/v5.2/expected_award_house_point_hourglasses.rbi +2 -2
  39. data/spec/test_data/v5.2/expected_custom_application_job.rbi +2 -2
  40. data/spec/test_data/v5.2/expected_custom_award_house_point_hourglasses.rbi +2 -2
  41. data/spec/test_data/v5.2/expected_spell_book.rbi +9 -9
  42. data/spec/test_data/v5.2/expected_wand.rbi +10 -10
  43. data/spec/test_data/v5.2/expected_wizard.rbi +58 -58
  44. data/spec/test_data/v5.2/expected_wizard_wo_spellbook.rbi +58 -58
  45. data/spec/test_data/v6.0/expected_application_job.rbi +2 -2
  46. data/spec/test_data/v6.0/expected_award_house_point_hourglasses.rbi +2 -2
  47. data/spec/test_data/v6.0/expected_custom_application_job.rbi +2 -2
  48. data/spec/test_data/v6.0/expected_custom_award_house_point_hourglasses.rbi +2 -2
  49. data/spec/test_data/v6.0/expected_spell_book.rbi +9 -9
  50. data/spec/test_data/v6.0/expected_wand.rbi +10 -10
  51. data/spec/test_data/v6.0/expected_wizard.rbi +58 -58
  52. data/spec/test_data/v6.0/expected_wizard_wo_spellbook.rbi +58 -58
  53. metadata +5 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cc9807ef098eeb05a61378ffe82fa56864f5d0543ba20031153bd86ac604a356
4
- data.tar.gz: e9fa8ed4c3390685d352486d3bde21b4301ce3f9d1b600b79198aba797bee560
3
+ metadata.gz: ca33522fb17d2e6461e49a4d0a4b851a046193c046ec2460d7ff0f1b5363fd8f
4
+ data.tar.gz: b59025b18da945ed7c81e2e9dbee17f4994f9aa439b071568aba0161034fd4cb
5
5
  SHA512:
6
- metadata.gz: 0374a3b24474fbf04051edfdf372b11132dcd4293d9cca7a1a692e15e63aad07a55d5f72c10830bb96799aa31d175ffd20584d81c58bbee2b4c293c27ddcc33f
7
- data.tar.gz: a8826daddfef144295b9df4438e669e7cf42d494666d47073f7868b6481c329b9e8058cc2d308598c0d34035065d6b2f1c7611113a85c5a0b8912f91af363d3c
6
+ metadata.gz: a50fdea8e48fabf8da5c5bfc619de8b6cfc72410f17a4011c723fd6f45d8bbd5f1d65057289afcbdec4cb1691afd00385c90c987be753cf04d7d1d28d565190f
7
+ data.tar.gz: ded509eaa92c25474c8e098269ea85436307f86689c0363c880e08d7100699f64e05cefb0a374dccdef32245d112e4d91c2a44859a0034defb47df7bed9a5d5f
data/README.md CHANGED
@@ -9,7 +9,7 @@ This gem adds a few Rake tasks to generate Ruby Interface (RBI) files for dynami
9
9
 
10
10
  `sorbet-rails` supports Rails 5+ or later.
11
11
 
12
- **Notice**: we no longer supports Rails 4.2. [Version 0.5.6](https://github.com/chanzuckerberg/sorbet-rails/releases/tag/v0.5.6) is the last version supporting Rails 4.2.
12
+ **Notice**: we no longer support Rails 4.2. [Version 0.5.6](https://github.com/chanzuckerberg/sorbet-rails/releases/tag/v0.5.6) is the last version supporting Rails 4.2.
13
13
 
14
14
  ## Initial Setup
15
15
 
@@ -136,12 +136,14 @@ ie.
136
136
  Will generate this enum:
137
137
 
138
138
  ```ruby
139
- class Wizard::House < T::Enum
140
- enums do
141
- Gryffindor = new('Gryffindor')
142
- Hufflepuff = new('Hufflepuff')
143
- Ravenclaw = new('Ravenclaw')
144
- Slytherin = new('Slytherin')
139
+ class Wizard
140
+ class House < T::Enum
141
+ enums do
142
+ Gryffindor = new('Gryffindor')
143
+ Hufflepuff = new('Hufflepuff')
144
+ Ravenclaw = new('Ravenclaw')
145
+ Slytherin = new('Slytherin')
146
+ end
145
147
  end
146
148
  end
147
149
  ```
@@ -12,7 +12,7 @@ class SorbetRails::ActiveRecordRbiFormatter
12
12
 
13
13
  parlour = T.let(Parlour::RbiGenerator.new, Parlour::RbiGenerator)
14
14
 
15
- parlour.root.add_comments([
15
+ parlour.root.add_comment([
16
16
  'This is an autogenerated file for Rails\' ActiveRecord.',
17
17
  'Please rerun bundle exec rake rails_rbi:active_record to regenerate.'
18
18
  ])
@@ -31,7 +31,7 @@ class SorbetRails::ActiveRecordRbiFormatter
31
31
 
32
32
  parlour = T.let(Parlour::RbiGenerator.new, Parlour::RbiGenerator)
33
33
 
34
- parlour.root.add_comments([
34
+ parlour.root.add_comment([
35
35
  'This is an autogenerated file for Rails\' ActiveRecord.',
36
36
  'Please rerun bundle exec rake rails_rbi:active_record to regenerate.'
37
37
  ])
@@ -16,7 +16,7 @@ class SorbetRails::HelperRbiFormatter
16
16
  def generate_rbi
17
17
  puts "-- Generate sigs for helpers --"
18
18
 
19
- @parlour.root.add_comments([
19
+ @parlour.root.add_comment([
20
20
  'This is an autogenerated file for Rails helpers.',
21
21
  'Please rerun bundle exec rake rails_rbi:helpers to regenerate.'
22
22
  ])
@@ -22,23 +22,25 @@ module SorbetRails
22
22
 
23
23
  sig { void }
24
24
  def populate_rbi
25
- @rbi_generator.root.add_comments([
25
+ @rbi_generator.root.add_comment([
26
26
  'This is an autogenerated file for Rails\' jobs.',
27
27
  'Please rerun bundle exec rake rails_rbi:jobs to regenerate.'
28
28
  ])
29
29
 
30
- @rbi_generator.root.create_class(@job_class.name) do |job_rbi|
30
+ @rbi_generator.root.create_class(T.must(@job_class.name)) do |job_rbi|
31
31
  method_def = @job_class.instance_method(:perform)
32
32
  parameters = SorbetRails::SorbetUtils.parameters_from_method_def(method_def)
33
33
  job_rbi.create_method(
34
34
  "perform_later",
35
35
  parameters: parameters,
36
36
  class_method: true,
37
+ return_type: @job_class.name,
37
38
  )
38
39
  job_rbi.create_method(
39
40
  "perform_now",
40
41
  parameters: parameters,
41
42
  class_method: true,
43
+ return_type: @job_class.name,
42
44
  )
43
45
  # Override the signature for "set" so that we can support it
44
46
  # At run-time, this method returns a `ActiveJob::ConfiguredJob` but
@@ -22,17 +22,17 @@ module SorbetRails
22
22
 
23
23
  sig { void }
24
24
  def populate_rbi
25
- @rbi_generator.root.add_comments([
25
+ @rbi_generator.root.add_comment([
26
26
  "This is an autogenerated file for Rails' mailers.",
27
27
  'Please rerun bundle exec rake rails_rbi:mailers to regenerate.'
28
28
  ])
29
29
 
30
- @rbi_generator.root.create_class(@mailer_class.name) do |mailer_rbi|
30
+ @rbi_generator.root.create_class(T.must(@mailer_class.name)) do |mailer_rbi|
31
31
  @mailer_class.action_methods.to_a.sort.each do |mailer_method|
32
32
  method_def = @mailer_class.instance_method(mailer_method)
33
33
  parameters = SorbetRails::SorbetUtils.parameters_from_method_def(method_def)
34
34
  mailer_rbi.create_method(
35
- mailer_method,
35
+ mailer_method.to_s,
36
36
  parameters: parameters,
37
37
  return_type: 'ActionMailer::MessageDelivery',
38
38
  class_method: true,
@@ -137,7 +137,7 @@ class SorbetRails::ModelPlugins::ActiveRecordAssoc < SorbetRails::ModelPlugins::
137
137
  if reflection.klass.table_exists?
138
138
  # Normally the id_type is an Integer, but it could be a String if using
139
139
  # UUIDs.
140
- id_type = type_for_column_def(reflection.klass.columns_hash["id"]).to_s
140
+ id_type = type_for_column_def(reflection.klass.columns_hash[reflection.klass.primary_key]).to_s
141
141
  else
142
142
  id_type = "T.untyped"
143
143
  end
@@ -73,18 +73,18 @@ class SorbetRails::ModelPlugins::ActiveRecordAttribute < SorbetRails::ModelPlugi
73
73
  # do not generate the methods for enums in strict_mode
74
74
  should_skip_setter_getter = config.strict_mode
75
75
 
76
- t_enum_type = "#{model_class_name}::#{config.class_name}"
77
-
78
- # define T::Enum class & values
79
- enum_values = T.must(model_defined_enums[column_name])
80
- t_enum_values = @model_class.gen_typed_enum_values(enum_values.keys)
81
- root.create_enum_class(
82
- t_enum_type,
83
- enums: t_enum_values.map { |k, v| [v, "%q{#{k}}"] },
84
- )
76
+ root.create_class(model_class_name) do |model_class|
77
+ # define T::Enum class & values
78
+ enum_values = T.must(model_defined_enums[column_name])
79
+ t_enum_values = @model_class.gen_typed_enum_values(enum_values.keys)
80
+ model_class.create_enum_class(
81
+ config.class_name,
82
+ enums: t_enum_values.map { |k, v| [v, "%q{#{k}}"] },
83
+ )
84
+ end
85
85
 
86
86
  # define t_enum setter/getter
87
- assignable_type = t_enum_type
87
+ assignable_type = "#{model_class_name}::#{config.class_name}"
88
88
  assignable_type = "T.nilable(#{assignable_type})" if nilable_column
89
89
  # add directly to model_class_rbi because they are included
90
90
  # by sorbet's hidden.rbi
@@ -19,7 +19,7 @@ class SorbetRails::RoutesRbiFormatter
19
19
 
20
20
  sig { params(routes: T.untyped).void }
21
21
  def header(routes)
22
- @parlour.root.add_comments([
22
+ @parlour.root.add_comment([
23
23
  'This is an autogenerated file for Rails routes.',
24
24
  'Please run bundle exec rake rails_rbi:routes to regenerate.'
25
25
  ])
@@ -39,7 +39,7 @@ class SorbetRails::RoutesRbiFormatter
39
39
 
40
40
  sig { params(routes: T.untyped, filter: T.untyped).void }
41
41
  def no_routes(routes = nil, filter = nil)
42
- @parlour.root.add_comments([
42
+ @parlour.root.add_comment([
43
43
  'You do not have any routes defined!',
44
44
  'Please add some routes in config/routes.rb.',
45
45
  'For more information about routes, see the Rails guide: https://guides.rubyonrails.org/routing.html.'
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = %q{sorbet-rails}
3
- s.version = "0.7.1"
3
+ s.version = "0.7.2"
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"]
@@ -15,7 +15,7 @@ Gem::Specification.new do |s|
15
15
  `git ls-files -z`.split("\x0").select { |f| f.match(%r{^(test|spec|features)/}) }
16
16
  end
17
17
 
18
- s.add_dependency 'parlour', '~> 2.0'
18
+ s.add_dependency 'parlour', '>= 4.0.1'
19
19
  s.add_dependency 'sorbet-runtime', '>= 0.5'
20
20
  s.add_dependency 'sorbet-coerce', '>= 0.2.6'
21
21
  s.add_dependency 'method_source', '>= 0.9.2'
@@ -312,7 +312,10 @@ T.assert_type!(Wand.mythicals, T::Array[Wand])
312
312
  T.assert_type!(HogwartsAcceptanceMailer.notify(wizard), ActionMailer::MessageDelivery)
313
313
 
314
314
  # Jobs
315
- AwardHousePointHourglasses.perform_later(student: wizard, point: 10)
315
+ T.assert_type!(
316
+ AwardHousePointHourglasses.perform_later(student: wizard, point: 10),
317
+ AwardHousePointHourglasses
318
+ )
316
319
  AwardHousePointHourglasses.perform_now(student: wizard, point: 10)
317
320
  AwardHousePointHourglasses.
318
321
  set(queue: :daily, wait: 5.minutes).
@@ -321,7 +324,6 @@ AwardHousePointHourglasses.
321
324
  set(priority: 10, wait_until: Time.now.tomorrow).
322
325
  perform_later(student: wizard, point: 10)
323
326
 
324
-
325
327
  T.assert_type!(wizard.broom_nimbus?, T::Boolean)
326
328
  T.assert_type!(wizard.color_brown_eyes?, T::Boolean)
327
329
  T.assert_type!(wizard.quidditch_keeper?, T::Boolean)
@@ -1,7 +1,7 @@
1
1
  require 'rails_helper'
2
2
  require 'open3'
3
3
 
4
- RSpec.describe 'sorbet' do
4
+ RSpec.xdescribe 'sorbet' do
5
5
  let!(:harry) do
6
6
  Wizard.create!(
7
7
  name: 'Harry Potter',
@@ -42,11 +42,6 @@ RSpec.describe 'sorbet' do
42
42
  chdir: Rails.root.to_path,
43
43
  )
44
44
 
45
- stdout, stderr, status = Open3.capture3(
46
- 'bundle', 'exec', 'srb', 'tc',
47
- chdir: Rails.root.to_path,
48
- )
49
-
50
45
  if status != 0
51
46
  puts "================================="
52
47
  puts "stdout #{stdout}"
@@ -55,6 +50,11 @@ RSpec.describe 'sorbet' do
55
50
  puts "================================="
56
51
  end
57
52
 
53
+ stdout, stderr, status = Open3.capture3(
54
+ 'bundle', 'exec', 'srb', 'tc',
55
+ chdir: Rails.root.to_path,
56
+ )
57
+
58
58
  # Ensure sorbet_test_cases.rb is set to `typed: true` since srb init may
59
59
  # set it to false.
60
60
  sorbet_test_cases_path = Rails.root.join('sorbet_test_cases.rb')
@@ -1,9 +1,9 @@
1
1
  PATH
2
2
  remote: ../../..
3
3
  specs:
4
- sorbet-rails (0.7.1)
4
+ sorbet-rails (0.7.2)
5
5
  method_source (>= 0.9.2)
6
- parlour (~> 2.0)
6
+ parlour (>= 4.0.1)
7
7
  parser (>= 2.7)
8
8
  sorbet-coerce (>= 0.2.6)
9
9
  sorbet-runtime (>= 0.5)
@@ -76,14 +76,14 @@ GEM
76
76
  nio4r (2.5.2)
77
77
  nokogiri (1.10.9)
78
78
  mini_portile2 (~> 2.4.0)
79
- parlour (2.1.0)
79
+ parlour (4.0.1)
80
80
  commander (~> 4.5)
81
81
  parser
82
82
  rainbow (~> 3.0)
83
83
  sorbet-runtime (>= 0.5)
84
- parser (2.7.1.4)
84
+ parser (2.7.2.0)
85
85
  ast (~> 2.4.1)
86
- polyfill (1.8.0)
86
+ polyfill (1.9.0)
87
87
  puma (3.12.6)
88
88
  rack (2.2.3)
89
89
  rack-test (0.6.3)
@@ -122,7 +122,7 @@ GEM
122
122
  sorbet (>= 0.4.4704)
123
123
  sorbet-runtime (>= 0.4.4704)
124
124
  sorbet-runtime (0.5.5480)
125
- sorbet-static (0.5.5480-universal-darwin-14)
125
+ sorbet-static (0.5.5480-universal-darwin-19)
126
126
  sprockets (4.0.0)
127
127
  concurrent-ruby (~> 1.0)
128
128
  rack (> 1, < 3)
@@ -141,6 +141,7 @@ GEM
141
141
 
142
142
  PLATFORMS
143
143
  ruby
144
+ x86_64-darwin-19
144
145
 
145
146
  DEPENDENCIES
146
147
  byebug
@@ -154,4 +155,4 @@ DEPENDENCIES
154
155
  tzinfo-data
155
156
 
156
157
  BUNDLED WITH
157
- 2.0.2
158
+ 2.2.0
@@ -312,7 +312,10 @@ T.assert_type!(Wand.mythicals, T::Array[Wand])
312
312
  T.assert_type!(HogwartsAcceptanceMailer.notify(wizard), ActionMailer::MessageDelivery)
313
313
 
314
314
  # Jobs
315
- AwardHousePointHourglasses.perform_later(student: wizard, point: 10)
315
+ T.assert_type!(
316
+ AwardHousePointHourglasses.perform_later(student: wizard, point: 10),
317
+ AwardHousePointHourglasses
318
+ )
316
319
  AwardHousePointHourglasses.perform_now(student: wizard, point: 10)
317
320
  AwardHousePointHourglasses.
318
321
  set(queue: :daily, wait: 5.minutes).
@@ -321,7 +324,6 @@ AwardHousePointHourglasses.
321
324
  set(priority: 10, wait_until: Time.now.tomorrow).
322
325
  perform_later(student: wizard, point: 10)
323
326
 
324
-
325
327
  T.assert_type!(wizard.broom_nimbus?, T::Boolean)
326
328
  T.assert_type!(wizard.color_brown_eyes?, T::Boolean)
327
329
  T.assert_type!(wizard.quidditch_keeper?, T::Boolean)
@@ -1,9 +1,9 @@
1
1
  PATH
2
2
  remote: ../../..
3
3
  specs:
4
- sorbet-rails (0.7.1)
4
+ sorbet-rails (0.7.2)
5
5
  method_source (>= 0.9.2)
6
- parlour (~> 2.0)
6
+ parlour (>= 4.0.1)
7
7
  parser (>= 2.7)
8
8
  sorbet-coerce (>= 0.2.6)
9
9
  sorbet-runtime (>= 0.5)
@@ -77,14 +77,14 @@ GEM
77
77
  nio4r (2.5.2)
78
78
  nokogiri (1.10.9)
79
79
  mini_portile2 (~> 2.4.0)
80
- parlour (2.1.0)
80
+ parlour (4.0.1)
81
81
  commander (~> 4.5)
82
82
  parser
83
83
  rainbow (~> 3.0)
84
84
  sorbet-runtime (>= 0.5)
85
- parser (2.7.1.4)
85
+ parser (2.7.2.0)
86
86
  ast (~> 2.4.1)
87
- polyfill (1.8.0)
87
+ polyfill (1.9.0)
88
88
  puma (3.12.4)
89
89
  rack (2.2.3)
90
90
  rack-test (1.1.0)
@@ -123,7 +123,7 @@ GEM
123
123
  sorbet (>= 0.4.4704)
124
124
  sorbet-runtime (>= 0.4.4704)
125
125
  sorbet-runtime (0.5.5480)
126
- sorbet-static (0.5.5480-universal-darwin-14)
126
+ sorbet-static (0.5.5480-universal-darwin-19)
127
127
  sprockets (4.0.0)
128
128
  concurrent-ruby (~> 1.0)
129
129
  rack (> 1, < 3)
@@ -147,6 +147,7 @@ GEM
147
147
 
148
148
  PLATFORMS
149
149
  ruby
150
+ x86_64-darwin-19
150
151
 
151
152
  DEPENDENCIES
152
153
  byebug
@@ -161,4 +162,4 @@ DEPENDENCIES
161
162
  web-console (>= 3.3.0)
162
163
 
163
164
  BUNDLED WITH
164
- 2.0.2
165
+ 2.2.0
@@ -312,7 +312,10 @@ T.assert_type!(Wand.mythicals, T::Array[Wand])
312
312
  T.assert_type!(HogwartsAcceptanceMailer.notify(wizard), ActionMailer::MessageDelivery)
313
313
 
314
314
  # Jobs
315
- AwardHousePointHourglasses.perform_later(student: wizard, point: 10)
315
+ T.assert_type!(
316
+ AwardHousePointHourglasses.perform_later(student: wizard, point: 10),
317
+ AwardHousePointHourglasses
318
+ )
316
319
  AwardHousePointHourglasses.perform_now(student: wizard, point: 10)
317
320
  AwardHousePointHourglasses.
318
321
  set(queue: :daily, wait: 5.minutes).
@@ -321,7 +324,6 @@ AwardHousePointHourglasses.
321
324
  set(priority: 10, wait_until: Time.now.tomorrow).
322
325
  perform_later(student: wizard, point: 10)
323
326
 
324
-
325
327
  T.assert_type!(wizard.broom_nimbus?, T::Boolean)
326
328
  T.assert_type!(wizard.color_brown_eyes?, T::Boolean)
327
329
  T.assert_type!(wizard.quidditch_keeper?, T::Boolean)
@@ -1,9 +1,9 @@
1
1
  PATH
2
2
  remote: ../../..
3
3
  specs:
4
- sorbet-rails (0.7.1)
4
+ sorbet-rails (0.7.2)
5
5
  method_source (>= 0.9.2)
6
- parlour (~> 2.0)
6
+ parlour (>= 4.0.1)
7
7
  parser (>= 2.7)
8
8
  sorbet-coerce (>= 0.2.6)
9
9
  sorbet-runtime (>= 0.5)
@@ -84,14 +84,14 @@ GEM
84
84
  nio4r (2.5.2)
85
85
  nokogiri (1.10.9)
86
86
  mini_portile2 (~> 2.4.0)
87
- parlour (2.1.0)
87
+ parlour (4.0.1)
88
88
  commander (~> 4.5)
89
89
  parser
90
90
  rainbow (~> 3.0)
91
91
  sorbet-runtime (>= 0.5)
92
- parser (2.7.1.4)
92
+ parser (2.7.2.0)
93
93
  ast (~> 2.4.1)
94
- polyfill (1.8.0)
94
+ polyfill (1.9.0)
95
95
  puma (3.12.6)
96
96
  rack (2.2.3)
97
97
  rack-test (1.1.0)
@@ -131,7 +131,7 @@ GEM
131
131
  sorbet (>= 0.4.4704)
132
132
  sorbet-runtime (>= 0.4.4704)
133
133
  sorbet-runtime (0.5.5480)
134
- sorbet-static (0.5.5480-universal-darwin-14)
134
+ sorbet-static (0.5.5480-universal-darwin-19)
135
135
  sprockets (4.0.0)
136
136
  concurrent-ruby (~> 1.0)
137
137
  rack (> 1, < 3)
@@ -155,6 +155,7 @@ GEM
155
155
 
156
156
  PLATFORMS
157
157
  ruby
158
+ x86_64-darwin-19
158
159
 
159
160
  DEPENDENCIES
160
161
  byebug
@@ -172,4 +173,4 @@ RUBY VERSION
172
173
  ruby 2.5.5p157
173
174
 
174
175
  BUNDLED WITH
175
- 2.0.2
176
+ 2.2.0
@@ -312,7 +312,10 @@ T.assert_type!(Wand.mythicals, T::Array[Wand])
312
312
  T.assert_type!(HogwartsAcceptanceMailer.notify(wizard), ActionMailer::MessageDelivery)
313
313
 
314
314
  # Jobs
315
- AwardHousePointHourglasses.perform_later(student: wizard, point: 10)
315
+ T.assert_type!(
316
+ AwardHousePointHourglasses.perform_later(student: wizard, point: 10),
317
+ AwardHousePointHourglasses
318
+ )
316
319
  AwardHousePointHourglasses.perform_now(student: wizard, point: 10)
317
320
  AwardHousePointHourglasses.
318
321
  set(queue: :daily, wait: 5.minutes).
@@ -321,7 +324,6 @@ AwardHousePointHourglasses.
321
324
  set(priority: 10, wait_until: Time.now.tomorrow).
322
325
  perform_later(student: wizard, point: 10)
323
326
 
324
-
325
327
  T.assert_type!(wizard.broom_nimbus?, T::Boolean)
326
328
  T.assert_type!(wizard.color_brown_eyes?, T::Boolean)
327
329
  T.assert_type!(wizard.quidditch_keeper?, T::Boolean)