ghost_in_the_post 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/Rakefile +24 -0
  4. data/lib/ghost_in_the_post.rb +47 -0
  5. data/lib/ghost_in_the_post/automatic.rb +19 -0
  6. data/lib/ghost_in_the_post/ghost_on_command.rb +10 -0
  7. data/lib/ghost_in_the_post/ghost_on_delivery.rb +12 -0
  8. data/lib/ghost_in_the_post/mail_ghost.rb +30 -0
  9. data/lib/ghost_in_the_post/mailer.rb +18 -0
  10. data/lib/ghost_in_the_post/phantom/staticize.js +27 -0
  11. data/lib/ghost_in_the_post/phantom_transform.rb +91 -0
  12. data/lib/ghost_in_the_post/version.rb +3 -0
  13. data/spec/dummy/Gemfile +3 -0
  14. data/spec/dummy/Gemfile.lock +115 -0
  15. data/spec/dummy/app/assets/javascripts/application.js +13 -0
  16. data/spec/dummy/app/assets/javascripts/test.js +1 -0
  17. data/spec/dummy/app/mailers/auto_mailer.rb +13 -0
  18. data/spec/dummy/app/mailers/mailer.rb +13 -0
  19. data/spec/dummy/app/views/auto_mailer/normal_email.html.erb +13 -0
  20. data/spec/dummy/app/views/auto_mailer/normal_email.text +1 -0
  21. data/spec/dummy/app/views/mailer/normal_email.html.erb +12 -0
  22. data/spec/dummy/app/views/mailer/normal_email.text +1 -0
  23. data/spec/dummy/bin/bundle +3 -0
  24. data/spec/dummy/bin/rails +4 -0
  25. data/spec/dummy/bin/rake +4 -0
  26. data/spec/dummy/bin/setup +29 -0
  27. data/spec/dummy/config.ru +4 -0
  28. data/spec/dummy/config/application.rb +13 -0
  29. data/spec/dummy/config/boot.rb +5 -0
  30. data/spec/dummy/config/environment.rb +5 -0
  31. data/spec/dummy/config/environments/development.rb +11 -0
  32. data/spec/dummy/config/initializers/assets.rb +11 -0
  33. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  34. data/spec/dummy/config/initializers/cookies_serializer.rb +3 -0
  35. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  36. data/spec/dummy/config/initializers/ghost_in_the_post.rb +5 -0
  37. data/spec/dummy/config/initializers/inflections.rb +16 -0
  38. data/spec/dummy/config/initializers/mime_types.rb +4 -0
  39. data/spec/dummy/config/initializers/session_store.rb +3 -0
  40. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  41. data/spec/dummy/config/routes.rb +2 -0
  42. data/spec/dummy/config/secrets.yml +22 -0
  43. data/spec/dummy/log/development.log +216 -0
  44. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/1hVihiFdBkDBsuCvA1I2vuFa9N6p-5zQ-qKvf4vz7jA.cache +0 -0
  45. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/23mzeUAO-pIzGJ1n84Dbg25udWeSiBcd6e_QsDihWQc.cache +3 -0
  46. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/6544SZAu2zCeDrdro4h3izdKNXVvHzstwz12UxeiJoA.cache +2 -0
  47. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/BMI0IB92xLhvUPcr_K0JuSk8zczmrEEbJCd3qwHauhQ.cache +1 -0
  48. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/GtqgDsC0JMsKfj0x5uQrbPcSS3QIPIzLKrq2fGJDBf0.cache +0 -0
  49. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/IFLV6zTaBXU1ccodbD3QJ4xUIOEix_Fbb7j8wsxrHw8.cache +1 -0
  50. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Lc8lcXR-AibSZCIbx_imdfIOmD-zbZ_pwSNMs0o0Dos.cache +0 -0
  51. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/O9gjtBITAGlfzUwc2DT5N0GW2bo2b2yQ64gnQljLogM.cache +1 -0
  52. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/OQXwnC5z5STtd87Tr2dz1QBt4iZ8PoZTH8KBtBlUGnE.cache +0 -0
  53. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/OZ04c215C4Euu3scfhmxmte0o_tZOVWTqrv61cpy7H4.cache +1 -0
  54. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/_Bn81xMZj4dS_W5s9uSDhtEdpRZtsc21rcKEYAPCsZY.cache +0 -0
  55. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/_Cw52w24AWZEbxLmduyWBMA6Y1OmJiEm1VNn7pY4rtk.cache +2 -0
  56. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/_HO5Nyj_TzTxVwa4OOf_0UJfBCmjgkv7NsRU29AD5Oo.cache +0 -0
  57. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/eN_ueL7m-D9xkEZpaLKwCxdrNzyz-MW9jcdJ5TdF9j8.cache +1 -0
  58. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/efKfhZKxLC7ERXlMb5CQMqYwbvWS-A--pH-0fqzvRiQ.cache +1 -0
  59. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/goEv0RKoifagsjFSdEHY-23E9ybQn_t1HHEZq7PlKQI.cache +1 -0
  60. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/hZi1k6tpxxCGYxRe7zY74ItcOI8gZrREOpGuA8JSpGg.cache +0 -0
  61. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/n6_6RjvPX2rCv5dytbSnnDrGwAj1ZcPfninuNUeP_iE.cache +1 -0
  62. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/nXo-w2o4zQBM_uSUnniuP53t5erBbSZPecMED9YnzQI.cache +1 -0
  63. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/oB1njyQ78MOMRf_5TvuYzHleeI8eke5-FDIIVl7qas0.cache +1 -0
  64. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/pEhaat2KBd5SrT7szC_8R1_6hK17FTpvoRFkmCRSD3M.cache +0 -0
  65. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/qxbw0jMkxTNeM5T2QovOD9vTyvjHVjBN5tZdwBf519A.cache +0 -0
  66. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/y98HqYF9nxOk8t_j3BKv9Nc4LuSAEzhER7rCCvOM6xI.cache +1 -0
  67. data/spec/lib/ghost_in_the_post/automatic_spec.rb +42 -0
  68. data/spec/lib/ghost_in_the_post/ghost_on_command_spec.rb +26 -0
  69. data/spec/lib/ghost_in_the_post/mail_ghost_spec.rb +73 -0
  70. data/spec/lib/ghost_in_the_post/mailer_spec.rb +38 -0
  71. data/spec/lib/ghost_in_the_post/phantom_transform_spec.rb +134 -0
  72. data/spec/lib/ghost_in_the_post_spec.rb +60 -0
  73. data/spec/spec_helper.rb +12 -0
  74. data/spec/support/mailer_support.rb +23 -0
  75. data/spec/support/quiet_load.rb +6 -0
  76. metadata +238 -0
@@ -0,0 +1,13 @@
1
+ // This is a manifest file that'll be compiled into application.js, which will include all the files
2
+ // listed below.
3
+ //
4
+ // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5
+ // or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path.
6
+ //
7
+ // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8
+ // compiled file.
9
+ //
10
+ // Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
11
+ // about supported directives.
12
+ //
13
+ //= require_tree .
@@ -0,0 +1 @@
1
+ (function(){document.getElementById('test').innerHTML='complete';})()
@@ -0,0 +1,13 @@
1
+ class AutoMailer < ActionMailer::Base
2
+ include GhostInThePost::Automatic
3
+
4
+ default from: 'john@example.com'
5
+
6
+ def normal_email
7
+ mail(to: 'example@example.org', subject: "Notification for you") do |format|
8
+ format.html { render :normal_email }
9
+ format.text { render :normal_email }
10
+ end
11
+ end
12
+
13
+ end
@@ -0,0 +1,13 @@
1
+ class Mailer < ActionMailer::Base
2
+ include GhostInThePost::Mailer
3
+
4
+ default from: 'john@example.com'
5
+
6
+ def normal_email
7
+ mail(to: 'example@example.org', subject: "Notification for you") do |format|
8
+ format.html
9
+ format.text
10
+ end
11
+ end
12
+
13
+ end
@@ -0,0 +1,13 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <script>
5
+ //to be removed
6
+ </script>
7
+ </head>
8
+ <body>
9
+ <span><%= "This makes sure it is preprocessed" %></span>
10
+ <div id="test"></div>
11
+ </body>
12
+ </html>
13
+
@@ -0,0 +1 @@
1
+ dont worry about me
@@ -0,0 +1,12 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <script>
5
+ //to be removed
6
+ </script>
7
+ </head>
8
+ <body>
9
+ <span><%= "This makes sure it is preprocessed" %></span>
10
+ <div id="test"></div>
11
+ </body>
12
+ </html>
@@ -0,0 +1 @@
1
+ Dont worry about me
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
3
+ load Gem.bin_path('bundler', 'bundle')
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+ APP_PATH = File.expand_path('../../config/application', __FILE__)
3
+ require_relative '../config/boot'
4
+ require 'rails/commands'
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+ require_relative '../config/boot'
3
+ require 'rake'
4
+ Rake.application.run
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env ruby
2
+ require 'pathname'
3
+
4
+ # path to your application root.
5
+ APP_ROOT = Pathname.new File.expand_path('../../', __FILE__)
6
+
7
+ Dir.chdir APP_ROOT do
8
+ # This script is a starting point to setup your application.
9
+ # Add necessary setup steps to this file:
10
+
11
+ puts "== Installing dependencies =="
12
+ system "gem install bundler --conservative"
13
+ system "bundle check || bundle install"
14
+
15
+ # puts "\n== Copying sample files =="
16
+ # unless File.exist?("config/database.yml")
17
+ # system "cp config/database.yml.sample config/database.yml"
18
+ # end
19
+
20
+ puts "\n== Preparing database =="
21
+ system "bin/rake db:setup"
22
+
23
+ puts "\n== Removing old logs and tempfiles =="
24
+ system "rm -f log/*"
25
+ system "rm -rf tmp/cache"
26
+
27
+ puts "\n== Restarting application server =="
28
+ system "touch tmp/restart.txt"
29
+ end
@@ -0,0 +1,4 @@
1
+ # This file is used by Rack-based servers to start the application.
2
+
3
+ require ::File.expand_path('../config/environment', __FILE__)
4
+ run Rails.application
@@ -0,0 +1,13 @@
1
+ require File.expand_path('../boot', __FILE__)
2
+
3
+ require "action_controller/railtie"
4
+ require "action_mailer/railtie"
5
+ require "sprockets/railtie"
6
+
7
+ Bundler.require(:default, Rails.env)
8
+
9
+ module Dummy
10
+ class Application < Rails::Application
11
+ config.ghost = {}
12
+ end
13
+ end
@@ -0,0 +1,5 @@
1
+ # Set up gems listed in the Gemfile.
2
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../../../Gemfile', __FILE__)
3
+
4
+ require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE'])
5
+ $LOAD_PATH.unshift File.expand_path('../../../../lib', __FILE__)
@@ -0,0 +1,5 @@
1
+ # Load the Rails application.
2
+ require File.expand_path('../application', __FILE__)
3
+
4
+ # Initialize the Rails application.
5
+ Rails.application.initialize!
@@ -0,0 +1,11 @@
1
+ Rails.application.configure do
2
+ config.cache_classes = false
3
+ config.eager_load = false
4
+ config.consider_all_requests_local = true
5
+ config.action_controller.perform_caching = false
6
+ config.action_mailer.raise_delivery_errors = false
7
+ config.active_support.deprecation = :log
8
+ config.assets.debug = true
9
+ config.assets.digest = true
10
+ config.assets.raise_runtime_errors = true
11
+ end
@@ -0,0 +1,11 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Version of your assets, change this if you want to expire all your assets.
4
+ Rails.application.config.assets.version = '1.0'
5
+
6
+ # Add additional assets to the asset load path
7
+ # Rails.application.config.assets.paths << Emoji.images_path
8
+
9
+ # Precompile additional assets.
10
+ # application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
11
+ # Rails.application.config.assets.precompile += %w( search.js )
@@ -0,0 +1,7 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces.
4
+ # Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ }
5
+
6
+ # You can also remove all the silencers if you're trying to debug a problem that might stem from framework code.
7
+ # Rails.backtrace_cleaner.remove_silencers!
@@ -0,0 +1,3 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ Rails.application.config.action_dispatch.cookies_serializer = :json
@@ -0,0 +1,4 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Configure sensitive parameters which will be filtered from the log file.
4
+ Rails.application.config.filter_parameters += [:password]
@@ -0,0 +1,5 @@
1
+ GhostInThePost.config = {
2
+ phantomjs_path: "/usr/local/bin/phantomjs",
3
+ includes: "application.js"
4
+ }
5
+
@@ -0,0 +1,16 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Add new inflection rules using the following format. Inflections
4
+ # are locale specific, and you may define rules for as many different
5
+ # locales as you wish. All of these examples are active by default:
6
+ # ActiveSupport::Inflector.inflections(:en) do |inflect|
7
+ # inflect.plural /^(ox)$/i, '\1en'
8
+ # inflect.singular /^(ox)en/i, '\1'
9
+ # inflect.irregular 'person', 'people'
10
+ # inflect.uncountable %w( fish sheep )
11
+ # end
12
+
13
+ # These inflection rules are supported but not enabled by default:
14
+ # ActiveSupport::Inflector.inflections(:en) do |inflect|
15
+ # inflect.acronym 'RESTful'
16
+ # end
@@ -0,0 +1,4 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Add new mime types for use in respond_to blocks:
4
+ # Mime::Type.register "text/richtext", :rtf
@@ -0,0 +1,3 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ Rails.application.config.session_store :cookie_store, key: '_dummy_session'
@@ -0,0 +1,14 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # This file contains settings for ActionController::ParamsWrapper which
4
+ # is enabled by default.
5
+
6
+ # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
7
+ ActiveSupport.on_load(:action_controller) do
8
+ wrap_parameters format: [:json] if respond_to?(:wrap_parameters)
9
+ end
10
+
11
+ # To enable root element in JSON for ActiveRecord objects.
12
+ # ActiveSupport.on_load(:active_record) do
13
+ # self.include_root_in_json = true
14
+ # end
@@ -0,0 +1,2 @@
1
+ Rails.application.routes.draw do
2
+ end
@@ -0,0 +1,22 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Your secret key is used for verifying the integrity of signed cookies.
4
+ # If you change this key, all old signed cookies will become invalid!
5
+
6
+ # Make sure the secret is at least 30 characters and all random,
7
+ # no regular words or you'll be exposed to dictionary attacks.
8
+ # You can use `rake secret` to generate a secure secret key.
9
+
10
+ # Make sure the secrets in this file are kept private
11
+ # if you're sharing your code publicly.
12
+
13
+ development:
14
+ secret_key_base: ee63f56d37a44df3131c4d8f73c0594a7dc39460122e921827ac31586b84624fffb5bd2325f41fe208dfb9b259fa2eccd83b9838900f0074c67e25f3ff6d875c
15
+
16
+ test:
17
+ secret_key_base: b6893d3fd25a8dc6f7c7d58223423c0a79a9f4d1c4ccbc46ad1279860134d09c7382d6270120e0df1d4a89176624ca4e181bd2f5be78bf8b106198f7930ee1fe
18
+
19
+ # Do not keep production secrets in the repository,
20
+ # instead read values from the environment.
21
+ production:
22
+ secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
@@ -0,0 +1,216 @@
1
+ Rendered auto_mailer/normal_email.html.erb (10.0ms)
2
+ Rendered auto_mailer/normal_email.text (2.0ms)
3
+
4
+ AutoMailer#normal_email: processed outbound mail in 323.0ms
5
+ Rendered auto_mailer/normal_email.html.erb (0.0ms)
6
+ Rendered auto_mailer/normal_email.text (0.0ms)
7
+
8
+ AutoMailer#normal_email: processed outbound mail in 38.0ms
9
+ Rendered auto_mailer/normal_email.html.erb (7.0ms)
10
+ Rendered auto_mailer/normal_email.text (2.0ms)
11
+
12
+ AutoMailer#normal_email: processed outbound mail in 260.0ms
13
+ Rendered auto_mailer/normal_email.html.erb (1.0ms)
14
+ Rendered auto_mailer/normal_email.text (0.0ms)
15
+
16
+ AutoMailer#normal_email: processed outbound mail in 63.0ms
17
+ Rendered auto_mailer/normal_email.html.erb (9.0ms)
18
+ Rendered auto_mailer/normal_email.text (2.0ms)
19
+
20
+ AutoMailer#normal_email: processed outbound mail in 266.0ms
21
+ Rendered auto_mailer/normal_email.html.erb (1.0ms)
22
+ Rendered auto_mailer/normal_email.text (0.0ms)
23
+
24
+ AutoMailer#normal_email: processed outbound mail in 54.0ms
25
+ Rendered auto_mailer/normal_email.html.erb (9.0ms)
26
+ Rendered auto_mailer/normal_email.text (2.0ms)
27
+
28
+ AutoMailer#normal_email: processed outbound mail in 289.0ms
29
+ Rendered auto_mailer/normal_email.html.erb (8.0ms)
30
+ Rendered auto_mailer/normal_email.text (3.0ms)
31
+
32
+ AutoMailer#normal_email: processed outbound mail in 332.0ms
33
+ Rendered auto_mailer/normal_email.html.erb (10.0ms)
34
+ Rendered auto_mailer/normal_email.text (3.0ms)
35
+
36
+ AutoMailer#normal_email: processed outbound mail in 296.0ms
37
+ Rendered auto_mailer/normal_email.html.erb (7.0ms)
38
+ Rendered auto_mailer/normal_email.text (2.0ms)
39
+
40
+ AutoMailer#normal_email: processed outbound mail in 293.0ms
41
+ Rendered auto_mailer/normal_email.html.erb (10.0ms)
42
+ Rendered auto_mailer/normal_email.text (3.0ms)
43
+
44
+ AutoMailer#normal_email: processed outbound mail in 318.0ms
45
+ Rendered auto_mailer/normal_email.html.erb (11.0ms)
46
+ Rendered auto_mailer/normal_email.text (3.0ms)
47
+
48
+ AutoMailer#normal_email: processed outbound mail in 393.0ms
49
+ Rendered auto_mailer/normal_email.html.erb (12.0ms)
50
+ Rendered auto_mailer/normal_email.text (3.0ms)
51
+
52
+ AutoMailer#normal_email: processed outbound mail in 404.0ms
53
+ Rendered auto_mailer/normal_email.html.erb (1.0ms)
54
+ Rendered auto_mailer/normal_email.text (1.0ms)
55
+
56
+ AutoMailer#normal_email: processed outbound mail in 57.0ms
57
+ Rendered auto_mailer/normal_email.html.erb (10.0ms)
58
+ Rendered auto_mailer/normal_email.text (2.0ms)
59
+
60
+ AutoMailer#normal_email: processed outbound mail in 322.0ms
61
+ Rendered auto_mailer/normal_email.html.erb (11.0ms)
62
+ Rendered auto_mailer/normal_email.text (2.0ms)
63
+
64
+ AutoMailer#normal_email: processed outbound mail in 317.0ms
65
+ Rendered auto_mailer/normal_email.html.erb (8.0ms)
66
+ Rendered auto_mailer/normal_email.text (2.0ms)
67
+
68
+ AutoMailer#normal_email: processed outbound mail in 315.0ms
69
+ Rendered auto_mailer/normal_email.html.erb (10.0ms)
70
+ Rendered auto_mailer/normal_email.text (2.0ms)
71
+
72
+ AutoMailer#normal_email: processed outbound mail in 316.0ms
73
+ Rendered auto_mailer/normal_email.html.erb (6.0ms)
74
+ Rendered auto_mailer/normal_email.text (2.0ms)
75
+
76
+ AutoMailer#normal_email: processed outbound mail in 284.0ms
77
+ Rendered auto_mailer/normal_email.html.erb (7.0ms)
78
+ Rendered auto_mailer/normal_email.text (3.0ms)
79
+
80
+ AutoMailer#normal_email: processed outbound mail in 301.0ms
81
+
82
+ AutoMailer#normal_email: processed outbound mail in 5.0ms
83
+
84
+ AutoMailer#normal_email: processed outbound mail in 4.0ms
85
+ Rendered auto_mailer/normal_email.html.erb (6.0ms)
86
+ Rendered auto_mailer/normal_email.text (2.0ms)
87
+
88
+ AutoMailer#normal_email: processed outbound mail in 272.0ms
89
+ Rendered auto_mailer/normal_email.html.erb (9.0ms)
90
+ Rendered auto_mailer/normal_email.text (3.0ms)
91
+
92
+ AutoMailer#normal_email: processed outbound mail in 295.0ms
93
+ Rendered auto_mailer/normal_email.html.erb (9.0ms)
94
+ Rendered auto_mailer/normal_email.text (2.0ms)
95
+
96
+ AutoMailer#normal_email: processed outbound mail in 310.0ms
97
+ Rendered auto_mailer/normal_email.html.erb (11.0ms)
98
+ Rendered auto_mailer/normal_email.text (2.0ms)
99
+
100
+ AutoMailer#normal_email: processed outbound mail in 295.0ms
101
+ Rendered auto_mailer/normal_email.html.erb (10.0ms)
102
+ Rendered auto_mailer/normal_email.text (3.0ms)
103
+
104
+ AutoMailer#normal_email: processed outbound mail in 295.0ms
105
+ Rendered auto_mailer/normal_email.html.erb (7.0ms)
106
+ Rendered auto_mailer/normal_email.text (3.0ms)
107
+
108
+ AutoMailer#normal_email: processed outbound mail in 282.0ms
109
+ Rendered auto_mailer/normal_email.html.erb (10.0ms)
110
+ Rendered auto_mailer/normal_email.text (2.0ms)
111
+
112
+ AutoMailer#normal_email: processed outbound mail in 318.0ms
113
+ Rendered auto_mailer/normal_email.html.erb (9.0ms)
114
+ Rendered auto_mailer/normal_email.text (3.0ms)
115
+
116
+ AutoMailer#normal_email: processed outbound mail in 422.0ms
117
+ Rendered auto_mailer/normal_email.html.erb (12.0ms)
118
+ Rendered auto_mailer/normal_email.text (2.0ms)
119
+
120
+ AutoMailer#normal_email: processed outbound mail in 422.0ms
121
+ Rendered auto_mailer/normal_email.html.erb (11.0ms)
122
+ Rendered auto_mailer/normal_email.text (2.0ms)
123
+
124
+ AutoMailer#normal_email: processed outbound mail in 301.0ms
125
+ Rendered auto_mailer/normal_email.html.erb (10.0ms)
126
+ Rendered auto_mailer/normal_email.text (3.0ms)
127
+
128
+ AutoMailer#normal_email: processed outbound mail in 306.0ms
129
+ Rendered auto_mailer/normal_email.html.erb (11.0ms)
130
+ Rendered auto_mailer/normal_email.text (3.0ms)
131
+
132
+ AutoMailer#normal_email: processed outbound mail in 303.0ms
133
+ Rendered auto_mailer/normal_email.html.erb (11.0ms)
134
+ Rendered auto_mailer/normal_email.text (2.0ms)
135
+
136
+ AutoMailer#normal_email: processed outbound mail in 268.0ms
137
+ Rendered auto_mailer/normal_email.html.erb (0.0ms)
138
+ Rendered auto_mailer/normal_email.text (1.0ms)
139
+
140
+ AutoMailer#normal_email: processed outbound mail in 36.0ms
141
+ Rendered auto_mailer/normal_email.html.erb (18.0ms)
142
+ Rendered auto_mailer/normal_email.text (2.0ms)
143
+
144
+ AutoMailer#normal_email: processed outbound mail in 254.0ms
145
+ Rendered auto_mailer/normal_email.html.erb (11.0ms)
146
+ Rendered auto_mailer/normal_email.text (3.0ms)
147
+
148
+ AutoMailer#normal_email: processed outbound mail in 268.0ms
149
+ Rendered auto_mailer/normal_email.html.erb (6.0ms)
150
+ Rendered auto_mailer/normal_email.text (2.0ms)
151
+
152
+ AutoMailer#normal_email: processed outbound mail in 244.0ms
153
+ Rendered auto_mailer/normal_email.html.erb (7.0ms)
154
+ Rendered auto_mailer/normal_email.text (2.0ms)
155
+
156
+ AutoMailer#normal_email: processed outbound mail in 286.0ms
157
+ Rendered auto_mailer/normal_email.html.erb (7.0ms)
158
+ Rendered auto_mailer/normal_email.text (1.0ms)
159
+
160
+ AutoMailer#normal_email: processed outbound mail in 277.0ms
161
+ Rendered auto_mailer/normal_email.html.erb (6.0ms)
162
+ Rendered auto_mailer/normal_email.text (3.0ms)
163
+
164
+ AutoMailer#normal_email: processed outbound mail in 275.0ms
165
+ Rendered auto_mailer/normal_email.html.erb (6.0ms)
166
+ Rendered auto_mailer/normal_email.text (2.0ms)
167
+
168
+ AutoMailer#normal_email: processed outbound mail in 261.0ms
169
+ Rendered auto_mailer/normal_email.html.erb (10.0ms)
170
+ Rendered auto_mailer/normal_email.text (3.0ms)
171
+
172
+ AutoMailer#normal_email: processed outbound mail in 343.0ms
173
+ Rendered auto_mailer/normal_email.html.erb (8.0ms)
174
+ Rendered auto_mailer/normal_email.text (2.0ms)
175
+
176
+ AutoMailer#normal_email: processed outbound mail in 277.0ms
177
+ Rendered auto_mailer/normal_email.html.erb (9.0ms)
178
+ Rendered auto_mailer/normal_email.text (3.0ms)
179
+
180
+ AutoMailer#normal_email: processed outbound mail in 288.0ms
181
+ Rendered auto_mailer/normal_email.html.erb (8.0ms)
182
+ Rendered auto_mailer/normal_email.text (4.0ms)
183
+
184
+ AutoMailer#normal_email: processed outbound mail in 248.0ms
185
+ Rendered auto_mailer/normal_email.html.erb (8.0ms)
186
+ Rendered auto_mailer/normal_email.text (2.0ms)
187
+
188
+ AutoMailer#normal_email: processed outbound mail in 277.0ms
189
+ Rendered auto_mailer/normal_email.html.erb (7.0ms)
190
+ Rendered auto_mailer/normal_email.text (2.0ms)
191
+
192
+ AutoMailer#normal_email: processed outbound mail in 279.0ms
193
+ Rendered auto_mailer/normal_email.html.erb (10.0ms)
194
+ Rendered auto_mailer/normal_email.text (3.0ms)
195
+
196
+ AutoMailer#normal_email: processed outbound mail in 320.0ms
197
+ Rendered auto_mailer/normal_email.html.erb (1.0ms)
198
+ Rendered auto_mailer/normal_email.text (0.0ms)
199
+
200
+ AutoMailer#normal_email: processed outbound mail in 65.0ms
201
+ Rendered auto_mailer/normal_email.html.erb (5.0ms)
202
+ Rendered auto_mailer/normal_email.text (0.0ms)
203
+
204
+ AutoMailer#normal_email: processed outbound mail in 44.0ms
205
+ Rendered auto_mailer/normal_email.html.erb (0.0ms)
206
+ Rendered auto_mailer/normal_email.text (0.0ms)
207
+
208
+ AutoMailer#normal_email: processed outbound mail in 45.0ms
209
+ Rendered auto_mailer/normal_email.html.erb (0.0ms)
210
+ Rendered auto_mailer/normal_email.text (0.0ms)
211
+
212
+ AutoMailer#normal_email: processed outbound mail in 42.0ms
213
+ Rendered auto_mailer/normal_email.html.erb (10.0ms)
214
+ Rendered auto_mailer/normal_email.text (4.0ms)
215
+
216
+ AutoMailer#normal_email: processed outbound mail in 415.0ms