Class: SimpleEmailPreview::Generators::UpdatePreviewsGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/generators/simple_email_preview/update_previews_generator.rb

Instance Method Summary collapse

Instance Method Details

#generate_mailer_previewsObject



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/generators/simple_email_preview/update_previews_generator.rb', line 5

def generate_mailer_previews
  previews_dir = 'app/mailer_previews/'
  empty_directory previews_dir
  Dir['app/mailers/*.rb'].each do |p|
    basename = File.basename(p, '.rb')
    if basename == 'application_mailer' || File.read(p) !~ /\bdef\s/
      shell.say_status :skip, basename, :blue
      next
    end
    preview_path = File.join(previews_dir, "#{basename}_preview.rb")
    if File.exist?(preview_path)
      shell.say_status :exist, preview_path, :blue
      next
    end
    create_file preview_path, mailer_class_body(basename.camelize)
  end
end