# 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