dossier 2.4.0 → 2.5.0

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 (29) hide show
  1. data/README.markdown +28 -3
  2. data/app/views/dossier/reports/show.html.haml +1 -1
  3. data/config/routes.rb +1 -1
  4. data/lib/dossier/query.rb +1 -1
  5. data/lib/dossier/report.rb +4 -0
  6. data/lib/dossier/version.rb +1 -1
  7. data/lib/generators/dossier/views/templates/show.html.haml +21 -0
  8. data/lib/generators/dossier/views/views_generator.rb +12 -0
  9. data/spec/dossier/query_spec.rb +46 -27
  10. data/spec/dossier/report_spec.rb +19 -0
  11. data/spec/dummy/config/database.yml +1 -1
  12. data/spec/dummy/db/test.sqlite3 +0 -0
  13. data/spec/dummy/log/development.log +508 -28
  14. data/spec/dummy/log/test.log +879 -26190
  15. data/spec/dummy/tmp/cache/assets/C35/BF0/sprockets%2F64292e0008108df585a755f2876c7869 +0 -0
  16. data/spec/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953 +0 -0
  17. data/spec/dummy/tmp/cache/assets/D00/EF0/sprockets%2F4e1e8b85785ee1929c8e355c96902e9c +0 -0
  18. data/spec/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
  19. data/spec/dummy/tmp/cache/assets/D45/6A0/sprockets%2F22f3562bf7d5e640880df2a5d683f2fc +0 -0
  20. data/spec/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
  21. data/spec/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6 +0 -0
  22. data/spec/dummy/tmp/cache/assets/DCF/420/sprockets%2F9f127ea0ab7236994d1ceaa7bbea86c8 +0 -0
  23. data/spec/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
  24. data/spec/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
  25. data/spec/fixtures/db/mysql2.yml +2 -2
  26. data/spec/generators/dossier/views/views_spec.rb +25 -0
  27. data/spec/spec_helper.rb +1 -0
  28. data/spec/support/factory.rb +2 -2
  29. metadata +55 -15
data/README.markdown CHANGED
@@ -5,7 +5,7 @@ Dossier is a Rails engine that turns SQL into reports. Reports can be easily ren
5
5
  - If you **hate** SQL, you can use whatever tool you like to generate it; for example, ActiveRecord's `to_sql`.
6
6
  - If you **love** SQL, you can use every feature your database supports.
7
7
 
8
- [![Code Climate](https://codeclimate.com/badge.png)](https://codeclimate.com/github/adamhunter/dossier)
8
+ [![Code Climate](https://codeclimate.com/github/adamhunter/dossier.png)](https://codeclimate.com/github/adamhunter/dossier)
9
9
 
10
10
  ## Setup
11
11
 
@@ -47,7 +47,7 @@ class FancyKetchupReport < Dossier::Report
47
47
  end
48
48
  ```
49
49
 
50
- If you need dynamic values that may be influenced by the user, **[do not interpolate them directly](http://xkcd.com/327/)**. Dossier provides a safer way to add them: any symbols in the query will be replaced by calling methods of the same name in the report. Return values will be **escaped by the database connection**. Arrays will have all of their contents escaped, joined with a "," and wrapped in parentheses.
50
+ If you need dynamic values that may be influenced by the user, **[do not interpolate them directly](http://xkcd.com/327/)**. Dossier provides a safer way to add them: any lowercase symbols in the query will be replaced by calling methods of the same name in the report. Return values will be **escaped by the database connection**. Arrays will have all of their contents escaped, joined with a "," and wrapped in parentheses.
51
51
 
52
52
  ```ruby
53
53
  # app/reports/fancy_ketchup_report.rb
@@ -67,6 +67,22 @@ class FancyKetchupReport < Dossier::Report
67
67
  end
68
68
  ```
69
69
 
70
+ ## Header Formatting
71
+
72
+ By default, headers are generated by calling `titleize` on the column name from the result set. To override this, define a `format_header` method in your report that returns what you want. For example:
73
+
74
+ ```ruby
75
+ class ProductMarginReport < Dossier::Report
76
+ # ...
77
+ def format_header(column_name)
78
+ {
79
+ 'margin_percentage' => 'Margin %',
80
+ 'absolute_margin' => 'Margin $'
81
+ }[column_name.to_s] || super
82
+ end
83
+ end
84
+ ```
85
+
70
86
  ## Column Formatting
71
87
 
72
88
  You can format any values in your results by defining a `format_` method for that column on your report class. For instance, to reverse the names of your employees:
@@ -141,7 +157,16 @@ However, Dossier does support one URL parameter natively: if you supply a `foote
141
157
 
142
158
  ## Additional View Customization
143
159
 
144
- To further customize your results view, provide your own `app/views/dossier/reports/show`.
160
+ To further customize your results view, run the the generator provided. The default will provide 'app/views/dossier/reports/show'.
161
+
162
+ ```ruby
163
+ rails generate dossier:views
164
+ ```
165
+ You may pass a filename as an argument. This example creates 'app/views/dossier/reports/account_tracker.html.haml'.
166
+
167
+ ```ruby
168
+ rails generate dossier:views account_tracker
169
+ ```
145
170
 
146
171
  ## Callbacks
147
172
 
@@ -6,7 +6,7 @@
6
6
  %thead
7
7
  %tr
8
8
  - report.results.headers.each do |header|
9
- %th= Dossier::Formatter.titleize(header)
9
+ %th= report.format_header(header)
10
10
  %tbody
11
11
  - report.results.body.each do |row|
12
12
  %tr
data/config/routes.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  Rails.application.routes.draw do
2
2
 
3
- match "reports/:report", :to => 'dossier/reports#show', :as => :dossier_report
3
+ match "reports/:report", :to => 'dossier/reports#show', :as => :dossier_report, via: :get
4
4
 
5
5
  end
data/lib/dossier/query.rb CHANGED
@@ -15,7 +15,7 @@ module Dossier
15
15
  private
16
16
 
17
17
  def compile
18
- string.gsub(/\w*\:\w+/) { |match| escape(report.public_send(match[1..-1])) }
18
+ string.gsub(/\w*\:[a-z]+/) { |match| escape(report.public_send(match[1..-1])) }
19
19
  end
20
20
 
21
21
  def escape(value)
@@ -42,6 +42,10 @@ module Dossier
42
42
  Dossier::Formatter
43
43
  end
44
44
 
45
+ def format_header(header)
46
+ formatter.titleize(header.to_s)
47
+ end
48
+
45
49
  def dossier_client
46
50
  Dossier.client
47
51
  end
@@ -1,3 +1,3 @@
1
1
  module Dossier
2
- VERSION = "2.4.0"
2
+ VERSION = "2.5.0"
3
3
  end
@@ -0,0 +1,21 @@
1
+ %h1= report.class.name.titleize
2
+
3
+ = link_to 'Download CSV', dossier_report_path(format: 'csv', options: report.options, report: report.class.report_name), class: 'download-csv'
4
+
5
+ %table
6
+ %thead
7
+ %tr
8
+ - report.results.headers.each do |header|
9
+ %th= Dossier::Formatter.titleize(header)
10
+ %tbody
11
+ - report.results.body.each do |row|
12
+ %tr
13
+ - row.each do |value|
14
+ %td= value
15
+
16
+ - if report.results.footers.any?
17
+ %tfoot
18
+ - report.results.footers.each do |row|
19
+ %tr
20
+ - row.each do |value|
21
+ %th= value
@@ -0,0 +1,12 @@
1
+ module Dossier
2
+ class ViewsGenerator < Rails::Generators::Base
3
+ desc "This generator creates report views"
4
+ source_root File.expand_path('../templates', __FILE__)
5
+ argument :report_name, type: :string, default: "show"
6
+
7
+ def generate_view
8
+ template "show.html.haml", Rails.root.join("app/" "views/" "dossier/reports/#{report_name}.html.haml")
9
+ end
10
+
11
+ end
12
+ end
@@ -12,48 +12,67 @@ describe Dossier::Query do
12
12
 
13
13
  describe "replacing symbols by calling methods of the same name" do
14
14
 
15
- context "when the methods return single values" do
15
+ context "when it's a normal symbol match" do
16
16
 
17
- before :each do
18
- report.stub(:sql).and_return("SELECT * FROM employees WHERE id = :id OR girth < :girth OR name = :name")
19
- report.stub(:id).and_return(92)
20
- report.stub(:girth).and_return(3.14)
21
- report.stub(:name).and_return('Jimmy')
22
- end
17
+ context "when the methods return single values" do
23
18
 
24
- it "escapes the values" do
25
- query.should_receive(:escape).with(92)
26
- query.should_receive(:escape).with(3.14)
27
- query.should_receive(:escape).with('Jimmy')
28
- query.to_s
29
- end
19
+ before :each do
20
+ report.stub(:sql).and_return("SELECT * FROM employees WHERE id = :id OR girth < :girth OR name = :name")
21
+ report.stub(:id).and_return(92)
22
+ report.stub(:girth).and_return(3.14)
23
+ report.stub(:name).and_return('Jimmy')
24
+ end
25
+
26
+ it "escapes the values" do
27
+ query.should_receive(:escape).with(92)
28
+ query.should_receive(:escape).with(3.14)
29
+ query.should_receive(:escape).with('Jimmy')
30
+ query.to_s
31
+ end
32
+
33
+ it "inserts the values" do
34
+ expect(query.to_s).to eq("SELECT * FROM employees WHERE id = 92 OR girth < 3.14 OR name = 'Jimmy'")
35
+ end
30
36
 
31
- it "inserts the values" do
32
- expect(query.to_s).to eq("SELECT * FROM employees WHERE id = 92 OR girth < 3.14 OR name = 'Jimmy'")
33
37
  end
34
38
 
35
- end
39
+ context "when the methods return arrays" do
36
40
 
37
- context "when the methods return arrays" do
41
+ before :each do
42
+ report.stub(:sql).and_return("SELECT * FROM employees WHERE stuff IN :stuff")
43
+ report.stub(:stuff).and_return([38, 'blue', 'mandible', 2])
44
+ end
38
45
 
39
- before :each do
40
- report.stub(:sql).and_return("SELECT * FROM employees WHERE stuff IN :stuff")
41
- report.stub(:stuff).and_return([38, 'blue', 'mandible', 2])
46
+ it "escapes each value in the array" do
47
+ Dossier.client.should_receive(:escape).with(38)
48
+ Dossier.client.should_receive(:escape).with('blue')
49
+ Dossier.client.should_receive(:escape).with('mandible')
50
+ Dossier.client.should_receive(:escape).with(2)
51
+ query.to_s
52
+ end
53
+
54
+ it "joins the return values with commas" do
55
+ expect(query.to_s).to eq("SELECT * FROM employees WHERE stuff IN (38, 'blue', 'mandible', 2)")
56
+ end
42
57
  end
58
+ end
59
+
60
+ context "when it's another string that includes :" do
43
61
 
44
- it "escapes each value in the array" do
45
- Dossier.client.should_receive(:escape).with(38)
46
- Dossier.client.should_receive(:escape).with('blue')
47
- Dossier.client.should_receive(:escape).with('mandible')
48
- Dossier.client.should_receive(:escape).with(2)
62
+ it "does not escape a namespaced constant" do
63
+ report.stub(:sql).and_return("SELECT * FROM employees WHERE type = 'Foo::Bar'")
64
+ query.should_not_receive(:Bar)
49
65
  query.to_s
50
66
  end
51
67
 
52
- it "joins the return values with commas" do
53
- expect(query.to_s).to eq("SELECT * FROM employees WHERE stuff IN (38, 'blue', 'mandible', 2)")
68
+ it "does not escape a top-level constant" do
69
+ report.stub(:sql).and_return("SELECT * FROM employees WHERE type = '::Foo'")
70
+ query.should_not_receive(:Foo)
71
+ query.to_s
54
72
  end
55
73
 
56
74
  end
57
75
 
58
76
  end
77
+
59
78
  end
@@ -9,10 +9,29 @@ describe Dossier::Report do
9
9
  end
10
10
 
11
11
  describe "report instances" do
12
+ let(:report_with_custom_header) do
13
+ Class.new(Dossier::Report) do
14
+ def format_header(header)
15
+ {
16
+ 'generic' => 'customized'
17
+ }[header.to_s] || super
18
+ end
19
+ end.new
20
+ end
21
+
12
22
  it "takes options when initializing" do
13
23
  report = TestReport.new(:foo => 'bar')
14
24
  report.options.should eq('foo' => 'bar')
15
25
  end
26
+
27
+ it 'generates column headers' do
28
+ report = TestReport.new(:foo => 'bar')
29
+ report.format_header('Foo').should eq 'Foo'
30
+ end
31
+
32
+ it 'allows for column header customization' do
33
+ report_with_custom_header.format_header(:generic).should eq 'customized'
34
+ end
16
35
  end
17
36
 
18
37
  describe "callbacks" do
@@ -3,7 +3,7 @@ defaults: &defaults
3
3
  database: dossier_test
4
4
  host: localhost
5
5
  username: root
6
- password: yePassworde
6
+ password: rubyr3d!
7
7
 
8
8
  development:
9
9
  <<: *defaults
Binary file
@@ -1,33 +1,513 @@
1
1
  Connecting to database specified by database.yml
2
-  (45.0ms) CREATE TABLE `employees` (`id` int(11) DEFAULT NULL auto_increment PRIMARY KEY, `name` varchar(255), `hired_on` date, `suspended` tinyint(1)) ENGINE=InnoDB
3
-  (217.3ms) CREATE TABLE `schema_migrations` (`version` varchar(255) NOT NULL) ENGINE=InnoDB
4
-  (141.9ms) CREATE UNIQUE INDEX `unique_schema_migrations` ON `schema_migrations` (`version`)
5
-  (0.2ms) SELECT version FROM `schema_migrations`
6
-  (0.3ms) INSERT INTO `schema_migrations` (version) VALUES ('20130110141950')
7
2
  Connecting to database specified by database.yml
8
3
  Connecting to database specified by database.yml
9
- Connecting to database specified by database.yml
10
-  (1.5ms) SELECT `schema_migrations`.`version` FROM `schema_migrations` 
11
- Migrating to CreateEmployees (20130110141950)
12
- Migrating to AddDivisionToEmployees (20130110221932)
13
-  (109.6ms) ALTER TABLE `employees` ADD `division` varchar(255)
14
-  (0.5ms) INSERT INTO `schema_migrations` (`version`) VALUES ('20130110221932')
15
-  (0.2ms) SELECT `schema_migrations`.`version` FROM `schema_migrations`
16
- Connecting to database specified by database.yml
17
-  (1.7ms) SELECT `schema_migrations`.`version` FROM `schema_migrations` 
18
-  (0.3ms) SELECT `schema_migrations`.`version` FROM `schema_migrations`
19
- Migrating to AddDivisionToEmployees (20130110221932)
20
-  (85.8ms) ALTER TABLE `employees` DROP `division`
21
-  (0.6ms) DELETE FROM `schema_migrations` WHERE `schema_migrations`.`version` = '20130110221932'
22
-  (0.1ms) SELECT `schema_migrations`.`version` FROM `schema_migrations` 
23
- Connecting to database specified by database.yml
24
-  (1.6ms) SELECT `schema_migrations`.`version` FROM `schema_migrations` 
25
- Migrating to CreateEmployees (20130110141950)
26
- Migrating to AddDivisionToEmployees (20130110221932)
27
-  (50.1ms) ALTER TABLE `employees` ADD `division` varchar(255)
28
-  (238.4ms) ALTER TABLE `employees` ADD `salary` int(11)
29
-  (0.4ms) INSERT INTO `schema_migrations` (`version`) VALUES ('20130110221932')
30
-  (0.3ms) SELECT `schema_migrations`.`version` FROM `schema_migrations` 
31
- Connecting to database specified by database.yml
4
+
5
+
6
+ Started GET "/" for 127.0.0.1 at 2013-02-05 09:02:51 -0500
7
+
8
+ ActionController::RoutingError (No route matches [GET] "/"):
9
+ actionpack (3.2.11) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
10
+ actionpack (3.2.11) lib/action_dispatch/middleware/show_exceptions.rb:56:in `call'
11
+ railties (3.2.11) lib/rails/rack/logger.rb:32:in `call_app'
12
+ railties (3.2.11) lib/rails/rack/logger.rb:16:in `block in call'
13
+ activesupport (3.2.11) lib/active_support/tagged_logging.rb:22:in `tagged'
14
+ railties (3.2.11) lib/rails/rack/logger.rb:16:in `call'
15
+ actionpack (3.2.11) lib/action_dispatch/middleware/request_id.rb:22:in `call'
16
+ rack (1.4.4) lib/rack/methodoverride.rb:21:in `call'
17
+ rack (1.4.4) lib/rack/runtime.rb:17:in `call'
18
+ activesupport (3.2.11) lib/active_support/cache/strategy/local_cache.rb:72:in `call'
19
+ rack (1.4.4) lib/rack/lock.rb:15:in `call'
20
+ actionpack (3.2.11) lib/action_dispatch/middleware/static.rb:62:in `call'
21
+ railties (3.2.11) lib/rails/engine.rb:479:in `call'
22
+ railties (3.2.11) lib/rails/application.rb:223:in `call'
23
+ railties (3.2.11) lib/rails/railtie/configurable.rb:30:in `method_missing'
24
+ passenger (3.0.14) lib/phusion_passenger/rack/request_handler.rb:96:in `process_request'
25
+ passenger (3.0.14) lib/phusion_passenger/abstract_request_handler.rb:516:in `accept_and_process_next_request'
26
+ passenger (3.0.14) lib/phusion_passenger/abstract_request_handler.rb:274:in `main_loop'
27
+ passenger (3.0.14) lib/phusion_passenger/rack/application_spawner.rb:206:in `start_request_handler'
28
+ passenger (3.0.14) lib/phusion_passenger/rack/application_spawner.rb:171:in `block in handle_spawn_application'
29
+ passenger (3.0.14) lib/phusion_passenger/utils.rb:470:in `safe_fork'
30
+ passenger (3.0.14) lib/phusion_passenger/rack/application_spawner.rb:166:in `handle_spawn_application'
31
+ passenger (3.0.14) lib/phusion_passenger/abstract_server.rb:357:in `server_main_loop'
32
+ passenger (3.0.14) lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously'
33
+ passenger (3.0.14) lib/phusion_passenger/abstract_server.rb:180:in `start'
34
+ passenger (3.0.14) lib/phusion_passenger/rack/application_spawner.rb:129:in `start'
35
+ passenger (3.0.14) lib/phusion_passenger/spawn_manager.rb:253:in `block (2 levels) in spawn_rack_application'
36
+ passenger (3.0.14) lib/phusion_passenger/abstract_server_collection.rb:132:in `lookup_or_add'
37
+ passenger (3.0.14) lib/phusion_passenger/spawn_manager.rb:246:in `block in spawn_rack_application'
38
+ passenger (3.0.14) lib/phusion_passenger/abstract_server_collection.rb:82:in `block in synchronize'
39
+ <internal:prelude>:10:in `synchronize'
40
+ passenger (3.0.14) lib/phusion_passenger/abstract_server_collection.rb:79:in `synchronize'
41
+ passenger (3.0.14) lib/phusion_passenger/spawn_manager.rb:244:in `spawn_rack_application'
42
+ passenger (3.0.14) lib/phusion_passenger/spawn_manager.rb:137:in `spawn_application'
43
+ passenger (3.0.14) lib/phusion_passenger/spawn_manager.rb:275:in `handle_spawn_application'
44
+ passenger (3.0.14) lib/phusion_passenger/abstract_server.rb:357:in `server_main_loop'
45
+ passenger (3.0.14) lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously'
46
+ passenger (3.0.14) helper-scripts/passenger-spawn-server:99:in `<main>'
47
+
48
+
49
+ Rendered /Users/adamhunter/.rvm/gems/ruby-1.9.3-p194@dossier2/gems/actionpack-3.2.11/lib/action_dispatch/middleware/templates/rescues/routing_error.erb within rescues/layout (1.2ms)
50
+
51
+
52
+ Started GET "/woo" for 127.0.0.1 at 2013-02-05 09:02:55 -0500
53
+
54
+ NoMethodError (undefined method `action' for SiteController:Class):
55
+ actionpack (3.2.11) lib/action_dispatch/routing/route_set.rb:73:in `dispatch'
56
+ actionpack (3.2.11) lib/action_dispatch/routing/route_set.rb:36:in `call'
57
+ journey (1.0.4) lib/journey/router.rb:68:in `block in call'
58
+ journey (1.0.4) lib/journey/router.rb:56:in `each'
59
+ journey (1.0.4) lib/journey/router.rb:56:in `call'
60
+ actionpack (3.2.11) lib/action_dispatch/routing/route_set.rb:601:in `call'
61
+ actionpack (3.2.11) lib/action_dispatch/middleware/best_standards_support.rb:17:in `call'
62
+ rack (1.4.4) lib/rack/etag.rb:23:in `call'
63
+ rack (1.4.4) lib/rack/conditionalget.rb:25:in `call'
64
+ actionpack (3.2.11) lib/action_dispatch/middleware/head.rb:14:in `call'
65
+ actionpack (3.2.11) lib/action_dispatch/middleware/params_parser.rb:21:in `call'
66
+ actionpack (3.2.11) lib/action_dispatch/middleware/flash.rb:242:in `call'
67
+ rack (1.4.4) lib/rack/session/abstract/id.rb:210:in `context'
68
+ rack (1.4.4) lib/rack/session/abstract/id.rb:205:in `call'
69
+ actionpack (3.2.11) lib/action_dispatch/middleware/cookies.rb:341:in `call'
70
+ activerecord (3.2.11) lib/active_record/query_cache.rb:64:in `call'
71
+ activerecord (3.2.11) lib/active_record/connection_adapters/abstract/connection_pool.rb:479:in `call'
72
+ actionpack (3.2.11) lib/action_dispatch/middleware/callbacks.rb:28:in `block in call'
73
+ activesupport (3.2.11) lib/active_support/callbacks.rb:405:in `_run__3036648868073490833__call__700523775367203622__callbacks'
74
+ activesupport (3.2.11) lib/active_support/callbacks.rb:405:in `__run_callback'
75
+ activesupport (3.2.11) lib/active_support/callbacks.rb:385:in `_run_call_callbacks'
76
+ activesupport (3.2.11) lib/active_support/callbacks.rb:81:in `run_callbacks'
77
+ actionpack (3.2.11) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
78
+ actionpack (3.2.11) lib/action_dispatch/middleware/reloader.rb:65:in `call'
79
+ actionpack (3.2.11) lib/action_dispatch/middleware/remote_ip.rb:31:in `call'
80
+ actionpack (3.2.11) lib/action_dispatch/middleware/debug_exceptions.rb:16:in `call'
81
+ actionpack (3.2.11) lib/action_dispatch/middleware/show_exceptions.rb:56:in `call'
82
+ railties (3.2.11) lib/rails/rack/logger.rb:32:in `call_app'
83
+ railties (3.2.11) lib/rails/rack/logger.rb:16:in `block in call'
84
+ activesupport (3.2.11) lib/active_support/tagged_logging.rb:22:in `tagged'
85
+ railties (3.2.11) lib/rails/rack/logger.rb:16:in `call'
86
+ actionpack (3.2.11) lib/action_dispatch/middleware/request_id.rb:22:in `call'
87
+ rack (1.4.4) lib/rack/methodoverride.rb:21:in `call'
88
+ rack (1.4.4) lib/rack/runtime.rb:17:in `call'
89
+ activesupport (3.2.11) lib/active_support/cache/strategy/local_cache.rb:72:in `call'
90
+ rack (1.4.4) lib/rack/lock.rb:15:in `call'
91
+ actionpack (3.2.11) lib/action_dispatch/middleware/static.rb:62:in `call'
92
+ railties (3.2.11) lib/rails/engine.rb:479:in `call'
93
+ railties (3.2.11) lib/rails/application.rb:223:in `call'
94
+ railties (3.2.11) lib/rails/railtie/configurable.rb:30:in `method_missing'
95
+ passenger (3.0.14) lib/phusion_passenger/rack/request_handler.rb:96:in `process_request'
96
+ passenger (3.0.14) lib/phusion_passenger/abstract_request_handler.rb:516:in `accept_and_process_next_request'
97
+ passenger (3.0.14) lib/phusion_passenger/abstract_request_handler.rb:274:in `main_loop'
98
+ passenger (3.0.14) lib/phusion_passenger/rack/application_spawner.rb:206:in `start_request_handler'
99
+ passenger (3.0.14) lib/phusion_passenger/rack/application_spawner.rb:171:in `block in handle_spawn_application'
100
+ passenger (3.0.14) lib/phusion_passenger/utils.rb:470:in `safe_fork'
101
+ passenger (3.0.14) lib/phusion_passenger/rack/application_spawner.rb:166:in `handle_spawn_application'
102
+ passenger (3.0.14) lib/phusion_passenger/abstract_server.rb:357:in `server_main_loop'
103
+ passenger (3.0.14) lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously'
104
+ passenger (3.0.14) lib/phusion_passenger/abstract_server.rb:180:in `start'
105
+ passenger (3.0.14) lib/phusion_passenger/rack/application_spawner.rb:129:in `start'
106
+ passenger (3.0.14) lib/phusion_passenger/spawn_manager.rb:253:in `block (2 levels) in spawn_rack_application'
107
+ passenger (3.0.14) lib/phusion_passenger/abstract_server_collection.rb:132:in `lookup_or_add'
108
+ passenger (3.0.14) lib/phusion_passenger/spawn_manager.rb:246:in `block in spawn_rack_application'
109
+ passenger (3.0.14) lib/phusion_passenger/abstract_server_collection.rb:82:in `block in synchronize'
110
+ <internal:prelude>:10:in `synchronize'
111
+ passenger (3.0.14) lib/phusion_passenger/abstract_server_collection.rb:79:in `synchronize'
112
+ passenger (3.0.14) lib/phusion_passenger/spawn_manager.rb:244:in `spawn_rack_application'
113
+ passenger (3.0.14) lib/phusion_passenger/spawn_manager.rb:137:in `spawn_application'
114
+ passenger (3.0.14) lib/phusion_passenger/spawn_manager.rb:275:in `handle_spawn_application'
115
+ passenger (3.0.14) lib/phusion_passenger/abstract_server.rb:357:in `server_main_loop'
116
+ passenger (3.0.14) lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously'
117
+ passenger (3.0.14) helper-scripts/passenger-spawn-server:99:in `<main>'
118
+
119
+
120
+ Rendered /Users/adamhunter/.rvm/gems/ruby-1.9.3-p194@dossier2/gems/actionpack-3.2.11/lib/action_dispatch/middleware/templates/rescues/_trace.erb (1.7ms)
121
+ Rendered /Users/adamhunter/.rvm/gems/ruby-1.9.3-p194@dossier2/gems/actionpack-3.2.11/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (3.8ms)
122
+ Rendered /Users/adamhunter/.rvm/gems/ruby-1.9.3-p194@dossier2/gems/actionpack-3.2.11/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (18.0ms)
123
+
124
+
125
+ Started GET "/woo" for 127.0.0.1 at 2013-02-05 09:03:20 -0500
126
+ Processing by SiteController#index as HTML
127
+ Rendered text template (0.0ms)
128
+ Completed 200 OK in 4ms (Views: 3.2ms | ActiveRecord: 0.0ms)
129
+
130
+
131
+ Started GET "/employee_with_custom_controller" for 127.0.0.1 at 2013-02-05 09:03:27 -0500
132
+
133
+ ActionController::RoutingError (No route matches [GET] "/employee_with_custom_controller"):
134
+ actionpack (3.2.11) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
135
+ actionpack (3.2.11) lib/action_dispatch/middleware/show_exceptions.rb:56:in `call'
136
+ railties (3.2.11) lib/rails/rack/logger.rb:32:in `call_app'
137
+ railties (3.2.11) lib/rails/rack/logger.rb:16:in `block in call'
138
+ activesupport (3.2.11) lib/active_support/tagged_logging.rb:22:in `tagged'
139
+ railties (3.2.11) lib/rails/rack/logger.rb:16:in `call'
140
+ actionpack (3.2.11) lib/action_dispatch/middleware/request_id.rb:22:in `call'
141
+ rack (1.4.4) lib/rack/methodoverride.rb:21:in `call'
142
+ rack (1.4.4) lib/rack/runtime.rb:17:in `call'
143
+ activesupport (3.2.11) lib/active_support/cache/strategy/local_cache.rb:72:in `call'
144
+ rack (1.4.4) lib/rack/lock.rb:15:in `call'
145
+ actionpack (3.2.11) lib/action_dispatch/middleware/static.rb:62:in `call'
146
+ railties (3.2.11) lib/rails/engine.rb:479:in `call'
147
+ railties (3.2.11) lib/rails/application.rb:223:in `call'
148
+ railties (3.2.11) lib/rails/railtie/configurable.rb:30:in `method_missing'
149
+ passenger (3.0.14) lib/phusion_passenger/rack/request_handler.rb:96:in `process_request'
150
+ passenger (3.0.14) lib/phusion_passenger/abstract_request_handler.rb:516:in `accept_and_process_next_request'
151
+ passenger (3.0.14) lib/phusion_passenger/abstract_request_handler.rb:274:in `main_loop'
152
+ passenger (3.0.14) lib/phusion_passenger/rack/application_spawner.rb:206:in `start_request_handler'
153
+ passenger (3.0.14) lib/phusion_passenger/rack/application_spawner.rb:171:in `block in handle_spawn_application'
154
+ passenger (3.0.14) lib/phusion_passenger/utils.rb:470:in `safe_fork'
155
+ passenger (3.0.14) lib/phusion_passenger/rack/application_spawner.rb:166:in `handle_spawn_application'
156
+ passenger (3.0.14) lib/phusion_passenger/abstract_server.rb:357:in `server_main_loop'
157
+ passenger (3.0.14) lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously'
158
+ passenger (3.0.14) lib/phusion_passenger/abstract_server.rb:180:in `start'
159
+ passenger (3.0.14) lib/phusion_passenger/rack/application_spawner.rb:129:in `start'
160
+ passenger (3.0.14) lib/phusion_passenger/spawn_manager.rb:253:in `block (2 levels) in spawn_rack_application'
161
+ passenger (3.0.14) lib/phusion_passenger/abstract_server_collection.rb:132:in `lookup_or_add'
162
+ passenger (3.0.14) lib/phusion_passenger/spawn_manager.rb:246:in `block in spawn_rack_application'
163
+ passenger (3.0.14) lib/phusion_passenger/abstract_server_collection.rb:82:in `block in synchronize'
164
+ <internal:prelude>:10:in `synchronize'
165
+ passenger (3.0.14) lib/phusion_passenger/abstract_server_collection.rb:79:in `synchronize'
166
+ passenger (3.0.14) lib/phusion_passenger/spawn_manager.rb:244:in `spawn_rack_application'
167
+ passenger (3.0.14) lib/phusion_passenger/spawn_manager.rb:137:in `spawn_application'
168
+ passenger (3.0.14) lib/phusion_passenger/spawn_manager.rb:275:in `handle_spawn_application'
169
+ passenger (3.0.14) lib/phusion_passenger/abstract_server.rb:357:in `server_main_loop'
170
+ passenger (3.0.14) lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously'
171
+ passenger (3.0.14) helper-scripts/passenger-spawn-server:99:in `<main>'
172
+
173
+
174
+ Rendered /Users/adamhunter/.rvm/gems/ruby-1.9.3-p194@dossier2/gems/actionpack-3.2.11/lib/action_dispatch/middleware/templates/rescues/routing_error.erb within rescues/layout (0.9ms)
175
+
176
+
177
+ Started GET "/employee_report_with_custom_controller" for 127.0.0.1 at 2013-02-05 09:03:37 -0500
178
+
179
+ ActionController::RoutingError (No route matches [GET] "/employee_report_with_custom_controller"):
180
+ actionpack (3.2.11) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
181
+ actionpack (3.2.11) lib/action_dispatch/middleware/show_exceptions.rb:56:in `call'
182
+ railties (3.2.11) lib/rails/rack/logger.rb:32:in `call_app'
183
+ railties (3.2.11) lib/rails/rack/logger.rb:16:in `block in call'
184
+ activesupport (3.2.11) lib/active_support/tagged_logging.rb:22:in `tagged'
185
+ railties (3.2.11) lib/rails/rack/logger.rb:16:in `call'
186
+ actionpack (3.2.11) lib/action_dispatch/middleware/request_id.rb:22:in `call'
187
+ rack (1.4.4) lib/rack/methodoverride.rb:21:in `call'
188
+ rack (1.4.4) lib/rack/runtime.rb:17:in `call'
189
+ activesupport (3.2.11) lib/active_support/cache/strategy/local_cache.rb:72:in `call'
190
+ rack (1.4.4) lib/rack/lock.rb:15:in `call'
191
+ actionpack (3.2.11) lib/action_dispatch/middleware/static.rb:62:in `call'
192
+ railties (3.2.11) lib/rails/engine.rb:479:in `call'
193
+ railties (3.2.11) lib/rails/application.rb:223:in `call'
194
+ railties (3.2.11) lib/rails/railtie/configurable.rb:30:in `method_missing'
195
+ passenger (3.0.14) lib/phusion_passenger/rack/request_handler.rb:96:in `process_request'
196
+ passenger (3.0.14) lib/phusion_passenger/abstract_request_handler.rb:516:in `accept_and_process_next_request'
197
+ passenger (3.0.14) lib/phusion_passenger/abstract_request_handler.rb:274:in `main_loop'
198
+ passenger (3.0.14) lib/phusion_passenger/rack/application_spawner.rb:206:in `start_request_handler'
199
+ passenger (3.0.14) lib/phusion_passenger/rack/application_spawner.rb:171:in `block in handle_spawn_application'
200
+ passenger (3.0.14) lib/phusion_passenger/utils.rb:470:in `safe_fork'
201
+ passenger (3.0.14) lib/phusion_passenger/rack/application_spawner.rb:166:in `handle_spawn_application'
202
+ passenger (3.0.14) lib/phusion_passenger/abstract_server.rb:357:in `server_main_loop'
203
+ passenger (3.0.14) lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously'
204
+ passenger (3.0.14) lib/phusion_passenger/abstract_server.rb:180:in `start'
205
+ passenger (3.0.14) lib/phusion_passenger/rack/application_spawner.rb:129:in `start'
206
+ passenger (3.0.14) lib/phusion_passenger/spawn_manager.rb:253:in `block (2 levels) in spawn_rack_application'
207
+ passenger (3.0.14) lib/phusion_passenger/abstract_server_collection.rb:132:in `lookup_or_add'
208
+ passenger (3.0.14) lib/phusion_passenger/spawn_manager.rb:246:in `block in spawn_rack_application'
209
+ passenger (3.0.14) lib/phusion_passenger/abstract_server_collection.rb:82:in `block in synchronize'
210
+ <internal:prelude>:10:in `synchronize'
211
+ passenger (3.0.14) lib/phusion_passenger/abstract_server_collection.rb:79:in `synchronize'
212
+ passenger (3.0.14) lib/phusion_passenger/spawn_manager.rb:244:in `spawn_rack_application'
213
+ passenger (3.0.14) lib/phusion_passenger/spawn_manager.rb:137:in `spawn_application'
214
+ passenger (3.0.14) lib/phusion_passenger/spawn_manager.rb:275:in `handle_spawn_application'
215
+ passenger (3.0.14) lib/phusion_passenger/abstract_server.rb:357:in `server_main_loop'
216
+ passenger (3.0.14) lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously'
217
+ passenger (3.0.14) helper-scripts/passenger-spawn-server:99:in `<main>'
218
+
219
+
220
+ Rendered /Users/adamhunter/.rvm/gems/ruby-1.9.3-p194@dossier2/gems/actionpack-3.2.11/lib/action_dispatch/middleware/templates/rescues/routing_error.erb within rescues/layout (0.6ms)
221
+
222
+
223
+ Started GET "/employee_report_custom_controller" for 127.0.0.1 at 2013-02-05 09:03:44 -0500
224
+ Processing by SiteController#report as HTML
225
+ Completed 500 Internal Server Error in 2ms
226
+
227
+ NameError (uninitialized constant SiteController::EmployeeReport):
228
+ app/controllers/site_controller.rb:7:in `report'
229
+
230
+
231
+ Rendered /Users/adamhunter/.rvm/gems/ruby-1.9.3-p194@dossier2/gems/actionpack-3.2.11/lib/action_dispatch/middleware/templates/rescues/_trace.erb (1.4ms)
232
+ Rendered /Users/adamhunter/.rvm/gems/ruby-1.9.3-p194@dossier2/gems/actionpack-3.2.11/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (1.3ms)
233
+ Rendered /Users/adamhunter/.rvm/gems/ruby-1.9.3-p194@dossier2/gems/actionpack-3.2.11/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (10.8ms)
234
+
235
+
236
+ Started GET "/employee_report_custom_controller" for 127.0.0.1 at 2013-02-05 09:04:26 -0500
237
+
238
+ LoadError (cannot load such file -- /Users/adamhunter/Studio/adamhunter/dossier/spec/support/reports/employee_report.rb):
239
+ app/controllers/site_controller.rb:1:in `<top (required)>'
240
+
241
+
242
+ Rendered /Users/adamhunter/.rvm/gems/ruby-1.9.3-p194@dossier2/gems/actionpack-3.2.11/lib/action_dispatch/middleware/templates/rescues/_trace.erb (1.1ms)
243
+ Rendered /Users/adamhunter/.rvm/gems/ruby-1.9.3-p194@dossier2/gems/actionpack-3.2.11/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (0.8ms)
244
+ Rendered /Users/adamhunter/.rvm/gems/ruby-1.9.3-p194@dossier2/gems/actionpack-3.2.11/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (7.4ms)
245
+
246
+
247
+ Started GET "/employee_report_custom_controller" for 127.0.0.1 at 2013-02-05 09:05:39 -0500
248
+ Processing by SiteController#report as HTML
249
+ EmployeeReport (0.3ms) SELECT * FROM employees WHERE 1=1
250
+ ORDER BY name ASC
251
+ Rendered /Users/adamhunter/Studio/adamhunter/dossier/app/views/dossier/reports/show.html.haml within layouts/application (12.0ms)
252
+ Completed 500 Internal Server Error in 23ms
253
+
254
+ ActionController::RoutingError (No route matches {:controller=>"dossier/reports", :action=>"show", :format=>"csv", :options=>nil}):
255
+ app/controllers/site_controller.rb:10:in `report'
256
+
257
+
258
+ Rendered /Users/adamhunter/.rvm/gems/ruby-1.9.3-p194@dossier2/gems/actionpack-3.2.11/lib/action_dispatch/middleware/templates/rescues/routing_error.erb within rescues/layout (0.5ms)
259
+
260
+
261
+ Started GET "/employee_report_custom_controller" for 127.0.0.1 at 2013-02-05 09:06:14 -0500
262
+ Processing by SiteController#report as HTML
263
+ EmployeeReport (0.3ms) SELECT * FROM employees WHERE 1=1
264
+ ORDER BY name ASC
265
+ Rendered /Users/adamhunter/Studio/adamhunter/dossier/app/views/dossier/reports/show.html.haml within layouts/application (4.7ms)
266
+ Compiled application.css (0ms) (pid 28859)
267
+ Compiled jquery.js (23ms) (pid 28859)
268
+ Compiled jquery_ujs.js (0ms) (pid 28859)
269
+ Compiled application.js (48ms) (pid 28859)
270
+ Completed 200 OK in 112ms (Views: 111.2ms | ActiveRecord: 0.3ms)
271
+
272
+
273
+ Started GET "/assets/application.css?body=1" for 127.0.0.1 at 2013-02-05 09:06:15 -0500
274
+ Served asset /application.css - 200 OK (4ms)
275
+
276
+
277
+ Started GET "/assets/application.js?body=1" for 127.0.0.1 at 2013-02-05 09:06:15 -0500
278
+ Served asset /application.js - 200 OK (5ms)
279
+
280
+
281
+ Started GET "/assets/jquery_ujs.js?body=1" for 127.0.0.1 at 2013-02-05 09:06:15 -0500
282
+ Served asset /jquery_ujs.js - 200 OK (3ms)
32
283
  Connecting to database specified by database.yml
33
284
  Connecting to database specified by database.yml
285
+
286
+
287
+ Started GET "/assets/jquery.js?body=1" for 127.0.0.1 at 2013-02-05 09:06:15 -0500
288
+ Served asset /jquery.js - 200 OK (3ms)
289
+
290
+
291
+ Started GET "/reports/employee.csv" for 127.0.0.1 at 2013-02-05 09:06:20 -0500
292
+ Processing by Dossier::ReportsController#show as CSV
293
+ Parameters: {"report"=>"employee"}
294
+ Completed 500 Internal Server Error in 1ms
295
+
296
+ NameError (uninitialized constant EmployeeReport):
297
+ activesupport (3.2.11) lib/active_support/inflector/methods.rb:230:in `block in constantize'
298
+ activesupport (3.2.11) lib/active_support/inflector/methods.rb:229:in `each'
299
+ activesupport (3.2.11) lib/active_support/inflector/methods.rb:229:in `constantize'
300
+ activesupport (3.2.11) lib/active_support/core_ext/string/inflections.rb:54:in `constantize'
301
+ /Users/adamhunter/Studio/adamhunter/dossier/lib/dossier.rb:26:in `name_to_class'
302
+ /Users/adamhunter/Studio/adamhunter/dossier/app/controllers/dossier/reports_controller.rb:35:in `report_class'
303
+ /Users/adamhunter/Studio/adamhunter/dossier/app/controllers/dossier/reports_controller.rb:4:in `show'
304
+ actionpack (3.2.11) lib/action_controller/metal/implicit_render.rb:4:in `send_action'
305
+ actionpack (3.2.11) lib/abstract_controller/base.rb:167:in `process_action'
306
+ actionpack (3.2.11) lib/action_controller/metal/rendering.rb:10:in `process_action'
307
+ actionpack (3.2.11) lib/abstract_controller/callbacks.rb:18:in `block in process_action'
308
+ activesupport (3.2.11) lib/active_support/callbacks.rb:414:in `_run__3560204119445928208__process_action__2105358548339878917__callbacks'
309
+ activesupport (3.2.11) lib/active_support/callbacks.rb:405:in `__run_callback'
310
+ activesupport (3.2.11) lib/active_support/callbacks.rb:385:in `_run_process_action_callbacks'
311
+ activesupport (3.2.11) lib/active_support/callbacks.rb:81:in `run_callbacks'
312
+ actionpack (3.2.11) lib/abstract_controller/callbacks.rb:17:in `process_action'
313
+ actionpack (3.2.11) lib/action_controller/metal/rescue.rb:29:in `process_action'
314
+ actionpack (3.2.11) lib/action_controller/metal/instrumentation.rb:30:in `block in process_action'
315
+ activesupport (3.2.11) lib/active_support/notifications.rb:123:in `block in instrument'
316
+ activesupport (3.2.11) lib/active_support/notifications/instrumenter.rb:20:in `instrument'
317
+ activesupport (3.2.11) lib/active_support/notifications.rb:123:in `instrument'
318
+ actionpack (3.2.11) lib/action_controller/metal/instrumentation.rb:29:in `process_action'
319
+ actionpack (3.2.11) lib/action_controller/metal/params_wrapper.rb:207:in `process_action'
320
+ activerecord (3.2.11) lib/active_record/railties/controller_runtime.rb:18:in `process_action'
321
+ actionpack (3.2.11) lib/abstract_controller/base.rb:121:in `process'
322
+ actionpack (3.2.11) lib/abstract_controller/rendering.rb:45:in `process'
323
+ actionpack (3.2.11) lib/action_controller/metal.rb:203:in `dispatch'
324
+ actionpack (3.2.11) lib/action_controller/metal/rack_delegation.rb:14:in `dispatch'
325
+ actionpack (3.2.11) lib/action_controller/metal.rb:246:in `block in action'
326
+ actionpack (3.2.11) lib/action_dispatch/routing/route_set.rb:73:in `call'
327
+ actionpack (3.2.11) lib/action_dispatch/routing/route_set.rb:73:in `dispatch'
328
+ actionpack (3.2.11) lib/action_dispatch/routing/route_set.rb:36:in `call'
329
+ journey (1.0.4) lib/journey/router.rb:68:in `block in call'
330
+ journey (1.0.4) lib/journey/router.rb:56:in `each'
331
+ journey (1.0.4) lib/journey/router.rb:56:in `call'
332
+ actionpack (3.2.11) lib/action_dispatch/routing/route_set.rb:601:in `call'
333
+ actionpack (3.2.11) lib/action_dispatch/middleware/best_standards_support.rb:17:in `call'
334
+ rack (1.4.4) lib/rack/etag.rb:23:in `call'
335
+ rack (1.4.4) lib/rack/conditionalget.rb:25:in `call'
336
+ actionpack (3.2.11) lib/action_dispatch/middleware/head.rb:14:in `call'
337
+ actionpack (3.2.11) lib/action_dispatch/middleware/params_parser.rb:21:in `call'
338
+ actionpack (3.2.11) lib/action_dispatch/middleware/flash.rb:242:in `call'
339
+ rack (1.4.4) lib/rack/session/abstract/id.rb:210:in `context'
340
+ rack (1.4.4) lib/rack/session/abstract/id.rb:205:in `call'
341
+ actionpack (3.2.11) lib/action_dispatch/middleware/cookies.rb:341:in `call'
342
+ activerecord (3.2.11) lib/active_record/query_cache.rb:64:in `call'
343
+ activerecord (3.2.11) lib/active_record/connection_adapters/abstract/connection_pool.rb:479:in `call'
344
+ actionpack (3.2.11) lib/action_dispatch/middleware/callbacks.rb:28:in `block in call'
345
+ activesupport (3.2.11) lib/active_support/callbacks.rb:405:in `_run__3036648868073490833__call__700523775367203622__callbacks'
346
+ activesupport (3.2.11) lib/active_support/callbacks.rb:405:in `__run_callback'
347
+ activesupport (3.2.11) lib/active_support/callbacks.rb:385:in `_run_call_callbacks'
348
+ activesupport (3.2.11) lib/active_support/callbacks.rb:81:in `run_callbacks'
349
+ actionpack (3.2.11) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
350
+ actionpack (3.2.11) lib/action_dispatch/middleware/reloader.rb:65:in `call'
351
+ actionpack (3.2.11) lib/action_dispatch/middleware/remote_ip.rb:31:in `call'
352
+ actionpack (3.2.11) lib/action_dispatch/middleware/debug_exceptions.rb:16:in `call'
353
+ actionpack (3.2.11) lib/action_dispatch/middleware/show_exceptions.rb:56:in `call'
354
+ railties (3.2.11) lib/rails/rack/logger.rb:32:in `call_app'
355
+ railties (3.2.11) lib/rails/rack/logger.rb:16:in `block in call'
356
+ activesupport (3.2.11) lib/active_support/tagged_logging.rb:22:in `tagged'
357
+ railties (3.2.11) lib/rails/rack/logger.rb:16:in `call'
358
+ actionpack (3.2.11) lib/action_dispatch/middleware/request_id.rb:22:in `call'
359
+ rack (1.4.4) lib/rack/methodoverride.rb:21:in `call'
360
+ rack (1.4.4) lib/rack/runtime.rb:17:in `call'
361
+ activesupport (3.2.11) lib/active_support/cache/strategy/local_cache.rb:72:in `call'
362
+ rack (1.4.4) lib/rack/lock.rb:15:in `call'
363
+ actionpack (3.2.11) lib/action_dispatch/middleware/static.rb:62:in `call'
364
+ railties (3.2.11) lib/rails/engine.rb:479:in `call'
365
+ railties (3.2.11) lib/rails/application.rb:223:in `call'
366
+ railties (3.2.11) lib/rails/railtie/configurable.rb:30:in `method_missing'
367
+ passenger (3.0.14) lib/phusion_passenger/rack/request_handler.rb:96:in `process_request'
368
+ passenger (3.0.14) lib/phusion_passenger/abstract_request_handler.rb:516:in `accept_and_process_next_request'
369
+ passenger (3.0.14) lib/phusion_passenger/abstract_request_handler.rb:274:in `main_loop'
370
+ passenger (3.0.14) lib/phusion_passenger/rack/application_spawner.rb:206:in `start_request_handler'
371
+ passenger (3.0.14) lib/phusion_passenger/rack/application_spawner.rb:171:in `block in handle_spawn_application'
372
+ passenger (3.0.14) lib/phusion_passenger/utils.rb:470:in `safe_fork'
373
+ passenger (3.0.14) lib/phusion_passenger/rack/application_spawner.rb:166:in `handle_spawn_application'
374
+ passenger (3.0.14) lib/phusion_passenger/abstract_server.rb:357:in `server_main_loop'
375
+ passenger (3.0.14) lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously'
376
+ passenger (3.0.14) lib/phusion_passenger/abstract_server.rb:180:in `start'
377
+ passenger (3.0.14) lib/phusion_passenger/rack/application_spawner.rb:129:in `start'
378
+ passenger (3.0.14) lib/phusion_passenger/spawn_manager.rb:253:in `block (2 levels) in spawn_rack_application'
379
+ passenger (3.0.14) lib/phusion_passenger/abstract_server_collection.rb:132:in `lookup_or_add'
380
+ passenger (3.0.14) lib/phusion_passenger/spawn_manager.rb:246:in `block in spawn_rack_application'
381
+ passenger (3.0.14) lib/phusion_passenger/abstract_server_collection.rb:82:in `block in synchronize'
382
+ <internal:prelude>:10:in `synchronize'
383
+ passenger (3.0.14) lib/phusion_passenger/abstract_server_collection.rb:79:in `synchronize'
384
+ passenger (3.0.14) lib/phusion_passenger/spawn_manager.rb:244:in `spawn_rack_application'
385
+ passenger (3.0.14) lib/phusion_passenger/spawn_manager.rb:137:in `spawn_application'
386
+ passenger (3.0.14) lib/phusion_passenger/spawn_manager.rb:275:in `handle_spawn_application'
387
+ passenger (3.0.14) lib/phusion_passenger/abstract_server.rb:357:in `server_main_loop'
388
+ passenger (3.0.14) lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously'
389
+ passenger (3.0.14) helper-scripts/passenger-spawn-server:99:in `<main>'
390
+
391
+
392
+ Rendered /Users/adamhunter/.rvm/gems/ruby-1.9.3-p194@dossier2/gems/actionpack-3.2.11/lib/action_dispatch/middleware/templates/rescues/_trace.erb (1.1ms)
393
+ Rendered /Users/adamhunter/.rvm/gems/ruby-1.9.3-p194@dossier2/gems/actionpack-3.2.11/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (0.9ms)
394
+ Rendered /Users/adamhunter/.rvm/gems/ruby-1.9.3-p194@dossier2/gems/actionpack-3.2.11/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (7.5ms)
395
+
396
+
397
+ Started GET "/reports/employee.csv" for 127.0.0.1 at 2013-02-05 09:06:30 -0500
398
+ Processing by Dossier::ReportsController#show as CSV
399
+ Parameters: {"report"=>"employee"}
400
+ Completed 500 Internal Server Error in 1ms
401
+
402
+ NameError (uninitialized constant EmployeeReport):
403
+ activesupport (3.2.11) lib/active_support/inflector/methods.rb:230:in `block in constantize'
404
+ activesupport (3.2.11) lib/active_support/inflector/methods.rb:229:in `each'
405
+ activesupport (3.2.11) lib/active_support/inflector/methods.rb:229:in `constantize'
406
+ activesupport (3.2.11) lib/active_support/core_ext/string/inflections.rb:54:in `constantize'
407
+ /Users/adamhunter/Studio/adamhunter/dossier/lib/dossier.rb:26:in `name_to_class'
408
+ /Users/adamhunter/Studio/adamhunter/dossier/app/controllers/dossier/reports_controller.rb:35:in `report_class'
409
+ /Users/adamhunter/Studio/adamhunter/dossier/app/controllers/dossier/reports_controller.rb:4:in `show'
410
+ actionpack (3.2.11) lib/action_controller/metal/implicit_render.rb:4:in `send_action'
411
+ actionpack (3.2.11) lib/abstract_controller/base.rb:167:in `process_action'
412
+ actionpack (3.2.11) lib/action_controller/metal/rendering.rb:10:in `process_action'
413
+ actionpack (3.2.11) lib/abstract_controller/callbacks.rb:18:in `block in process_action'
414
+ activesupport (3.2.11) lib/active_support/callbacks.rb:414:in `_run__3560204119445928208__process_action__2105358548339878917__callbacks'
415
+ activesupport (3.2.11) lib/active_support/callbacks.rb:405:in `__run_callback'
416
+ activesupport (3.2.11) lib/active_support/callbacks.rb:385:in `_run_process_action_callbacks'
417
+ activesupport (3.2.11) lib/active_support/callbacks.rb:81:in `run_callbacks'
418
+ actionpack (3.2.11) lib/abstract_controller/callbacks.rb:17:in `process_action'
419
+ actionpack (3.2.11) lib/action_controller/metal/rescue.rb:29:in `process_action'
420
+ actionpack (3.2.11) lib/action_controller/metal/instrumentation.rb:30:in `block in process_action'
421
+ activesupport (3.2.11) lib/active_support/notifications.rb:123:in `block in instrument'
422
+ activesupport (3.2.11) lib/active_support/notifications/instrumenter.rb:20:in `instrument'
423
+ activesupport (3.2.11) lib/active_support/notifications.rb:123:in `instrument'
424
+ actionpack (3.2.11) lib/action_controller/metal/instrumentation.rb:29:in `process_action'
425
+ actionpack (3.2.11) lib/action_controller/metal/params_wrapper.rb:207:in `process_action'
426
+ activerecord (3.2.11) lib/active_record/railties/controller_runtime.rb:18:in `process_action'
427
+ actionpack (3.2.11) lib/abstract_controller/base.rb:121:in `process'
428
+ actionpack (3.2.11) lib/abstract_controller/rendering.rb:45:in `process'
429
+ actionpack (3.2.11) lib/action_controller/metal.rb:203:in `dispatch'
430
+ actionpack (3.2.11) lib/action_controller/metal/rack_delegation.rb:14:in `dispatch'
431
+ actionpack (3.2.11) lib/action_controller/metal.rb:246:in `block in action'
432
+ actionpack (3.2.11) lib/action_dispatch/routing/route_set.rb:73:in `call'
433
+ actionpack (3.2.11) lib/action_dispatch/routing/route_set.rb:73:in `dispatch'
434
+ actionpack (3.2.11) lib/action_dispatch/routing/route_set.rb:36:in `call'
435
+ journey (1.0.4) lib/journey/router.rb:68:in `block in call'
436
+ journey (1.0.4) lib/journey/router.rb:56:in `each'
437
+ journey (1.0.4) lib/journey/router.rb:56:in `call'
438
+ actionpack (3.2.11) lib/action_dispatch/routing/route_set.rb:601:in `call'
439
+ actionpack (3.2.11) lib/action_dispatch/middleware/best_standards_support.rb:17:in `call'
440
+ rack (1.4.4) lib/rack/etag.rb:23:in `call'
441
+ rack (1.4.4) lib/rack/conditionalget.rb:25:in `call'
442
+ actionpack (3.2.11) lib/action_dispatch/middleware/head.rb:14:in `call'
443
+ actionpack (3.2.11) lib/action_dispatch/middleware/params_parser.rb:21:in `call'
444
+ actionpack (3.2.11) lib/action_dispatch/middleware/flash.rb:242:in `call'
445
+ rack (1.4.4) lib/rack/session/abstract/id.rb:210:in `context'
446
+ rack (1.4.4) lib/rack/session/abstract/id.rb:205:in `call'
447
+ actionpack (3.2.11) lib/action_dispatch/middleware/cookies.rb:341:in `call'
448
+ activerecord (3.2.11) lib/active_record/query_cache.rb:64:in `call'
449
+ activerecord (3.2.11) lib/active_record/connection_adapters/abstract/connection_pool.rb:479:in `call'
450
+ actionpack (3.2.11) lib/action_dispatch/middleware/callbacks.rb:28:in `block in call'
451
+ activesupport (3.2.11) lib/active_support/callbacks.rb:405:in `_run__3036648868073490833__call__700523775367203622__callbacks'
452
+ activesupport (3.2.11) lib/active_support/callbacks.rb:405:in `__run_callback'
453
+ activesupport (3.2.11) lib/active_support/callbacks.rb:385:in `_run_call_callbacks'
454
+ activesupport (3.2.11) lib/active_support/callbacks.rb:81:in `run_callbacks'
455
+ actionpack (3.2.11) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
456
+ actionpack (3.2.11) lib/action_dispatch/middleware/reloader.rb:65:in `call'
457
+ actionpack (3.2.11) lib/action_dispatch/middleware/remote_ip.rb:31:in `call'
458
+ actionpack (3.2.11) lib/action_dispatch/middleware/debug_exceptions.rb:16:in `call'
459
+ actionpack (3.2.11) lib/action_dispatch/middleware/show_exceptions.rb:56:in `call'
460
+ railties (3.2.11) lib/rails/rack/logger.rb:32:in `call_app'
461
+ railties (3.2.11) lib/rails/rack/logger.rb:16:in `block in call'
462
+ activesupport (3.2.11) lib/active_support/tagged_logging.rb:22:in `tagged'
463
+ railties (3.2.11) lib/rails/rack/logger.rb:16:in `call'
464
+ actionpack (3.2.11) lib/action_dispatch/middleware/request_id.rb:22:in `call'
465
+ rack (1.4.4) lib/rack/methodoverride.rb:21:in `call'
466
+ rack (1.4.4) lib/rack/runtime.rb:17:in `call'
467
+ activesupport (3.2.11) lib/active_support/cache/strategy/local_cache.rb:72:in `call'
468
+ rack (1.4.4) lib/rack/lock.rb:15:in `call'
469
+ actionpack (3.2.11) lib/action_dispatch/middleware/static.rb:62:in `call'
470
+ railties (3.2.11) lib/rails/engine.rb:479:in `call'
471
+ railties (3.2.11) lib/rails/application.rb:223:in `call'
472
+ railties (3.2.11) lib/rails/railtie/configurable.rb:30:in `method_missing'
473
+ passenger (3.0.14) lib/phusion_passenger/rack/request_handler.rb:96:in `process_request'
474
+ passenger (3.0.14) lib/phusion_passenger/abstract_request_handler.rb:516:in `accept_and_process_next_request'
475
+ passenger (3.0.14) lib/phusion_passenger/abstract_request_handler.rb:274:in `main_loop'
476
+ passenger (3.0.14) lib/phusion_passenger/rack/application_spawner.rb:206:in `start_request_handler'
477
+ passenger (3.0.14) lib/phusion_passenger/rack/application_spawner.rb:171:in `block in handle_spawn_application'
478
+ passenger (3.0.14) lib/phusion_passenger/utils.rb:470:in `safe_fork'
479
+ passenger (3.0.14) lib/phusion_passenger/rack/application_spawner.rb:166:in `handle_spawn_application'
480
+ passenger (3.0.14) lib/phusion_passenger/abstract_server.rb:357:in `server_main_loop'
481
+ passenger (3.0.14) lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously'
482
+ passenger (3.0.14) lib/phusion_passenger/abstract_server.rb:180:in `start'
483
+ passenger (3.0.14) lib/phusion_passenger/rack/application_spawner.rb:129:in `start'
484
+ passenger (3.0.14) lib/phusion_passenger/spawn_manager.rb:253:in `block (2 levels) in spawn_rack_application'
485
+ passenger (3.0.14) lib/phusion_passenger/abstract_server_collection.rb:132:in `lookup_or_add'
486
+ passenger (3.0.14) lib/phusion_passenger/spawn_manager.rb:246:in `block in spawn_rack_application'
487
+ passenger (3.0.14) lib/phusion_passenger/abstract_server_collection.rb:82:in `block in synchronize'
488
+ <internal:prelude>:10:in `synchronize'
489
+ passenger (3.0.14) lib/phusion_passenger/abstract_server_collection.rb:79:in `synchronize'
490
+ passenger (3.0.14) lib/phusion_passenger/spawn_manager.rb:244:in `spawn_rack_application'
491
+ passenger (3.0.14) lib/phusion_passenger/spawn_manager.rb:137:in `spawn_application'
492
+ passenger (3.0.14) lib/phusion_passenger/spawn_manager.rb:275:in `handle_spawn_application'
493
+ passenger (3.0.14) lib/phusion_passenger/abstract_server.rb:357:in `server_main_loop'
494
+ passenger (3.0.14) lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously'
495
+ passenger (3.0.14) helper-scripts/passenger-spawn-server:99:in `<main>'
496
+
497
+
498
+ Rendered /Users/adamhunter/.rvm/gems/ruby-1.9.3-p194@dossier2/gems/actionpack-3.2.11/lib/action_dispatch/middleware/templates/rescues/_trace.erb (1.2ms)
499
+ Rendered /Users/adamhunter/.rvm/gems/ruby-1.9.3-p194@dossier2/gems/actionpack-3.2.11/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (0.8ms)
500
+ Rendered /Users/adamhunter/.rvm/gems/ruby-1.9.3-p194@dossier2/gems/actionpack-3.2.11/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (7.6ms)
501
+
502
+
503
+ Started GET "/employee_report_custom_controller" for 127.0.0.1 at 2013-02-05 09:09:20 -0500
504
+ Processing by SiteController#report as HTML
505
+ Completed 500 Internal Server Error in 2ms
506
+
507
+ NameError (uninitialized constant SiteController::EmployeeReport):
508
+ app/controllers/site_controller.rb:7:in `report'
509
+
510
+
511
+ Rendered /Users/adamhunter/.rvm/gems/ruby-1.9.3-p194@dossier2/gems/actionpack-3.2.11/lib/action_dispatch/middleware/templates/rescues/_trace.erb (1.0ms)
512
+ Rendered /Users/adamhunter/.rvm/gems/ruby-1.9.3-p194@dossier2/gems/actionpack-3.2.11/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (0.8ms)
513
+ Rendered /Users/adamhunter/.rvm/gems/ruby-1.9.3-p194@dossier2/gems/actionpack-3.2.11/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (7.2ms)