# for the love of god, don’t use this. namespace :mailtime do
desc 'Create a bunch of MailTemplate(s) based on existing mailers' task :sync_mailers => :environment do Dir.glob(::Rails.root.join("app/mailers/**/*_mailer.rb")).each { |m| require m } mailers = ObjectSpace.each_object(Class).select { |klass| klass < ::ActionMailer::Base } mailers.each do |mailer| methods = mailer.public_instance_methods(false) methods.each do |m| formats = Dir.glob(Rails.root.join("app/views/#{mailer.to_s.underscore}/#{m}.*")) formats.each do |f| Mailtime::MailTemplate.create(:klass => mailer.to_s, :action => m, :content => File.read(f), :format => f.scan(%r{\.(\w{3,4})\.}).to_a.first.first, :extension => File.extname(f)[1 .. -1] ) end end end end
end