カクカクしかじか

技術的なアレコレ

特定のクラスを継承したファイルの一覧をRubyのスクリプトから出す方法

掲題のやりたいことを実現するスクリプト

※descendantsメソッドはActiveSupportのメソッド

descendantsメソッドは、そのレシーバより下位にあるすべてのクラスを返します。

Active Support コア拡張機能 - Railsガイド

# Load
Dir.glob('app/mailers/**/*.rb').each {|f| require_relative f}

# Mailer list
ActionMailer::Base.descendants

# Method list
puts "Class | Method | Note | Interval"
puts "----- | ------ | ---- | --------"
ActionMailer::Base.descendants.each do |klass|
  klass.action_methods.each do |m|
    puts "#{klass} | #{m} |"
  end
end