From 5fef55c11a7ea855e7b43ed274558a0893d0dc16 Mon Sep 17 00:00:00 2001
From: Effy Elden <git@effy.is>
Date: Sat, 21 Jan 2017 20:22:49 +1100
Subject: [PATCH 1/2] Set remote dev environments to use letter_opener_web, add
 default .env.vagrant variables

---
 .env.vagrant                       |  1 +
 Gemfile                            |  1 +
 Gemfile.lock                       |  7 ++++++-
 config/environments/development.rb | 10 +++++++++-
 config/routes.rb                   |  6 ++++++
 5 files changed, 23 insertions(+), 2 deletions(-)
 create mode 100644 .env.vagrant

diff --git a/.env.vagrant b/.env.vagrant
new file mode 100644
index 000000000..0ab0552c9
--- /dev/null
+++ b/.env.vagrant
@@ -0,0 +1 @@
+VAGRANT=true
\ No newline at end of file
diff --git a/Gemfile b/Gemfile
index bab7cebb5..ebee7e35f 100644
--- a/Gemfile
+++ b/Gemfile
@@ -73,6 +73,7 @@ group :development do
   gem 'better_errors'
   gem 'binding_of_caller'
   gem 'letter_opener'
+  gem 'letter_opener_web'
   gem 'bullet'
   gem 'active_record_query_trace'
 end
diff --git a/Gemfile.lock b/Gemfile.lock
index 20ea37fcc..0e720d7fb 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -176,6 +176,10 @@ GEM
       addressable (~> 2.3)
     letter_opener (1.4.1)
       launchy (~> 2.2)
+    letter_opener_web (1.3.0)
+      actionmailer (>= 3.2)
+      letter_opener (~> 1.0)
+      railties (>= 3.2)
     link_header (0.0.8)
     lograge (0.4.1)
       actionpack (>= 4, < 5.1)
@@ -432,6 +436,7 @@ DEPENDENCIES
   jbuilder (~> 2.0)
   jquery-rails
   letter_opener
+  letter_opener_web
   link_header
   lograge
   nokogiri
@@ -474,4 +479,4 @@ RUBY VERSION
    ruby 2.3.1p112
 
 BUNDLED WITH
-   1.13.6
+   1.13.7
diff --git a/config/environments/development.rb b/config/environments/development.rb
index 829edcf04..476f3d74c 100644
--- a/config/environments/development.rb
+++ b/config/environments/development.rb
@@ -62,7 +62,15 @@ Rails.application.configure do
   # routes, locales, etc. This feature depends on the listen gem.
   # config.file_watcher = ActiveSupport::EventedFileUpdateChecker
 
-  config.action_mailer.delivery_method = :letter_opener
+  # If usng a Heroku, Vagrant or generic remote development environment,
+  # use letter_opener_web, accessible at  /letter_opener.
+  #
+  # Otherwise, use letter_opener, which launches a browser window to view sent mail.
+  if (ENV['HEROKU'] || ENV['VAGRANT'] || ENV['REMOTE_DEV'])
+    config.action_mailer.delivery_method = :letter_opener_web
+  else
+    config.action_mailer.delivery_method = :letter_opener
+  end
 
   config.after_initialize do
     Bullet.enable        = true
diff --git a/config/routes.rb b/config/routes.rb
index 4606c663a..0fcbc266d 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -3,6 +3,12 @@
 require 'sidekiq/web'
 
 Rails.application.routes.draw do
+
+  # Development-only routes
+  if Rails.env.development?
+    mount LetterOpenerWeb::Engine, at: "/letter_opener"
+  end
+
   mount ActionCable.server, at: 'cable'
 
   authenticate :user, lambda { |u| u.admin? } do

From e028406db4bba2d2fa924d3777e47b51983dc800 Mon Sep 17 00:00:00 2001
From: Eugen Rochko <eugen@zeonfederated.com>
Date: Sat, 21 Jan 2017 22:19:13 +0100
Subject: [PATCH 2/2] Fix code style

---
 config/environments/development.rb | 9 ++-------
 config/routes.rb                   | 7 +------
 2 files changed, 3 insertions(+), 13 deletions(-)

diff --git a/config/environments/development.rb b/config/environments/development.rb
index 476f3d74c..3f44d861e 100644
--- a/config/environments/development.rb
+++ b/config/environments/development.rb
@@ -62,15 +62,10 @@ Rails.application.configure do
   # routes, locales, etc. This feature depends on the listen gem.
   # config.file_watcher = ActiveSupport::EventedFileUpdateChecker
 
-  # If usng a Heroku, Vagrant or generic remote development environment,
+  # If using a Heroku, Vagrant or generic remote development environment,
   # use letter_opener_web, accessible at  /letter_opener.
-  #
   # Otherwise, use letter_opener, which launches a browser window to view sent mail.
-  if (ENV['HEROKU'] || ENV['VAGRANT'] || ENV['REMOTE_DEV'])
-    config.action_mailer.delivery_method = :letter_opener_web
-  else
-    config.action_mailer.delivery_method = :letter_opener
-  end
+  config.action_mailer.delivery_method = (ENV['HEROKU'] || ENV['VAGRANT'] || ENV['REMOTE_DEV']) ? :letter_opener_web : :letter_opener
 
   config.after_initialize do
     Bullet.enable        = true
diff --git a/config/routes.rb b/config/routes.rb
index 1a7d53185..7b9cda908 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -3,12 +3,7 @@
 require 'sidekiq/web'
 
 Rails.application.routes.draw do
-
-  # Development-only routes
-  if Rails.env.development?
-    mount LetterOpenerWeb::Engine, at: "/letter_opener"
-  end
-
+  mount LetterOpenerWeb::Engine, at: 'letter_opener' if Rails.env.development?
   mount ActionCable.server, at: 'cable'
 
   authenticate :user, lambda { |u| u.admin? } do