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