mail_spy 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/README.rdoc +68 -0
  3. data/Rakefile +40 -0
  4. data/app/assets/javascripts/mail_spy/application.js +15 -0
  5. data/app/assets/javascripts/mail_spy/tracking.js +2 -0
  6. data/app/assets/stylesheets/mail_spy/application.css +13 -0
  7. data/app/assets/stylesheets/mail_spy/tracking.css +4 -0
  8. data/app/controllers/mail_spy/application_controller.rb +4 -0
  9. data/app/controllers/mail_spy/tracking_controller.rb +53 -0
  10. data/app/helpers/mail_spy/application_helper.rb +4 -0
  11. data/app/helpers/mail_spy/email_helper.rb +40 -0
  12. data/app/mailers/mail_spy/core_mailer.rb +55 -0
  13. data/app/models/mail_spy/action.rb +23 -0
  14. data/app/models/mail_spy/campaign_report.rb +6 -0
  15. data/app/models/mail_spy/component_report.rb +6 -0
  16. data/app/models/mail_spy/email.rb +93 -0
  17. data/app/models/mail_spy/email_template.rb +17 -0
  18. data/app/models/mail_spy/stream_report.rb +6 -0
  19. data/app/views/layouts/mail_spy/application.html.erb +14 -0
  20. data/config/routes.rb +7 -0
  21. data/lib/generators/mail_spy/initialize_generator.rb +12 -0
  22. data/lib/generators/mail_spy/templates/mail_spy.rb +25 -0
  23. data/lib/mail_spy/engine.rb +13 -0
  24. data/lib/mail_spy/manager.rb +97 -0
  25. data/lib/mail_spy/version.rb +3 -0
  26. data/lib/mail_spy.rb +36 -0
  27. data/lib/tasks/mail_spy_tasks.rake +40 -0
  28. data/test/dummy/README.rdoc +261 -0
  29. data/test/dummy/Rakefile +7 -0
  30. data/test/dummy/app/assets/javascripts/application.js +15 -0
  31. data/test/dummy/app/assets/stylesheets/application.css +13 -0
  32. data/test/dummy/app/controllers/application_controller.rb +3 -0
  33. data/test/dummy/app/helpers/application_helper.rb +2 -0
  34. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  35. data/test/dummy/config/application.rb +56 -0
  36. data/test/dummy/config/boot.rb +10 -0
  37. data/test/dummy/config/database.yml +25 -0
  38. data/test/dummy/config/environment.rb +5 -0
  39. data/test/dummy/config/environments/development.rb +37 -0
  40. data/test/dummy/config/environments/production.rb +67 -0
  41. data/test/dummy/config/environments/test.rb +37 -0
  42. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  43. data/test/dummy/config/initializers/inflections.rb +15 -0
  44. data/test/dummy/config/initializers/mime_types.rb +5 -0
  45. data/test/dummy/config/initializers/secret_token.rb +7 -0
  46. data/test/dummy/config/initializers/session_store.rb +8 -0
  47. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  48. data/test/dummy/config/locales/en.yml +5 -0
  49. data/test/dummy/config/mongoid.yml +20 -0
  50. data/test/dummy/config/routes.rb +4 -0
  51. data/test/dummy/config.ru +4 -0
  52. data/test/dummy/db/development.sqlite3 +0 -0
  53. data/test/dummy/db/seeds.rb +16 -0
  54. data/test/dummy/db/test.sqlite3 +0 -0
  55. data/test/dummy/log/development.log +212 -0
  56. data/test/dummy/log/test.log +6841 -0
  57. data/test/dummy/public/404.html +26 -0
  58. data/test/dummy/public/422.html +26 -0
  59. data/test/dummy/public/500.html +25 -0
  60. data/test/dummy/public/favicon.ico +0 -0
  61. data/test/dummy/script/rails +6 -0
  62. data/test/fixtures/mail_spy/actions.yml +7 -0
  63. data/test/fixtures/mail_spy/campaign_reports.yml +11 -0
  64. data/test/fixtures/mail_spy/component_reports.yml +11 -0
  65. data/test/fixtures/mail_spy/email_templates.yml +9 -0
  66. data/test/fixtures/mail_spy/emails.yml +15 -0
  67. data/test/fixtures/mail_spy/stream_reports.yml +11 -0
  68. data/test/functional/mail_spy/core_mailer_test.rb +33 -0
  69. data/test/functional/mail_spy/tracking_controller_test.rb +83 -0
  70. data/test/integration/navigation_test.rb +10 -0
  71. data/test/mail_spy_test.rb +7 -0
  72. data/test/test_email_credentials.yml +9 -0
  73. data/test/test_email_credentials.yml.sample +9 -0
  74. data/test/test_helper.rb +107 -0
  75. data/test/unit/helpers/mail_spy/tracking_helper_test.rb +6 -0
  76. data/test/unit/mail_spy/action_test.rb +9 -0
  77. data/test/unit/mail_spy/campaign_report_test.rb +9 -0
  78. data/test/unit/mail_spy/component_report_test.rb +9 -0
  79. data/test/unit/mail_spy/email_template_test.rb +9 -0
  80. data/test/unit/mail_spy/email_test.rb +9 -0
  81. data/test/unit/mail_spy/manager_test.rb +164 -0
  82. data/test/unit/mail_spy/stream_report_test.rb +9 -0
  83. metadata +343 -0
@@ -0,0 +1,7 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Your secret key for verifying the integrity of signed cookies.
4
+ # If you change this key, all old signed cookies will become invalid!
5
+ # Make sure the secret is at least 30 characters and all random,
6
+ # no regular words or you'll be exposed to dictionary attacks.
7
+ Dummy::Application.config.secret_token = '24d7447e498e2b5843fbc8e57c271187f031079b382c6b482933a4bdbe38db983db500ea23bdbf9a895f5fa7564cecb6eb13275901507aeee1ca03b62571244e'
@@ -0,0 +1,8 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ Dummy::Application.config.session_store :cookie_store, key: '_dummy_session'
4
+
5
+ # Use the database for sessions instead of the cookie-based default,
6
+ # which shouldn't be used to store highly confidential information
7
+ # (create the session table with "rails generate session_migration")
8
+ # Dummy::Application.config.session_store :active_record_store
@@ -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]
9
+ end
10
+
11
+ # Disable root element in JSON by default.
12
+ ActiveSupport.on_load(:active_record) do
13
+ self.include_root_in_json = false
14
+ end
@@ -0,0 +1,5 @@
1
+ # Sample localization file for English. Add more files in this directory for other locales.
2
+ # See https://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points.
3
+
4
+ en:
5
+ hello: "Hello world"
@@ -0,0 +1,20 @@
1
+ development:
2
+ host: localhost
3
+ database: dummy_development
4
+
5
+ test:
6
+ host: localhost
7
+ database: dummy_test
8
+
9
+ # set these environment variables on your prod server
10
+ production:
11
+ host: <%= ENV['MONGOID_HOST'] %>
12
+ port: <%= ENV['MONGOID_PORT'] %>
13
+ username: <%= ENV['MONGOID_USERNAME'] %>
14
+ password: <%= ENV['MONGOID_PASSWORD'] %>
15
+ database: <%= ENV['MONGOID_DATABASE'] %>
16
+ # slaves:
17
+ # - host: slave1.local
18
+ # port: 27018
19
+ # - host: slave2.local
20
+ # port: 27019
@@ -0,0 +1,4 @@
1
+ Rails.application.routes.draw do
2
+
3
+ mount MailSpy::Engine => "/mail_spy"
4
+ 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 Dummy::Application
Binary file
@@ -0,0 +1,16 @@
1
+ (0..10).each do |i|
2
+ MailSpy::Email.create(
3
+ {
4
+ :email_address => "trcarden@gmail.com",
5
+ :user_id => 1,
6
+ :campaign =>"testCampaign#{i%2}",
7
+ :stream => "testStream#{i}",
8
+ :component => "a",
9
+ :actions => [
10
+ {:action_type => "open"},
11
+ {:action_type => "delivered"}
12
+ ]
13
+ }
14
+ )
15
+ end
16
+
File without changes
@@ -0,0 +1,212 @@
1
+  (0.1ms) select sqlite_version(*)
2
+  (0.9ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)
3
+  (0.0ms) PRAGMA index_list("schema_migrations")
4
+  (0.8ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
5
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" 
6
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" 
7
+ DEPRECATION WARNING: ActionDispatch::ShowExceptions.rescue_responses is deprecated. Please configure your exceptions using a railtie or in your application config instead. (called from block (2 levels) in <class:Railtie> at /Users/trcarden/.rvm/gems/ruby-1.9.2-p180/gems/mongoid-2.2.1/lib/mongoid/railtie.rb:82)
8
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" 
9
+ DEPRECATION WARNING: ActionDispatch::ShowExceptions.rescue_responses is deprecated. Please configure your exceptions using a railtie or in your application config instead. (called from block (2 levels) in <class:Railtie> at /Users/trcarden/.rvm/gems/ruby-1.9.2-p180/gems/mongoid-2.2.1/lib/mongoid/railtie.rb:82)
10
+ DEPRECATION WARNING: ActionDispatch::ShowExceptions.rescue_responses is deprecated. Please configure your exceptions using a railtie or in your application config instead. (called from block (2 levels) in <class:Railtie> at /Users/trcarden/.rvm/gems/ruby-1.9.2-p180/gems/mongoid-2.2.1/lib/mongoid/railtie.rb:82)
11
+ MongoDB logging. Please note that logging negatively impacts performance and should be disabled for high-performance production apps.
12
+ MONGODB admin['$cmd'].find({:ismaster=>1})
13
+ MONGODB admin['$cmd'].find({:ismaster=>1})
14
+ DEPRECATION WARNING: ActionDispatch::ShowExceptions.rescue_responses is deprecated. Please configure your exceptions using a railtie or in your application config instead. (called from block (2 levels) in <class:Railtie> at /Users/trcarden/.rvm/gems/ruby-1.9.2-p180/gems/mongoid-2.2.1/lib/mongoid/railtie.rb:82)
15
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" 
16
+ MongoDB logging. Please note that logging negatively impacts performance and should be disabled for high-performance production apps.
17
+ MONGODB admin['$cmd'].find({:ismaster=>1})
18
+ MONGODB admin['$cmd'].find({:ismaster=>1})
19
+ DEPRECATION WARNING: ActionDispatch::ShowExceptions.rescue_responses is deprecated. Please configure your exceptions using a railtie or in your application config instead. (called from block (2 levels) in <class:Railtie> at /Users/trcarden/.rvm/gems/ruby-1.9.2-p180/gems/mongoid-2.2.1/lib/mongoid/railtie.rb:82)
20
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" 
21
+ MongoDB logging. Please note that logging negatively impacts performance and should be disabled for high-performance production apps.
22
+ MONGODB admin['$cmd'].find({:ismaster=>1})
23
+ MONGODB admin['$cmd'].find({:ismaster=>1})
24
+ DEPRECATION WARNING: ActionDispatch::ShowExceptions.rescue_responses is deprecated. Please configure your exceptions using a railtie or in your application config instead. (called from block (2 levels) in <class:Railtie> at /Users/trcarden/.rvm/gems/ruby-1.9.2-p180/gems/mongoid-2.2.1/lib/mongoid/railtie.rb:82)
25
+ MONGODB [WARNING] Please note that logging negatively impacts client-side performance. You should set your logging level no lower than :info in production.
26
+ MONGODB admin['$cmd'].find({:ismaster=>1}).limit(-1)
27
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" 
28
+ MONGODB [WARNING] Please note that logging negatively impacts client-side performance. You should set your logging level no lower than :info in production.
29
+ MONGODB admin['$cmd'].find({:ismaster=>1}).limit(-1)
30
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" 
31
+ MONGODB [WARNING] Please note that logging negatively impacts client-side performance. You should set your logging level no lower than :info in production.
32
+ MONGODB admin['$cmd'].find({:ismaster=>1}).limit(-1)
33
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" 
34
+ MONGODB [WARNING] Please note that logging negatively impacts client-side performance. You should set your logging level no lower than :info in production.
35
+ MONGODB admin['$cmd'].find({:ismaster=>1}).limit(-1)
36
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" 
37
+ MONGODB [WARNING] Please note that logging negatively impacts client-side performance. You should set your logging level no lower than :info in production.
38
+ MONGODB admin['$cmd'].find({:ismaster=>1}).limit(-1)
39
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" 
40
+ MONGODB [WARNING] Please note that logging negatively impacts client-side performance. You should set your logging level no lower than :info in production.
41
+ MONGODB admin['$cmd'].find({:ismaster=>1}).limit(-1)
42
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" 
43
+ MONGODB [WARNING] Please note that logging negatively impacts client-side performance. You should set your logging level no lower than :info in production.
44
+ MONGODB admin['$cmd'].find({:ismaster=>1}).limit(-1)
45
+ MONGODB [WARNING] Please note that logging negatively impacts client-side performance. You should set your logging level no lower than :info in production.
46
+ MONGODB admin['$cmd'].find({:ismaster=>1}).limit(-1)
47
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" 
48
+ MONGODB [WARNING] Please note that logging negatively impacts client-side performance. You should set your logging level no lower than :info in production.
49
+ MONGODB admin['$cmd'].find({:ismaster=>1}).limit(-1)
50
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" 
51
+ MONGODB [WARNING] Please note that logging negatively impacts client-side performance. You should set your logging level no lower than :info in production.
52
+ MONGODB admin['$cmd'].find({:ismaster=>1}).limit(-1)
53
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" 
54
+ MONGODB dummy_development['system.namespaces'].find({})
55
+ MONGODB dummy_development['$cmd'].find({:create=>"mail_spy_emails"}).limit(-1)
56
+ MONGODB dummy_development['mail_spy_emails'].insert([{"_id"=>BSON::ObjectId('4f205f828161348c23000001'), "email_address"=>"trcarden@gmail.com", "updated_at"=>2012-01-25 20:01:06 UTC, "created_at"=>2012-01-25 20:01:06 UTC}])
57
+ MONGODB [WARNING] Please note that logging negatively impacts client-side performance. You should set your logging level no lower than :info in production.
58
+ MONGODB admin['$cmd'].find({:ismaster=>1}).limit(-1)
59
+ MONGODB dummy_development['system.namespaces'].find({})
60
+ MONGODB dummy_development['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
61
+ MONGODB dummy_development['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :desc]])
62
+ MONGODB [WARNING] Please note that logging negatively impacts client-side performance. You should set your logging level no lower than :info in production.
63
+ MONGODB admin['$cmd'].find({:ismaster=>1}).limit(-1)
64
+ MONGODB [WARNING] Please note that logging negatively impacts client-side performance. You should set your logging level no lower than :info in production.
65
+ MONGODB admin['$cmd'].find({:ismaster=>1}).limit(-1)
66
+ MONGODB dummy_development['system.namespaces'].find({})
67
+ MONGODB dummy_development['system.namespaces'].find({})
68
+ MONGODB dummy_development['$cmd'].find({:drop=>"mail_spy_emails"}).limit(-1)
69
+ MONGODB [WARNING] Please note that logging negatively impacts client-side performance. You should set your logging level no lower than :info in production.
70
+ MONGODB admin['$cmd'].find({:ismaster=>1}).limit(-1)
71
+ MONGODB dummy_development['system.namespaces'].find({})
72
+ MONGODB [WARNING] Please note that logging negatively impacts client-side performance. You should set your logging level no lower than :info in production.
73
+ MONGODB admin['$cmd'].find({:ismaster=>1}).limit(-1)
74
+ MONGODB dummy_development['system.namespaces'].find({})
75
+ MONGODB dummy_development['$cmd'].find({:create=>"mail_spy_emails"}).limit(-1)
76
+ MONGODB dummy_development['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :desc]])
77
+ MONGODB [WARNING] Please note that logging negatively impacts client-side performance. You should set your logging level no lower than :info in production.
78
+ MONGODB admin['$cmd'].find({:ismaster=>1}).limit(-1)
79
+  (0.1ms) select sqlite_version(*)
80
+  (1.9ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)
81
+  (0.0ms) PRAGMA index_list("schema_migrations")
82
+  (0.8ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
83
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" 
84
+ MONGODB dummy_development['system.namespaces'].find({})
85
+ MONGODB dummy_development['mail_spy_emails'].insert([{"_id"=>BSON::ObjectId('4f2060698161348c73000001'), "email_address"=>"trcarden@gmail.com", "user_id"=>1, "campaign"=>"testCampaign", "stream"=>"testStream", "component"=>"a", "updated_at"=>2012-01-25 20:04:57 UTC, "created_at"=>2012-01-25 20:04:57 UTC, "actions"=>[{"_id"=>BSON::ObjectId('4f2060698161348c73000002'), "action_type"=>"open"}, {"_id"=>BSON::ObjectId('4f2060698161348c73000003'), "action_type"=>"delivered"}]}])
86
+ MONGODB [WARNING] Please note that logging negatively impacts client-side performance. You should set your logging level no lower than :info in production.
87
+ MONGODB admin['$cmd'].find({:ismaster=>1}).limit(-1)
88
+ MONGODB dummy_development['system.namespaces'].find({})
89
+ MONGODB dummy_development['system.namespaces'].find({})
90
+ MONGODB dummy_development['$cmd'].find({:drop=>"mail_spy_emails"}).limit(-1)
91
+ MONGODB [WARNING] Please note that logging negatively impacts client-side performance. You should set your logging level no lower than :info in production.
92
+ MONGODB admin['$cmd'].find({:ismaster=>1}).limit(-1)
93
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" 
94
+ MONGODB dummy_development['system.namespaces'].find({})
95
+ MONGODB dummy_development['$cmd'].find({:create=>"mail_spy_emails"}).limit(-1)
96
+ MONGODB dummy_development['mail_spy_emails'].insert([{"_id"=>BSON::ObjectId('4f206aa48161348d17000001'), "email_address"=>"trcarden@gmail.com", "user_id"=>1, "campaign"=>"testCampaign0", "stream"=>"testStream0", "component"=>"a", "updated_at"=>2012-01-25 20:48:36 UTC, "created_at"=>2012-01-25 20:48:36 UTC, "actions"=>[{"_id"=>BSON::ObjectId('4f206aa48161348d17000002'), "action_type"=>"open"}, {"_id"=>BSON::ObjectId('4f206aa48161348d17000003'), "action_type"=>"delivered"}]}])
97
+ MONGODB dummy_development['mail_spy_emails'].insert([{"_id"=>BSON::ObjectId('4f206aa48161348d17000004'), "email_address"=>"trcarden@gmail.com", "user_id"=>1, "campaign"=>"testCampaign1", "stream"=>"testStream1", "component"=>"a", "updated_at"=>2012-01-25 20:48:36 UTC, "created_at"=>2012-01-25 20:48:36 UTC, "actions"=>[{"_id"=>BSON::ObjectId('4f206aa48161348d17000005'), "action_type"=>"open"}, {"_id"=>BSON::ObjectId('4f206aa48161348d17000006'), "action_type"=>"delivered"}]}])
98
+ MONGODB dummy_development['mail_spy_emails'].insert([{"_id"=>BSON::ObjectId('4f206aa48161348d17000007'), "email_address"=>"trcarden@gmail.com", "user_id"=>1, "campaign"=>"testCampaign0", "stream"=>"testStream2", "component"=>"a", "updated_at"=>2012-01-25 20:48:36 UTC, "created_at"=>2012-01-25 20:48:36 UTC, "actions"=>[{"_id"=>BSON::ObjectId('4f206aa48161348d17000008'), "action_type"=>"open"}, {"_id"=>BSON::ObjectId('4f206aa48161348d17000009'), "action_type"=>"delivered"}]}])
99
+ MONGODB dummy_development['mail_spy_emails'].insert([{"_id"=>BSON::ObjectId('4f206aa48161348d1700000a'), "email_address"=>"trcarden@gmail.com", "user_id"=>1, "campaign"=>"testCampaign1", "stream"=>"testStream3", "component"=>"a", "updated_at"=>2012-01-25 20:48:36 UTC, "created_at"=>2012-01-25 20:48:36 UTC, "actions"=>[{"_id"=>BSON::ObjectId('4f206aa48161348d1700000b'), "action_type"=>"open"}, {"_id"=>BSON::ObjectId('4f206aa48161348d1700000c'), "action_type"=>"delivered"}]}])
100
+ MONGODB dummy_development['mail_spy_emails'].insert([{"_id"=>BSON::ObjectId('4f206aa48161348d1700000d'), "email_address"=>"trcarden@gmail.com", "user_id"=>1, "campaign"=>"testCampaign0", "stream"=>"testStream4", "component"=>"a", "updated_at"=>2012-01-25 20:48:36 UTC, "created_at"=>2012-01-25 20:48:36 UTC, "actions"=>[{"_id"=>BSON::ObjectId('4f206aa48161348d1700000e'), "action_type"=>"open"}, {"_id"=>BSON::ObjectId('4f206aa48161348d1700000f'), "action_type"=>"delivered"}]}])
101
+ MONGODB dummy_development['mail_spy_emails'].insert([{"_id"=>BSON::ObjectId('4f206aa48161348d17000010'), "email_address"=>"trcarden@gmail.com", "user_id"=>1, "campaign"=>"testCampaign1", "stream"=>"testStream5", "component"=>"a", "updated_at"=>2012-01-25 20:48:36 UTC, "created_at"=>2012-01-25 20:48:36 UTC, "actions"=>[{"_id"=>BSON::ObjectId('4f206aa48161348d17000011'), "action_type"=>"open"}, {"_id"=>BSON::ObjectId('4f206aa48161348d17000012'), "action_type"=>"delivered"}]}])
102
+ MONGODB dummy_development['mail_spy_emails'].insert([{"_id"=>BSON::ObjectId('4f206aa48161348d17000013'), "email_address"=>"trcarden@gmail.com", "user_id"=>1, "campaign"=>"testCampaign0", "stream"=>"testStream6", "component"=>"a", "updated_at"=>2012-01-25 20:48:36 UTC, "created_at"=>2012-01-25 20:48:36 UTC, "actions"=>[{"_id"=>BSON::ObjectId('4f206aa48161348d17000014'), "action_type"=>"open"}, {"_id"=>BSON::ObjectId('4f206aa48161348d17000015'), "action_type"=>"delivered"}]}])
103
+ MONGODB dummy_development['mail_spy_emails'].insert([{"_id"=>BSON::ObjectId('4f206aa48161348d17000016'), "email_address"=>"trcarden@gmail.com", "user_id"=>1, "campaign"=>"testCampaign1", "stream"=>"testStream7", "component"=>"a", "updated_at"=>2012-01-25 20:48:36 UTC, "created_at"=>2012-01-25 20:48:36 UTC, "actions"=>[{"_id"=>BSON::ObjectId('4f206aa48161348d17000017'), "action_type"=>"open"}, {"_id"=>BSON::ObjectId('4f206aa48161348d17000018'), "action_type"=>"delivered"}]}])
104
+ MONGODB dummy_development['mail_spy_emails'].insert([{"_id"=>BSON::ObjectId('4f206aa48161348d17000019'), "email_address"=>"trcarden@gmail.com", "user_id"=>1, "campaign"=>"testCampaign0", "stream"=>"testStream8", "component"=>"a", "updated_at"=>2012-01-25 20:48:36 UTC, "created_at"=>2012-01-25 20:48:36 UTC, "actions"=>[{"_id"=>BSON::ObjectId('4f206aa48161348d1700001a'), "action_type"=>"open"}, {"_id"=>BSON::ObjectId('4f206aa48161348d1700001b'), "action_type"=>"delivered"}]}])
105
+ MONGODB dummy_development['mail_spy_emails'].insert([{"_id"=>BSON::ObjectId('4f206aa48161348d1700001c'), "email_address"=>"trcarden@gmail.com", "user_id"=>1, "campaign"=>"testCampaign1", "stream"=>"testStream9", "component"=>"a", "updated_at"=>2012-01-25 20:48:36 UTC, "created_at"=>2012-01-25 20:48:36 UTC, "actions"=>[{"_id"=>BSON::ObjectId('4f206aa48161348d1700001d'), "action_type"=>"open"}, {"_id"=>BSON::ObjectId('4f206aa48161348d1700001e'), "action_type"=>"delivered"}]}])
106
+ MONGODB dummy_development['mail_spy_emails'].insert([{"_id"=>BSON::ObjectId('4f206aa48161348d1700001f'), "email_address"=>"trcarden@gmail.com", "user_id"=>1, "campaign"=>"testCampaign0", "stream"=>"testStream10", "component"=>"a", "updated_at"=>2012-01-25 20:48:36 UTC, "created_at"=>2012-01-25 20:48:36 UTC, "actions"=>[{"_id"=>BSON::ObjectId('4f206aa48161348d17000020'), "action_type"=>"open"}, {"_id"=>BSON::ObjectId('4f206aa48161348d17000021'), "action_type"=>"delivered"}]}])
107
+ MONGODB [WARNING] Please note that logging negatively impacts client-side performance. You should set your logging level no lower than :info in production.
108
+ MONGODB admin['$cmd'].find({:ismaster=>1}).limit(-1)
109
+ MONGODB dummy_development['system.namespaces'].find({})
110
+ MONGODB dummy_development['mail_spy_emails'].find({})
111
+ MONGODB [WARNING] Please note that logging negatively impacts client-side performance. You should set your logging level no lower than :info in production.
112
+ MONGODB admin['$cmd'].find({:ismaster=>1}).limit(-1)
113
+ MONGODB dummy_development['system.namespaces'].find({})
114
+ MONGODB dummy_development['$cmd'].find({"mapreduce"=>"mail_spy_emails", "map"=><BSON::Code:2188180940 @data=" function(){
115
+ emit(this.campaign, {count: 1});
116
+ }
117
+ " @scope="{}">, "reduce"=><BSON::Code:2188180900 @data=" function(key, values){
118
+ var result = { count : 0 };
119
+
120
+ values.forEach(function(value)){
121
+ result.count += value.count;
122
+ }
123
+ return result;
124
+ }
125
+ " @scope="{}">, :out=>"campaign_reports"}).limit(-1)
126
+ MONGODB dummy_development['system.namespaces'].find({})
127
+ MONGODB dummy_development['$cmd'].find({"mapreduce"=>"mail_spy_emails", "map"=><BSON::Code:2188374800 @data=" function(){
128
+ emit(this.campaign, {count: 1});
129
+ }
130
+ " @scope="{}">, "reduce"=><BSON::Code:2188374640 @data=" function(key, values){
131
+ var result = { count : 0 };
132
+
133
+ values.forEach(function(value){
134
+ result.count += value.count;
135
+ });
136
+ return result;
137
+ }
138
+ " @scope="{}">, :out=>"campaign_reports"}).limit(-1)
139
+ MONGODB [WARNING] Please note that logging negatively impacts client-side performance. You should set your logging level no lower than :info in production.
140
+ MONGODB admin['$cmd'].find({:ismaster=>1}).limit(-1)
141
+ MONGODB dummy_development['system.namespaces'].find({})
142
+ MONGODB dummy_development['$cmd'].find({"mapreduce"=>"mail_spy_emails", "map"=><BSON::Code:2159075280 @data=" function(){
143
+ emit(this.campaign, {count: 1});
144
+ }
145
+ " @scope="{}">, "reduce"=><BSON::Code:2159075240 @data=" function(key, values){
146
+ var result = { count : 0 };
147
+
148
+ values.forEach(function(value){
149
+ result.count += value.count;
150
+ });
151
+ return result;
152
+ }
153
+ " @scope="{}">, :out=>"campaign_reports"}).limit(-1)
154
+ MONGODB dummy_development['campaign_reports'].find({})
155
+ MONGODB dummy_development['$cmd'].find({"mapreduce"=>"mail_spy_emails", "map"=><BSON::Code:2168320420 @data=" function(){
156
+ emit(this.campaign, {count: 1});
157
+ }
158
+ " @scope="{}">, "reduce"=><BSON::Code:2168320380 @data=" function(key, values){
159
+ var result = { count : 0 };
160
+
161
+ values.forEach(function(value){
162
+ result.count += value.count;
163
+ });
164
+ return result;
165
+ }
166
+ " @scope="{}">, :out=>"campaign_reports"}).limit(-1)
167
+ MONGODB dummy_development['campaign_reports'].find({})
168
+ MONGODB [WARNING] Please note that logging negatively impacts client-side performance. You should set your logging level no lower than :info in production.
169
+ MONGODB admin['$cmd'].find({:ismaster=>1}).limit(-1)
170
+ Rendered text template (0.0ms)
171
+ Rendered text template (0.0ms)
172
+ Rendered text template (0.0ms)
173
+ Rendered text template (0.0ms)
174
+ Rendered inline template (20.0ms)
175
+ Rendered inline template (0.2ms)
176
+ Rendered inline template (0.5ms)
177
+ Rendered inline template (0.2ms)
178
+ MONGODB [WARNING] Please note that logging negatively impacts client-side performance. You should set your logging level no lower than :info in production.
179
+ MONGODB admin['$cmd'].find({:ismaster=>1}).limit(-1)
180
+ Rendered inline template (16.6ms)
181
+ Rendered inline template (0.3ms)
182
+ Rendered text template (0.0ms)
183
+ Rendered text template (0.0ms)
184
+ Rendered text template (0.0ms)
185
+ Rendered text template (0.0ms)
186
+ Rendered inline template (0.3ms)
187
+ Rendered inline template (0.2ms)
188
+ Rendered inline template (0.4ms)
189
+ Rendered inline template (0.2ms)
190
+ Rendered inline template (36.7ms)
191
+ Rendered inline template (0.9ms)
192
+ Rendered inline template (0.2ms)
193
+ Rendered inline template (0.3ms)
194
+ Rendered inline template (0.2ms)
195
+ MONGODB [WARNING] Please note that logging negatively impacts client-side performance. You should set your logging level no lower than :info in production.
196
+ MONGODB admin['$cmd'].find({:ismaster=>1}).limit(-1)
197
+ MONGODB dummy_development['system.namespaces'].find({})
198
+ MONGODB dummy_development['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :desc]])
199
+ MONGODB dummy_development['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :desc]])
200
+ MONGODB dummy_development['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :asc]])
201
+ MONGODB dummy_development['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :desc]])
202
+ MONGODB dummy_development['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :desc]])
203
+ MONGODB dummy_development['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :desc]])
204
+ MONGODB dummy_development['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :desc]])
205
+ MONGODB [WARNING] Please note that logging negatively impacts client-side performance. You should set your logging level no lower than :info in production.
206
+ MONGODB admin['$cmd'].find({:ismaster=>1}).limit(-1)
207
+ MONGODB dummy_development['system.namespaces'].find({})
208
+ MONGODB dummy_development['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :desc]])
209
+ MONGODB dummy_development['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :desc]])
210
+ MONGODB dummy_development['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :desc]])
211
+ MONGODB dummy_development['system.namespaces'].find({})
212
+ MONGODB dummy_development['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :desc]])