Sha256: aae819c4e3a3406c0c7cc07cba4584714493d3a78275891c3f872577b44a9958
Contents?: true
Size: 1.14 KB
Versions: 9
Compression:
Stored size: 1.14 KB
Contents
# typed: strict require('parlour') require('sorbet-rails/sorbet_utils.rb') class SorbetRails::MailerRbiFormatter extend T::Sig sig { params(mailer_class: T.class_of(ActionMailer::Base)).void } def initialize(mailer_class) @mailer_class = T.let(mailer_class, T.class_of(ActionMailer::Base)) @parlour = T.let(Parlour::RbiGenerator.new, Parlour::RbiGenerator) end sig {returns(String)} def generate_rbi puts "-- Generate sigs for mailer #{@mailer_class.name} --" @parlour.root.add_comments([ 'This is an autogenerated file for Rails helpers.', 'Please rerun rake rails_rbi:mailers to regenerate.' ]) @parlour.root.create_class(@mailer_class.name) do |mailer_rbi| @mailer_class.action_methods.to_a.sort.each do |mailer_method| method_def = @mailer_class.instance_method(mailer_method) parameters = SorbetRails::SorbetUtils.parameters_from_method_def(method_def) mailer_rbi.create_method( mailer_method, parameters: parameters, return_type: 'ActionMailer::MessageDelivery', class_method: true, ) end end @parlour.rbi end end
Version data entries
9 entries across 9 versions & 1 rubygems