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.
- checksums.yaml +4 -4
- data/README.md +9 -7
- data/lib/sorbet-rails/active_record_rbi_formatter.rb +2 -2
- data/lib/sorbet-rails/helper_rbi_formatter.rb +1 -1
- data/lib/sorbet-rails/job_rbi_formatter.rb +4 -2
- data/lib/sorbet-rails/mailer_rbi_formatter.rb +3 -3
- data/lib/sorbet-rails/model_plugins/active_record_assoc.rb +1 -1
- data/lib/sorbet-rails/model_plugins/active_record_attribute.rb +10 -10
- data/lib/sorbet-rails/routes_rbi_formatter.rb +2 -2
- data/sorbet-rails.gemspec +2 -2
- data/spec/generators/sorbet_test_cases.rb +4 -2
- data/spec/sorbet_spec.rb +6 -6
- data/spec/support/v5.0/Gemfile.lock +8 -7
- data/spec/support/v5.0/sorbet_test_cases.rb +4 -2
- data/spec/support/v5.1/Gemfile.lock +8 -7
- data/spec/support/v5.1/sorbet_test_cases.rb +4 -2
- data/spec/support/v5.2/Gemfile.lock +8 -7
- data/spec/support/v5.2/sorbet_test_cases.rb +4 -2
- data/spec/support/v6.0/Gemfile.lock +8 -7
- data/spec/support/v6.0/sorbet_test_cases.rb +4 -2
- data/spec/test_data/v5.0/expected_application_job.rbi +2 -2
- data/spec/test_data/v5.0/expected_award_house_point_hourglasses.rbi +2 -2
- data/spec/test_data/v5.0/expected_custom_application_job.rbi +2 -2
- data/spec/test_data/v5.0/expected_custom_award_house_point_hourglasses.rbi +2 -2
- data/spec/test_data/v5.0/expected_spell_book.rbi +9 -9
- data/spec/test_data/v5.0/expected_wand.rbi +10 -10
- data/spec/test_data/v5.0/expected_wizard.rbi +58 -58
- data/spec/test_data/v5.0/expected_wizard_wo_spellbook.rbi +58 -58
- data/spec/test_data/v5.1/expected_application_job.rbi +2 -2
- data/spec/test_data/v5.1/expected_award_house_point_hourglasses.rbi +2 -2
- data/spec/test_data/v5.1/expected_custom_application_job.rbi +2 -2
- data/spec/test_data/v5.1/expected_custom_award_house_point_hourglasses.rbi +2 -2
- data/spec/test_data/v5.1/expected_spell_book.rbi +9 -9
- data/spec/test_data/v5.1/expected_wand.rbi +10 -10
- data/spec/test_data/v5.1/expected_wizard.rbi +58 -58
- data/spec/test_data/v5.1/expected_wizard_wo_spellbook.rbi +58 -58
- data/spec/test_data/v5.2/expected_application_job.rbi +2 -2
- data/spec/test_data/v5.2/expected_award_house_point_hourglasses.rbi +2 -2
- data/spec/test_data/v5.2/expected_custom_application_job.rbi +2 -2
- data/spec/test_data/v5.2/expected_custom_award_house_point_hourglasses.rbi +2 -2
- data/spec/test_data/v5.2/expected_spell_book.rbi +9 -9
- data/spec/test_data/v5.2/expected_wand.rbi +10 -10
- data/spec/test_data/v5.2/expected_wizard.rbi +58 -58
- data/spec/test_data/v5.2/expected_wizard_wo_spellbook.rbi +58 -58
- data/spec/test_data/v6.0/expected_application_job.rbi +2 -2
- data/spec/test_data/v6.0/expected_award_house_point_hourglasses.rbi +2 -2
- data/spec/test_data/v6.0/expected_custom_application_job.rbi +2 -2
- data/spec/test_data/v6.0/expected_custom_award_house_point_hourglasses.rbi +2 -2
- data/spec/test_data/v6.0/expected_spell_book.rbi +9 -9
- data/spec/test_data/v6.0/expected_wand.rbi +10 -10
- data/spec/test_data/v6.0/expected_wizard.rbi +58 -58
- data/spec/test_data/v6.0/expected_wizard_wo_spellbook.rbi +58 -58
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ca33522fb17d2e6461e49a4d0a4b851a046193c046ec2460d7ff0f1b5363fd8f
|
4
|
+
data.tar.gz: b59025b18da945ed7c81e2e9dbee17f4994f9aa439b071568aba0161034fd4cb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
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
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
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.
|
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.
|
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.
|
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.
|
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.
|
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[
|
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
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
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 =
|
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.
|
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.
|
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.'
|
data/sorbet-rails.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = %q{sorbet-rails}
|
3
|
-
s.version = "0.7.
|
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', '
|
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
|
-
|
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)
|
data/spec/sorbet_spec.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'rails_helper'
|
2
2
|
require 'open3'
|
3
3
|
|
4
|
-
RSpec.
|
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.
|
4
|
+
sorbet-rails (0.7.2)
|
5
5
|
method_source (>= 0.9.2)
|
6
|
-
parlour (
|
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 (
|
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.
|
84
|
+
parser (2.7.2.0)
|
85
85
|
ast (~> 2.4.1)
|
86
|
-
polyfill (1.
|
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-
|
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
|
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
|
-
|
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.
|
4
|
+
sorbet-rails (0.7.2)
|
5
5
|
method_source (>= 0.9.2)
|
6
|
-
parlour (
|
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 (
|
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.
|
85
|
+
parser (2.7.2.0)
|
86
86
|
ast (~> 2.4.1)
|
87
|
-
polyfill (1.
|
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-
|
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
|
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
|
-
|
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.
|
4
|
+
sorbet-rails (0.7.2)
|
5
5
|
method_source (>= 0.9.2)
|
6
|
-
parlour (
|
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 (
|
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.
|
92
|
+
parser (2.7.2.0)
|
93
93
|
ast (~> 2.4.1)
|
94
|
-
polyfill (1.
|
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-
|
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
|
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
|
-
|
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)
|