sorbet-rails 0.7.1 → 0.7.2
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.
- 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)
|