Module: RailsMailerSandbox::Setup

Defined in:
lib/rails_mailer_sandbox/setup.rb

Class Method Summary collapse

Class Method Details

.run(root) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/rails_mailer_sandbox/setup.rb', line 7

def self.run(root)
  root = File.expand_path(root)
  raise "Not a Rails application: #{root}" unless File.file?(File.join(root, "config/application.rb"))
  path = File.join(root, "config/initializers/rails_mailer_sandbox.rb")
  content = "    # Generated by rails_mailer_sandbox:setup. Development only.\n    if Rails.env.development?\n      Rails.application.config.action_mailer.delivery_method = :rails_mailer_sandbox\n      Rails.application.config.action_mailer.perform_deliveries = true\n      Rails.application.config.action_mailer.raise_delivery_errors = true\n      RailsMailerSandbox.storage_path = Rails.root.join(\"tmp\", \"rails_mailer_sandbox\")\n\n      Rails.application.routes.append do\n        mount RailsMailerSandbox::Server.new => \"/rails_mailer_sandbox\"\n      end\n    end\n  RUBY\n  FileUtils.mkdir_p(File.dirname(path))\n  begin\n    File.open(path, File::WRONLY | File::CREAT | File::EXCL, 0o644) { |file| file.write(content) }\n  rescue Errno::EEXIST\n    raise \"Existing \#{path} differs; review manually.\" unless File.read(path) == content\n  end\nend\n"