Commit 77318a62659588fbfff83a2bec00bc7f96cca936
Exists in
master
and in
1 other branch
Merge pull request #768 from errbit/rails4
Rails 4
Showing
25 changed files
with
142 additions
and
148 deletions
Show diff stats
Gemfile
1 | 1 | source 'https://rubygems.org' |
2 | 2 | |
3 | -RAILS_VERSION = '~> 3.2.21' | |
3 | +RAILS_VERSION = '~> 4.0.12' | |
4 | 4 | |
5 | 5 | gem 'actionmailer', RAILS_VERSION |
6 | 6 | gem 'actionpack', RAILS_VERSION |
7 | 7 | gem 'railties', RAILS_VERSION |
8 | 8 | |
9 | -gem 'mongoid' | |
9 | +gem 'moped', '~> 2.0.2' | |
10 | +gem 'mongoid', '~> 4.0.0' | |
10 | 11 | |
11 | 12 | gem 'mongoid_rails_migrations' |
12 | 13 | gem 'devise' |
... | ... | @@ -16,7 +17,6 @@ gem 'rack-ssl', :require => 'rack/ssl' # force SSL |
16 | 17 | |
17 | 18 | gem 'useragent' |
18 | 19 | gem 'decent_exposure' |
19 | -gem 'strong_parameters' | |
20 | 20 | gem 'actionmailer_inline_css' |
21 | 21 | gem 'kaminari', '>= 0.14.1' |
22 | 22 | gem 'rack-ssl-enforcer', :require => false |
... | ... | @@ -113,5 +113,4 @@ group :assets do |
113 | 113 | gem 'jquery-rails', '~> 2.1.4' |
114 | 114 | gem 'pjax_rails' |
115 | 115 | gem 'underscore-rails' |
116 | - gem 'turbo-sprockets-rails3' | |
117 | 116 | end | ... | ... |
Gemfile.lock
1 | 1 | GEM |
2 | 2 | remote: https://rubygems.org/ |
3 | 3 | specs: |
4 | - actionmailer (3.2.21) | |
5 | - actionpack (= 3.2.21) | |
6 | - mail (~> 2.5.4) | |
4 | + actionmailer (4.0.12) | |
5 | + actionpack (= 4.0.12) | |
6 | + mail (~> 2.5, >= 2.5.4) | |
7 | 7 | actionmailer_inline_css (1.5.3) |
8 | 8 | actionmailer (>= 3.0.0) |
9 | 9 | nokogiri (>= 1.4.4) |
10 | 10 | premailer (>= 1.7.1) |
11 | - actionpack (3.2.21) | |
12 | - activemodel (= 3.2.21) | |
13 | - activesupport (= 3.2.21) | |
14 | - builder (~> 3.0.0) | |
11 | + actionpack (4.0.12) | |
12 | + activesupport (= 4.0.12) | |
13 | + builder (~> 3.1.0) | |
15 | 14 | erubis (~> 2.7.0) |
16 | - journey (~> 1.0.4) | |
17 | - rack (~> 1.4.5) | |
18 | - rack-cache (~> 1.2) | |
19 | - rack-test (~> 0.6.1) | |
20 | - sprockets (~> 2.2.1) | |
21 | - activemodel (3.2.21) | |
22 | - activesupport (= 3.2.21) | |
23 | - builder (~> 3.0.0) | |
24 | - activerecord (3.2.21) | |
25 | - activemodel (= 3.2.21) | |
26 | - activesupport (= 3.2.21) | |
27 | - arel (~> 3.0.2) | |
28 | - tzinfo (~> 0.3.29) | |
29 | - activeresource (3.2.21) | |
30 | - activemodel (= 3.2.21) | |
31 | - activesupport (= 3.2.21) | |
32 | - activesupport (3.2.21) | |
33 | - i18n (~> 0.6, >= 0.6.4) | |
34 | - multi_json (~> 1.0) | |
35 | - addressable (2.3.6) | |
15 | + rack (~> 1.5.2) | |
16 | + rack-test (~> 0.6.2) | |
17 | + activemodel (4.0.12) | |
18 | + activesupport (= 4.0.12) | |
19 | + builder (~> 3.1.0) | |
20 | + activerecord (4.0.12) | |
21 | + activemodel (= 4.0.12) | |
22 | + activerecord-deprecated_finders (~> 1.0.2) | |
23 | + activesupport (= 4.0.12) | |
24 | + arel (~> 4.0.0) | |
25 | + activerecord-deprecated_finders (1.0.3) | |
26 | + activeresource (4.0.0) | |
27 | + activemodel (~> 4.0) | |
28 | + activesupport (~> 4.0) | |
29 | + rails-observers (~> 0.1.1) | |
30 | + activesupport (4.0.12) | |
31 | + i18n (~> 0.6, >= 0.6.9) | |
32 | + minitest (~> 4.2) | |
33 | + multi_json (~> 1.3) | |
34 | + thread_safe (~> 0.1) | |
35 | + tzinfo (~> 0.3.37) | |
36 | + addressable (2.3.5) | |
36 | 37 | airbrake (3.1.14) |
37 | 38 | builder |
38 | 39 | json |
39 | - arel (3.0.3) | |
40 | - atomic (1.1.14) | |
40 | + arel (4.0.2) | |
41 | 41 | bcrypt-ruby (3.1.2) |
42 | 42 | better_errors (1.0.1) |
43 | 43 | coderay (>= 1.0.0) |
... | ... | @@ -51,7 +51,8 @@ GEM |
51 | 51 | multi_json (~> 1.3) |
52 | 52 | nokogiri (>= 1.5.2) |
53 | 53 | simple_oauth |
54 | - builder (3.0.4) | |
54 | + bson (2.3.0) | |
55 | + builder (3.1.4) | |
55 | 56 | callsite (0.0.11) |
56 | 57 | campy (1.0.0) |
57 | 58 | capistrano (2.15.5) |
... | ... | @@ -68,6 +69,7 @@ GEM |
68 | 69 | xpath (~> 2.0) |
69 | 70 | cliver (0.3.2) |
70 | 71 | coderay (1.0.9) |
72 | + connection_pool (2.1.0) | |
71 | 73 | coveralls (0.7.0) |
72 | 74 | multi_json (~> 1.3) |
73 | 75 | rest-client |
... | ... | @@ -164,7 +166,7 @@ GEM |
164 | 166 | jira-ruby (0.1.10) |
165 | 167 | activesupport |
166 | 168 | oauth |
167 | - journey (1.0.4) | |
169 | + railties | |
168 | 170 | jquery-rails (2.1.4) |
169 | 171 | railties (>= 3.0, < 5.0) |
170 | 172 | thor (>= 0.14, < 2.0) |
... | ... | @@ -182,9 +184,8 @@ GEM |
182 | 184 | lighthouse-api (2.0) |
183 | 185 | activeresource (>= 3.0.0) |
184 | 186 | activesupport (>= 3.0.0) |
185 | - mail (2.5.4) | |
186 | - mime-types (~> 1.16) | |
187 | - treetop (~> 1.4.8) | |
187 | + mail (2.6.3) | |
188 | + mime-types (>= 1.16, < 3) | |
188 | 189 | meta_request (0.2.8) |
189 | 190 | callsite |
190 | 191 | rack-contrib |
... | ... | @@ -192,11 +193,12 @@ GEM |
192 | 193 | method_source (0.8.2) |
193 | 194 | mime-types (1.25.1) |
194 | 195 | mini_portile (0.6.1) |
195 | - mongoid (3.1.5) | |
196 | - activemodel (~> 3.2) | |
197 | - moped (~> 1.4) | |
198 | - origin (~> 1.0) | |
199 | - tzinfo (~> 0.3.29) | |
196 | + minitest (4.7.5) | |
197 | + mongoid (4.0.0) | |
198 | + activemodel (~> 4.0) | |
199 | + moped (~> 2.0.0) | |
200 | + origin (~> 2.1) | |
201 | + tzinfo (>= 0.3.37) | |
200 | 202 | mongoid-rspec (1.9.0) |
201 | 203 | mongoid (>= 3.0.1) |
202 | 204 | rake |
... | ... | @@ -206,7 +208,10 @@ GEM |
206 | 208 | bundler (>= 1.0.0) |
207 | 209 | rails (>= 3.2.0) |
208 | 210 | railties (>= 3.2.0) |
209 | - moped (1.5.1) | |
211 | + moped (2.0.2) | |
212 | + bson (~> 2.2) | |
213 | + connection_pool (~> 2.0) | |
214 | + optionable (~> 0.2.0) | |
210 | 215 | multi_json (1.10.1) |
211 | 216 | multi_xml (0.5.5) |
212 | 217 | multipart-post (1.2.0) |
... | ... | @@ -239,7 +244,8 @@ GEM |
239 | 244 | omniauth-oauth2 (1.1.1) |
240 | 245 | oauth2 (~> 0.8.0) |
241 | 246 | omniauth (~> 1.0) |
242 | - origin (1.1.0) | |
247 | + optionable (0.2.0) | |
248 | + origin (2.1.1) | |
243 | 249 | orm_adapter (0.4.0) |
244 | 250 | oruen_redmine_client (0.0.1) |
245 | 251 | activeresource (>= 2.3.0) |
... | ... | @@ -260,7 +266,6 @@ GEM |
260 | 266 | cliver (~> 0.3.1) |
261 | 267 | multi_json (~> 1.0) |
262 | 268 | websocket-driver (>= 0.2.0) |
263 | - polyglot (0.3.5) | |
264 | 269 | premailer (1.7.3) |
265 | 270 | css_parser (>= 1.1.9) |
266 | 271 | htmlentities (>= 4.0.0) |
... | ... | @@ -274,36 +279,39 @@ GEM |
274 | 279 | rack (>= 1.1, < 2.0) |
275 | 280 | quiet_assets (1.0.2) |
276 | 281 | railties (>= 3.1, < 5.0) |
277 | - rack (1.4.5) | |
278 | - rack-cache (1.2) | |
279 | - rack (>= 0.4) | |
282 | + rack (1.5.2) | |
280 | 283 | rack-contrib (1.1.0) |
281 | 284 | rack (>= 0.9.1) |
282 | - rack-ssl (1.3.4) | |
285 | + rack-ssl (1.4.0) | |
283 | 286 | rack |
284 | 287 | rack-ssl-enforcer (0.2.6) |
285 | 288 | rack-test (0.6.2) |
286 | 289 | rack (>= 1.0) |
287 | - rails (3.2.21) | |
288 | - actionmailer (= 3.2.21) | |
289 | - actionpack (= 3.2.21) | |
290 | - activerecord (= 3.2.21) | |
291 | - activeresource (= 3.2.21) | |
292 | - activesupport (= 3.2.21) | |
293 | - bundler (~> 1.0) | |
294 | - rails_autolink (1.1.4) | |
290 | + rails (4.0.12) | |
291 | + actionmailer (= 4.0.12) | |
292 | + actionpack (= 4.0.12) | |
293 | + activerecord (= 4.0.12) | |
294 | + activesupport (= 4.0.12) | |
295 | + bundler (>= 1.3.0, < 2.0) | |
296 | + railties (= 4.0.12) | |
297 | + sprockets-rails (~> 2.0) | |
298 | + rails-observers (0.1.2) | |
299 | + activemodel (~> 4.0) | |
300 | + rails_12factor (0.0.3) | |
301 | + rails_serve_static_assets | |
302 | + rails_stdout_logging | |
303 | + rails_autolink (1.1.6) | |
295 | 304 | rails (> 3.1) |
296 | - railties (= 3.2.21) | |
297 | - railties (3.2.21) | |
298 | - actionpack (= 3.2.21) | |
299 | - activesupport (= 3.2.21) | |
300 | - rack-ssl (~> 1.3.2) | |
305 | + rails_serve_static_assets (0.0.2) | |
306 | + rails_stdout_logging (0.0.3) | |
307 | + railties (4.0.12) | |
308 | + actionpack (= 4.0.12) | |
309 | + activesupport (= 4.0.12) | |
301 | 310 | rake (>= 0.8.7) |
302 | - rdoc (~> 3.4) | |
303 | - thor (>= 0.14.6, < 2.0) | |
311 | + thor (>= 0.18.1, < 2.0) | |
304 | 312 | raindrops (0.12.0) |
305 | - rake (10.3.2) | |
306 | - rdoc (3.12.2) | |
313 | + rake (10.4.2) | |
314 | + rdoc (4.1.2) | |
307 | 315 | json (~> 1.4) |
308 | 316 | ref (1.0.5) |
309 | 317 | request_store (1.0.6) |
... | ... | @@ -341,33 +349,26 @@ GEM |
341 | 349 | simplecov-html (~> 0.7.1) |
342 | 350 | simplecov-html (0.7.1) |
343 | 351 | slop (3.4.6) |
344 | - sprockets (2.2.2) | |
352 | + sprockets (2.12.3) | |
345 | 353 | hike (~> 1.2) |
346 | 354 | multi_json (~> 1.0) |
347 | 355 | rack (~> 1.0) |
348 | 356 | tilt (~> 1.1, != 1.3.0) |
349 | - strong_parameters (0.2.1) | |
350 | - actionpack (~> 3.0) | |
351 | - activemodel (~> 3.0) | |
352 | - railties (~> 3.0) | |
357 | + sprockets-rails (2.2.2) | |
358 | + actionpack (>= 3.0) | |
359 | + activesupport (>= 3.0) | |
360 | + sprockets (>= 2.8, < 4.0) | |
353 | 361 | term-ansicolor (1.2.2) |
354 | 362 | tins (~> 0.8) |
355 | 363 | therubyracer (0.12.1) |
356 | 364 | libv8 (~> 3.16.14.0) |
357 | 365 | ref |
358 | 366 | thor (0.19.1) |
359 | - thread_safe (0.1.3) | |
360 | - atomic | |
367 | + thread_safe (0.3.4) | |
361 | 368 | tilt (1.4.1) |
362 | 369 | timecop (0.6.3) |
363 | 370 | tins (0.12.0) |
364 | - treetop (1.4.15) | |
365 | - polyglot | |
366 | - polyglot (>= 0.3.1) | |
367 | - turbo-sprockets-rails3 (0.3.10) | |
368 | - railties (> 3.2.8, < 4.0.0) | |
369 | - sprockets (>= 2.0.0) | |
370 | - tzinfo (0.3.41) | |
371 | + tzinfo (0.3.42) | |
371 | 372 | uglifier (2.2.1) |
372 | 373 | execjs (>= 0.3.0) |
373 | 374 | json (>= 1.8.0) |
... | ... | @@ -392,9 +393,9 @@ PLATFORMS |
392 | 393 | ruby |
393 | 394 | |
394 | 395 | DEPENDENCIES |
395 | - actionmailer (~> 3.2.21) | |
396 | + actionmailer (~> 4.0.12) | |
396 | 397 | actionmailer_inline_css |
397 | - actionpack (~> 3.2.21) | |
398 | + actionpack (~> 4.0.12) | |
398 | 399 | airbrake |
399 | 400 | better_errors |
400 | 401 | binding_of_caller |
... | ... | @@ -431,9 +432,10 @@ DEPENDENCIES |
431 | 432 | kaminari (>= 0.14.1) |
432 | 433 | launchy |
433 | 434 | meta_request |
434 | - mongoid | |
435 | + mongoid (~> 4.0.0) | |
435 | 436 | mongoid-rspec |
436 | 437 | mongoid_rails_migrations |
438 | + moped (~> 2.0.2) | |
437 | 439 | omniauth-github |
438 | 440 | pjax_rails |
439 | 441 | poltergeist |
... | ... | @@ -443,14 +445,12 @@ DEPENDENCIES |
443 | 445 | rack-ssl |
444 | 446 | rack-ssl-enforcer |
445 | 447 | rails_autolink |
446 | - railties (~> 3.2.21) | |
448 | + railties (~> 4.0.12) | |
447 | 449 | ri_cal |
448 | 450 | rspec-rails |
449 | 451 | rushover |
450 | - strong_parameters | |
451 | 452 | therubyracer |
452 | 453 | timecop |
453 | - turbo-sprockets-rails3 | |
454 | 454 | uglifier (>= 1.0.3) |
455 | 455 | underscore-rails |
456 | 456 | unicorn | ... | ... |
app/controllers/api/v1/problems_controller.rb
1 | 1 | class Api::V1::ProblemsController < ApplicationController |
2 | 2 | respond_to :json, :xml |
3 | - FIELDS = %w{app_id app_name environment message where first_notice_at last_notice_at resolved resolved_at notices_count} | |
3 | + FIELDS = %w{_id app_id app_name environment message where first_notice_at last_notice_at resolved resolved_at notices_count} | |
4 | 4 | |
5 | 5 | def show |
6 | 6 | result = benchmark("[api/v1/problems_controller/show] query time") do | ... | ... |
app/controllers/application_controller.rb
... | ... | @@ -15,9 +15,8 @@ class ApplicationController < ActionController::Base |
15 | 15 | rescue_from ActionController::RedirectBackError, :with => :redirect_to_root |
16 | 16 | |
17 | 17 | class StrongParametersWithEagerAttributesStrategy < DecentExposure::StrongParametersStrategy |
18 | - def attributes | |
19 | - super | |
20 | - @attributes ||= params[inflector.param_key] || {} | |
18 | + def assign_attributes? | |
19 | + singular? && !get? && !delete? && (params[options[:param_key] || inflector.param_key]).present? | |
21 | 20 | end |
22 | 21 | end |
23 | 22 | ... | ... |
app/controllers/apps_controller.rb
... | ... | @@ -15,7 +15,8 @@ class AppsController < ApplicationController |
15 | 15 | app_scope.all.sort.to_a |
16 | 16 | } |
17 | 17 | |
18 | - expose(:app, :ancestor => :app_scope) | |
18 | + expose(:app, ancestor: :app_scope, attributes: :app_params) | |
19 | + | |
19 | 20 | expose(:app_decorate) do |
20 | 21 | AppDecorator.new(app) |
21 | 22 | end |
... | ... | @@ -23,6 +24,7 @@ class AppsController < ApplicationController |
23 | 24 | expose(:all_errs) { |
24 | 25 | !!params[:all_errs] |
25 | 26 | } |
27 | + | |
26 | 28 | expose(:problems) { |
27 | 29 | if request.format == :atom |
28 | 30 | app.problems.unresolved.ordered |
... | ... | @@ -140,4 +142,9 @@ class AppsController < ApplicationController |
140 | 142 | end |
141 | 143 | end |
142 | 144 | end |
145 | + | |
146 | + private | |
147 | + def app_params | |
148 | + params.require(:app).permit! | |
149 | + end | |
143 | 150 | end | ... | ... |
app/controllers/comments_controller.rb
... | ... | @@ -3,7 +3,7 @@ class CommentsController < ApplicationController |
3 | 3 | before_filter :find_problem |
4 | 4 | |
5 | 5 | def create |
6 | - @comment = Comment.new(params[:comment].merge(:user_id => current_user.id)) | |
6 | + @comment = Comment.new(comment_params.merge(:user_id => current_user.id)) | |
7 | 7 | if @comment.valid? |
8 | 8 | @problem.comments << @comment |
9 | 9 | @problem.save |
... | ... | @@ -36,5 +36,8 @@ class CommentsController < ApplicationController |
36 | 36 | def find_problem |
37 | 37 | @problem = @app.problems.find(params[:problem_id]) |
38 | 38 | end |
39 | -end | |
40 | 39 | |
40 | + def comment_params | |
41 | + params.require(:comment).permit! | |
42 | + end | |
43 | +end | ... | ... |
app/controllers/problems_controller.rb
app/interactors/problem_updater_cache.rb
app/models/app.rb
... | ... | @@ -21,7 +21,7 @@ class App |
21 | 21 | field :_id, |
22 | 22 | type: String, |
23 | 23 | pre_processed: true, |
24 | - default: ->{ Moped::BSON::ObjectId.new.to_s } | |
24 | + default: ->{ BSON::ObjectId.new.to_s } | |
25 | 25 | |
26 | 26 | |
27 | 27 | embeds_many :watchers |
... | ... | @@ -172,7 +172,7 @@ class App |
172 | 172 | end |
173 | 173 | |
174 | 174 | def regenerate_api_key! |
175 | - set(:api_key, SecureRandom.hex) | |
175 | + update_attribute(:api_key, SecureRandom.hex) | |
176 | 176 | end |
177 | 177 | |
178 | 178 | ## | ... | ... |
app/models/backtrace_line.rb
... | ... | @@ -10,7 +10,7 @@ class BacktraceLine |
10 | 10 | |
11 | 11 | embedded_in :backtrace |
12 | 12 | |
13 | - scope :in_app, where(:file => IN_APP_PATH) | |
13 | + scope :in_app, ->{ where(:file => IN_APP_PATH) } | |
14 | 14 | |
15 | 15 | delegate :app, :to => :backtrace |
16 | 16 | |
... | ... | @@ -40,4 +40,3 @@ class BacktraceLine |
40 | 40 | end |
41 | 41 | |
42 | 42 | end |
43 | - | ... | ... |
app/models/comment.rb
... | ... | @@ -30,11 +30,11 @@ class Comment |
30 | 30 | |
31 | 31 | protected |
32 | 32 | def increase_counter_cache |
33 | - err.inc(:comments_count, 1) | |
33 | + err.inc(comments_count: 1) | |
34 | 34 | end |
35 | 35 | |
36 | 36 | def decrease_counter_cache |
37 | - err.inc(:comments_count, -1) if err | |
37 | + err.inc(comments_count: -1) if err | |
38 | 38 | end |
39 | 39 | |
40 | 40 | end | ... | ... |
app/models/notice.rb
... | ... | @@ -28,9 +28,13 @@ class Notice |
28 | 28 | |
29 | 29 | validates_presence_of :backtrace, :server_environment, :notifier |
30 | 30 | |
31 | - scope :ordered, order_by(:created_at.asc) | |
32 | - scope :reverse_ordered, order_by(:created_at.desc) | |
33 | - scope :for_errs, lambda {|errs| where(:err_id.in => errs.all.map(&:id))} | |
31 | + scope :ordered, ->{ order_by(:created_at.asc) } | |
32 | + scope :reverse_ordered, ->{ order_by(:created_at.desc) } | |
33 | + scope :for_errs, Proc.new { |errs| | |
34 | + if (ids = errs.all.map(&:id)) && ids.present? | |
35 | + where(:err_id.in => ids) | |
36 | + end | |
37 | + } | |
34 | 38 | |
35 | 39 | def user_agent |
36 | 40 | agent_string = env_vars['HTTP_USER_AGENT'] |
... | ... | @@ -139,7 +143,7 @@ class Notice |
139 | 143 | protected |
140 | 144 | |
141 | 145 | def decrease_counter_cache |
142 | - problem.inc(:notices_count, -1) if err | |
146 | + problem.inc(notices_count: -1) if err | |
143 | 147 | end |
144 | 148 | |
145 | 149 | def remove_cached_attributes_from_problem |
... | ... | @@ -162,8 +166,8 @@ class Notice |
162 | 166 | |
163 | 167 | |
164 | 168 | def sanitize_hash(h) |
165 | - h.recurse do | |
166 | - |h| h.inject({}) do |h,(k,v)| | |
169 | + h.recurse do |h| | |
170 | + h.inject({}) do |h,(k,v)| | |
167 | 171 | if k.is_a?(String) |
168 | 172 | h[k.gsub(/\./,'.').gsub(/^\$/,'$')] = v |
169 | 173 | else |
... | ... | @@ -195,4 +199,3 @@ class Notice |
195 | 199 | end |
196 | 200 | |
197 | 201 | end |
198 | - | ... | ... |
app/models/problem.rb
... | ... | @@ -43,9 +43,9 @@ class Problem |
43 | 43 | |
44 | 44 | before_create :cache_app_attributes |
45 | 45 | |
46 | - scope :resolved, where(:resolved => true) | |
47 | - scope :unresolved, where(:resolved => false) | |
48 | - scope :ordered, order_by(:last_notice_at.desc) | |
46 | + scope :resolved, ->{ where(:resolved => true) } | |
47 | + scope :unresolved, ->{ where(:resolved => false) } | |
48 | + scope :ordered, ->{ order_by(:last_notice_at.desc) } | |
49 | 49 | scope :for_apps, lambda {|apps| where(:app_id.in => apps.all.map(&:id))} |
50 | 50 | |
51 | 51 | validates_presence_of :last_notice_at, :first_notice_at |
... | ... | @@ -184,4 +184,3 @@ class Problem |
184 | 184 | Digest::MD5.hexdigest(value.to_s) |
185 | 185 | end |
186 | 186 | end |
187 | - | ... | ... |
config/application.rb
... | ... | @@ -47,9 +47,6 @@ module Errbit |
47 | 47 | g.fixture_replacement :fabrication |
48 | 48 | end |
49 | 49 | |
50 | - # Enable the mongoid identity map for performance | |
51 | - Mongoid.identity_map_enabled = true | |
52 | - | |
53 | 50 | # IssueTracker subclasses use inheritance, so preloading models provides querying consistency in dev mode. |
54 | 51 | config.mongoid.preload_models = true |
55 | 52 | |
... | ... | @@ -73,4 +70,3 @@ module Errbit |
73 | 70 | config.assets.version = '1.0' |
74 | 71 | end |
75 | 72 | end |
76 | - | ... | ... |
config/environments/development.rb
... | ... | @@ -6,8 +6,7 @@ Errbit::Application.configure do |
6 | 6 | # since you don't have to restart the webserver when you make code changes. |
7 | 7 | config.cache_classes = false |
8 | 8 | |
9 | - # Log error messages when you accidentally call methods on nil. | |
10 | - config.whiny_nils = true | |
9 | + config.eager_load = false | |
11 | 10 | |
12 | 11 | # Show full error reports and disable caching |
13 | 12 | config.consider_all_requests_local = true | ... | ... |
config/environments/production.rb
... | ... | @@ -5,6 +5,8 @@ Errbit::Application.configure do |
5 | 5 | # Code is not reloaded between requests |
6 | 6 | config.cache_classes = true |
7 | 7 | |
8 | + config.eager_load = true | |
9 | + | |
8 | 10 | # Shows or hides all error details if something goes wrong inside Errbit |
9 | 11 | config.consider_all_requests_local = false |
10 | 12 | # Caching is turned on | ... | ... |
config/environments/test.rb
... | ... | @@ -7,8 +7,7 @@ Errbit::Application.configure do |
7 | 7 | # and recreated between test runs. Don't rely on the data there! |
8 | 8 | config.cache_classes = true |
9 | 9 | |
10 | - # Log error messages when you accidentally call methods on nil. | |
11 | - config.whiny_nils = true | |
10 | + config.eager_load = false | |
12 | 11 | |
13 | 12 | # Show full error reports and disable caching |
14 | 13 | config.consider_all_requests_local = true | ... | ... |
config/initializers/mongo.rb
config/initializers/overrides.rb
config/mongoid.example.yml
... | ... | @@ -14,7 +14,6 @@ development: |
14 | 14 | hosts: |
15 | 15 | - localhost:27017 |
16 | 16 | options: |
17 | - identity_map_enabled: true | |
18 | 17 | use_utc: true |
19 | 18 | |
20 | 19 | test: |
... | ... | @@ -24,7 +23,6 @@ test: |
24 | 23 | - localhost:27017 |
25 | 24 | database: errbit_test |
26 | 25 | options: |
27 | - identity_map_enabled: true | |
28 | 26 | use_utc: true |
29 | 27 | |
30 | 28 | # set these environment variables on your prod server |
... | ... | @@ -37,4 +35,4 @@ production: |
37 | 35 | username: <%= ENV['MONGOID_USERNAME'] %> |
38 | 36 | password: <%= ENV['MONGOID_PASSWORD'] %> |
39 | 37 | options: |
40 | - identity_map_enabled: true | |
38 | + use_utc: true | |
41 | 39 | \ No newline at end of file | ... | ... |
spec/controllers/api/v1/problems_controller_spec.rb
... | ... | @@ -33,7 +33,7 @@ describe Api::V1::ProblemsController do |
33 | 33 | get :show, :auth_token => @user.authentication_token, :format => "json", :id => @problem.id |
34 | 34 | |
35 | 35 | returned_problem = JSON.parse(response.body) |
36 | - expect( returned_problem["_id"] ).to eq(@problem.id.to_s) | |
36 | + expect(returned_problem["_id"]).to eq(@problem.id.to_s) | |
37 | 37 | end |
38 | 38 | |
39 | 39 | it "should return only the correct fields" do |
... | ... | @@ -43,24 +43,14 @@ describe Api::V1::ProblemsController do |
43 | 43 | expect( returned_problem.keys ).to match_array([ |
44 | 44 | "app_name", |
45 | 45 | "first_notice_at", |
46 | - "error_class", | |
47 | - "messages", | |
48 | - "hosts", | |
49 | - "created_at", | |
46 | + "message", | |
50 | 47 | "app_id", |
51 | 48 | "last_notice_at", |
52 | 49 | "_id", |
53 | - "issue_link", | |
54 | 50 | "resolved", |
55 | - "updated_at", | |
56 | 51 | "resolved_at", |
57 | - "last_deploy_at", | |
58 | 52 | "where", |
59 | - "issue_type", | |
60 | 53 | "notices_count", |
61 | - "user_agents", | |
62 | - "comments_count", | |
63 | - "message", | |
64 | 54 | "environment" |
65 | 55 | ]) |
66 | 56 | end | ... | ... |
spec/controllers/apps_controller_spec.rb
... | ... | @@ -358,8 +358,10 @@ describe AppsController do |
358 | 358 | end |
359 | 359 | |
360 | 360 | it "should destroy the app" do |
361 | - expect(@app).to receive(:destroy) | |
362 | 361 | delete :destroy, :id => @app.id |
362 | + expect { | |
363 | + @app.reload | |
364 | + }.to raise_error(Mongoid::Errors::DocumentNotFound) | |
363 | 365 | end |
364 | 366 | |
365 | 367 | it "should display a message" do |
... | ... | @@ -397,10 +399,8 @@ describe AppsController do |
397 | 399 | expect do |
398 | 400 | post :regenerate_api_key, :id => app.id |
399 | 401 | expect(request).to redirect_to edit_app_path(app) |
400 | - end.to change { app.api_key } | |
402 | + end.to change { app.reload.api_key } | |
401 | 403 | end |
402 | 404 | end |
403 | - | |
404 | 405 | end |
405 | - | |
406 | 406 | end | ... | ... |
spec/controllers/problems_controller_spec.rb
... | ... | @@ -250,7 +250,7 @@ describe ProblemsController do |
250 | 250 | end |
251 | 251 | |
252 | 252 | it "should redirect back to problems page" do |
253 | - request.env["Referer"] = problems_path | |
253 | + request.env["HTTP_REFERER"] = problems_path | |
254 | 254 | put :resolve, :app_id => @problem.app.id, :id => @problem.problem.id |
255 | 255 | expect(response).to redirect_to(problems_path) |
256 | 256 | end |
... | ... | @@ -437,7 +437,7 @@ describe ProblemsController do |
437 | 437 | end |
438 | 438 | |
439 | 439 | it "should redirect back to the app page" do |
440 | - request.env["Referer"] = edit_app_path(@app) | |
440 | + request.env["HTTP_REFERER"] = edit_app_path(@app) | |
441 | 441 | put :destroy_all, :app_id => @app.id |
442 | 442 | expect(response).to redirect_to(edit_app_path(@app)) |
443 | 443 | end |
... | ... | @@ -446,4 +446,3 @@ describe ProblemsController do |
446 | 446 | end |
447 | 447 | |
448 | 448 | end |
449 | - | ... | ... |
spec/controllers/users_controller_spec.rb
... | ... | @@ -190,7 +190,7 @@ describe UsersController do |
190 | 190 | context "with normal params" do |
191 | 191 | let(:user_params) { {:name => 'Kermit'} } |
192 | 192 | it "sets a message to display" do |
193 | - expect(request.flash[:success]).to eq I18n.t('controllers.users.flash.update.success', :name => user.name) | |
193 | + expect(request.flash[:success]).to eq I18n.t('controllers.users.flash.update.success', :name => user.reload.name) | |
194 | 194 | expect(response).to redirect_to(user_path(user)) |
195 | 195 | end |
196 | 196 | end | ... | ... |
spec/models/app_spec.rb
... | ... | @@ -6,7 +6,7 @@ describe App do |
6 | 6 | it { should have_field(:_id).of_type(String) } |
7 | 7 | it { should have_field(:name).of_type(String) } |
8 | 8 | it { should have_fields(:api_key, :github_repo, :bitbucket_repo, :asset_host, :repository_branch) } |
9 | - it { should have_fields(:resolve_errs_on_deploy, :notify_all_users, :notify_on_errs, :notify_on_deploys).of_type(Boolean) } | |
9 | + it { should have_fields(:resolve_errs_on_deploy, :notify_all_users, :notify_on_errs, :notify_on_deploys).of_type(Mongoid::Boolean) } | |
10 | 10 | it { should have_field(:email_at_notices).of_type(Array).with_default_value_of(Errbit::Config.email_at_notices) } |
11 | 11 | end |
12 | 12 | |
... | ... | @@ -243,4 +243,3 @@ describe App do |
243 | 243 | end |
244 | 244 | |
245 | 245 | end |
246 | - | ... | ... |