mail_spy 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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]])