lib/tapioca/compilers/dsl/active_job.rb in tapioca-0.4.27 vs lib/tapioca/compilers/dsl/active_job.rb in tapioca-0.5.0
- old
+ new
@@ -1,10 +1,8 @@
# typed: strict
# frozen_string_literal: true
-require "parlour"
-
begin
require "active_job"
rescue LoadError
return
end
@@ -40,39 +38,37 @@
# end
# ~~~
class ActiveJob < Base
extend T::Sig
- sig { override.params(root: Parlour::RbiGenerator::Namespace, constant: T.class_of(::ActiveJob::Base)).void }
+ sig { override.params(root: RBI::Tree, constant: T.class_of(::ActiveJob::Base)).void }
def decorate(root, constant)
- root.path(constant) do |job|
- next unless constant.instance_methods(false).include?(:perform)
+ return unless constant.instance_methods(false).include?(:perform)
+ root.create_path(constant) do |job|
method = constant.instance_method(:perform)
- parameters = compile_method_parameters_to_parlour(method)
- return_type = compile_method_return_type_to_parlour(method)
+ parameters = compile_method_parameters_to_rbi(method)
+ return_type = compile_method_return_type_to_rbi(method)
- create_method(
- job,
+ job.create_method(
"perform_later",
parameters: parameters,
return_type: "T.any(#{constant.name}, FalseClass)",
class_method: true
)
- create_method(
- job,
+ job.create_method(
"perform_now",
parameters: parameters,
return_type: return_type,
class_method: true
)
end
end
sig { override.returns(T::Enumerable[Module]) }
def gather_constants
- ::ActiveJob::Base.descendants
+ descendants_of(::ActiveJob::Base)
end
end
end
end
end