rails_best_practices 1.14.4 → 1.15.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (86) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -1
  3. data/.travis.yml +1 -0
  4. data/README.md +26 -6
  5. data/lib/rails_best_practices/core/check.rb +15 -2
  6. data/lib/rails_best_practices/core/klasses.rb +13 -3
  7. data/lib/rails_best_practices/core/model_associations.rb +1 -1
  8. data/lib/rails_best_practices/core/runner.rb +2 -0
  9. data/lib/rails_best_practices/lexicals/long_line_check.rb +1 -1
  10. data/lib/rails_best_practices/prepares/route_prepare.rb +17 -1
  11. data/lib/rails_best_practices/reviews/always_add_db_index_review.rb +2 -2
  12. data/lib/rails_best_practices/reviews/isolate_seed_data_review.rb +2 -2
  13. data/lib/rails_best_practices/reviews/keep_finders_on_their_own_model_review.rb +1 -1
  14. data/lib/rails_best_practices/reviews/move_code_into_helper_review.rb +1 -1
  15. data/lib/rails_best_practices/reviews/move_code_into_model_review.rb +1 -1
  16. data/lib/rails_best_practices/reviews/move_model_logic_into_model_review.rb +1 -1
  17. data/lib/rails_best_practices/reviews/needless_deep_nesting_review.rb +1 -1
  18. data/lib/rails_best_practices/reviews/overuse_route_customizations_review.rb +1 -1
  19. data/lib/rails_best_practices/reviews/remove_unused_methods_in_models_review.rb +1 -2
  20. data/lib/rails_best_practices/reviews/replace_complex_creation_with_factory_method_review.rb +1 -1
  21. data/lib/rails_best_practices/reviews/restrict_auto_generated_routes_review.rb +2 -1
  22. data/lib/rails_best_practices/reviews/use_multipart_alternative_as_content_type_of_email_review.rb +15 -26
  23. data/lib/rails_best_practices/reviews/use_turbo_sprockets_rails3_review.rb +4 -2
  24. data/lib/rails_best_practices/version.rb +1 -1
  25. data/spec/rails_best_practices/analyzer_spec.rb +11 -11
  26. data/spec/rails_best_practices/core/check_spec.rb +1 -1
  27. data/spec/rails_best_practices/core/error_spec.rb +6 -6
  28. data/spec/rails_best_practices/core/klasses_spec.rb +26 -2
  29. data/spec/rails_best_practices/core/methods_spec.rb +18 -18
  30. data/spec/rails_best_practices/core/model_associations_spec.rb +6 -6
  31. data/spec/rails_best_practices/core/model_attributes_spec.rb +6 -6
  32. data/spec/rails_best_practices/core/modules_spec.rb +3 -3
  33. data/spec/rails_best_practices/core/routes_spec.rb +4 -4
  34. data/spec/rails_best_practices/core/runner_spec.rb +1 -1
  35. data/spec/rails_best_practices/lexicals/long_line_check_spec.rb +18 -6
  36. data/spec/rails_best_practices/lexicals/remove_tab_check_spec.rb +18 -5
  37. data/spec/rails_best_practices/lexicals/remove_trailing_whitespace_check_spec.rb +17 -5
  38. data/spec/rails_best_practices/prepares/config_prepare_spec.rb +1 -1
  39. data/spec/rails_best_practices/prepares/controller_prepare_spec.rb +13 -13
  40. data/spec/rails_best_practices/prepares/gemfile_prepare_spec.rb +1 -1
  41. data/spec/rails_best_practices/prepares/helper_prepare_spec.rb +2 -2
  42. data/spec/rails_best_practices/prepares/initializer_prepare_spec.rb +2 -2
  43. data/spec/rails_best_practices/prepares/mailer_prepare_spec.rb +1 -1
  44. data/spec/rails_best_practices/prepares/model_prepare_spec.rb +44 -44
  45. data/spec/rails_best_practices/prepares/route_prepare_spec.rb +102 -78
  46. data/spec/rails_best_practices/prepares/schema_prepare_spec.rb +6 -6
  47. data/spec/rails_best_practices/reviews/add_model_virtual_attribute_review_spec.rb +25 -9
  48. data/spec/rails_best_practices/reviews/always_add_db_index_review_spec.rb +43 -23
  49. data/spec/rails_best_practices/reviews/check_save_return_value_spec.rb +34 -20
  50. data/spec/rails_best_practices/reviews/default_scope_is_evil_review_spec.rb +16 -5
  51. data/spec/rails_best_practices/reviews/dry_bundler_in_capistrano_review_spec.rb +25 -3
  52. data/spec/rails_best_practices/reviews/hash_syntax_review_spec.rb +18 -7
  53. data/spec/rails_best_practices/reviews/isolate_seed_data_review_spec.rb +30 -7
  54. data/spec/rails_best_practices/reviews/keep_finders_on_their_own_model_review_spec.rb +24 -8
  55. data/spec/rails_best_practices/reviews/law_of_demeter_review_spec.rb +24 -12
  56. data/spec/rails_best_practices/reviews/move_code_into_controller_review_spec.rb +17 -5
  57. data/spec/rails_best_practices/reviews/move_code_into_helper_review_spec.rb +14 -3
  58. data/spec/rails_best_practices/reviews/move_code_into_model_review_spec.rb +24 -13
  59. data/spec/rails_best_practices/reviews/move_finder_to_named_scope_review_spec.rb +25 -6
  60. data/spec/rails_best_practices/reviews/move_model_logic_into_model_review_spec.rb +26 -4
  61. data/spec/rails_best_practices/reviews/needless_deep_nesting_review_spec.rb +31 -18
  62. data/spec/rails_best_practices/reviews/not_rescue_exception_spec.rb +23 -10
  63. data/spec/rails_best_practices/reviews/not_use_default_route_review_spec.rb +34 -7
  64. data/spec/rails_best_practices/reviews/not_use_times_ago_in_words_review_spec.rb +19 -8
  65. data/spec/rails_best_practices/reviews/overuse_route_customizations_review_spec.rb +33 -19
  66. data/spec/rails_best_practices/reviews/protect_mass_assignment_review_spec.rb +25 -13
  67. data/spec/rails_best_practices/reviews/remove_empty_helpers_review_spec.rb +14 -4
  68. data/spec/rails_best_practices/reviews/remove_unused_methods_in_controllers_review_spec.rb +91 -23
  69. data/spec/rails_best_practices/reviews/remove_unused_methods_in_helpers_review_spec.rb +20 -5
  70. data/spec/rails_best_practices/reviews/remove_unused_methods_in_models_review_spec.rb +66 -41
  71. data/spec/rails_best_practices/reviews/replace_complex_creation_with_factory_method_review_spec.rb +28 -4
  72. data/spec/rails_best_practices/reviews/replace_instance_variable_with_local_variable_review_spec.rb +16 -7
  73. data/spec/rails_best_practices/reviews/restrict_auto_generated_routes_review_spec.rb +45 -32
  74. data/spec/rails_best_practices/reviews/simplify_render_in_controllers_review_spec.rb +20 -9
  75. data/spec/rails_best_practices/reviews/simplify_render_in_views_review_spec.rb +23 -14
  76. data/spec/rails_best_practices/reviews/use_before_filter_review_spec.rb +34 -7
  77. data/spec/rails_best_practices/reviews/use_model_association_review_spec.rb +21 -6
  78. data/spec/rails_best_practices/reviews/use_multipart_alternative_as_content_type_of_email_review_spec.rb +124 -79
  79. data/spec/rails_best_practices/reviews/use_observer_review_spec.rb +12 -12
  80. data/spec/rails_best_practices/reviews/use_parenthesis_in_method_def_spec.rb +16 -4
  81. data/spec/rails_best_practices/reviews/use_query_attribute_review_spec.rb +39 -27
  82. data/spec/rails_best_practices/reviews/use_say_with_time_in_migrations_review_spec.rb +22 -8
  83. data/spec/rails_best_practices/reviews/use_scope_access_review_spec.rb +39 -21
  84. data/spec/rails_best_practices/reviews/use_turbo_sprockets_rails3_review_spec.rb +66 -7
  85. metadata +36 -37
  86. data/.ruby-gemset +0 -1
@@ -28,8 +28,8 @@ module RailsBestPractices
28
28
  EOF
29
29
  runner.review('app/controllers/posts_controller.rb', content)
30
30
  runner.after_review
31
- runner.should have(1).errors
32
- runner.errors[0].to_s.should == "app/models/post.rb:4 - remove unused methods (Post#find_by_sql)"
31
+ expect(runner.errors.size).to eq(1)
32
+ expect(runner.errors[0].to_s).to eq("app/models/post.rb:4 - remove unused methods (Post#find_by_sql)")
33
33
  end
34
34
 
35
35
  it "should not remove unused methods with except_methods" do
@@ -41,7 +41,7 @@ module RailsBestPractices
41
41
  runner.prepare('app/models/post.rb', content)
42
42
  runner.review('app/models/post.rb', content)
43
43
  runner.after_review
44
- runner.should have(0).errors
44
+ expect(runner.errors.size).to eq(0)
45
45
  end
46
46
 
47
47
  it "should not remove unused methods with var_ref" do
@@ -65,7 +65,7 @@ module RailsBestPractices
65
65
  EOF
66
66
  runner.review('app/controllers/posts_controller.rb', content)
67
67
  runner.after_review
68
- runner.should have(0).errors
68
+ expect(runner.errors.size).to eq(0)
69
69
  end
70
70
 
71
71
  it "should not remove unused methods with callback" do
@@ -79,7 +79,7 @@ module RailsBestPractices
79
79
  runner.prepare('app/models/post.rb', content)
80
80
  runner.review('app/models/post.rb', content)
81
81
  runner.after_review
82
- runner.should have(0).errors
82
+ expect(runner.errors.size).to eq(0)
83
83
  end
84
84
 
85
85
  it "should not remove unused method with command" do
@@ -103,7 +103,7 @@ module RailsBestPractices
103
103
  EOF
104
104
  runner.review('app/controllers/posts_controller.rb', content)
105
105
  runner.after_review
106
- runner.should have(0).errors
106
+ expect(runner.errors.size).to eq(0)
107
107
  end
108
108
 
109
109
  it "should not remove unused method with call" do
@@ -127,7 +127,7 @@ module RailsBestPractices
127
127
  EOF
128
128
  runner.review('app/controllers/posts_controller.rb', content)
129
129
  runner.after_review
130
- runner.should have(0).errors
130
+ expect(runner.errors.size).to eq(0)
131
131
  end
132
132
 
133
133
  it "should not remove unused method with message" do
@@ -153,7 +153,7 @@ module RailsBestPractices
153
153
  EOF
154
154
  runner.review('app/controllers/posts_controller.rb', content)
155
155
  runner.after_review
156
- runner.should have(0).errors
156
+ expect(runner.errors.size).to eq(0)
157
157
  end
158
158
 
159
159
  it "should not remove unused method with validation condition" do
@@ -167,7 +167,7 @@ module RailsBestPractices
167
167
  runner.prepare('app/models/post.rb', content)
168
168
  runner.review('app/models/post.rb', content)
169
169
  runner.after_review
170
- runner.should have(0).errors
170
+ expect(runner.errors.size).to eq(0)
171
171
  end
172
172
 
173
173
  it "should not remove unused method with aasm" do
@@ -181,7 +181,7 @@ module RailsBestPractices
181
181
  runner.prepare('app/models/post.rb', content)
182
182
  runner.review('app/models/post.rb', content)
183
183
  runner.after_review
184
- runner.should have(0).errors
184
+ expect(runner.errors.size).to eq(0)
185
185
  end
186
186
 
187
187
  it "should not remove unused method with initialize" do
@@ -194,7 +194,7 @@ module RailsBestPractices
194
194
  runner.prepare('app/models/post.rb', content)
195
195
  runner.review('app/models/post.rb', content)
196
196
  runner.after_review
197
- runner.should have(0).errors
197
+ expect(runner.errors.size).to eq(0)
198
198
  end
199
199
  end
200
200
 
@@ -207,8 +207,8 @@ module RailsBestPractices
207
207
  EOF
208
208
  runner.prepare('app/models/post.rb', content)
209
209
  runner.after_review
210
- runner.should have(1).errors
211
- runner.errors[0].to_s.should == "app/models/post.rb:2 - remove unused methods (Post#fetch)"
210
+ expect(runner.errors.size).to eq(1)
211
+ expect(runner.errors[0].to_s).to eq("app/models/post.rb:2 - remove unused methods (Post#fetch)")
212
212
  end
213
213
 
214
214
  it "should not remove unused methods" do
@@ -227,7 +227,7 @@ module RailsBestPractices
227
227
  EOF
228
228
  runner.review('app/controllers/posts_controller.rb', content)
229
229
  runner.after_review
230
- runner.should have(0).errors
230
+ expect(runner.errors.size).to eq(0)
231
231
  end
232
232
 
233
233
  it "should not remove unused methods for attribute assignment" do
@@ -239,7 +239,7 @@ module RailsBestPractices
239
239
  runner.prepare('app/models/post.rb', content)
240
240
  runner.review('app/models/post.rb', content)
241
241
  runner.after_review
242
- runner.should have(0).errors
242
+ expect(runner.errors.size).to eq(0)
243
243
  end
244
244
 
245
245
  it "should not remove unused methods for try" do
@@ -259,7 +259,7 @@ module RailsBestPractices
259
259
  EOF
260
260
  runner.review('app/controllers/posts_controller.rb', content)
261
261
  runner.after_review
262
- runner.should have(0).errors
262
+ expect(runner.errors.size).to eq(0)
263
263
  end
264
264
 
265
265
  it "should not remove unused methods for send" do
@@ -279,7 +279,7 @@ module RailsBestPractices
279
279
  EOF
280
280
  runner.review('app/controllers/posts_controller.rb', content)
281
281
  runner.after_review
282
- runner.should have(0).errors
282
+ expect(runner.errors.size).to eq(0)
283
283
  end
284
284
 
285
285
  it "should remove unused methods for send string_embexpre" do
@@ -300,7 +300,7 @@ module RailsBestPractices
300
300
  EOF
301
301
  runner.review('app/controllers/posts_controller.rb', content)
302
302
  runner.after_review
303
- runner.should have(1).errors
303
+ expect(runner.errors.size).to eq(1)
304
304
  end
305
305
 
306
306
  it "should remove unused methods for send variable" do
@@ -321,7 +321,7 @@ module RailsBestPractices
321
321
  EOF
322
322
  runner.review('app/controllers/posts_controller.rb', content)
323
323
  runner.after_review
324
- runner.should have(1).errors
324
+ expect(runner.errors.size).to eq(1)
325
325
  end
326
326
  end
327
327
 
@@ -344,8 +344,8 @@ module RailsBestPractices
344
344
  EOF
345
345
  runner.review('app/controllers/posts_controller.rb', content)
346
346
  runner.after_review
347
- runner.should have(1).errors
348
- runner.errors[0].to_s.should == "app/models/post.rb:3 - remove unused methods (Post#test)"
347
+ expect(runner.errors.size).to eq(1)
348
+ expect(runner.errors[0].to_s).to eq("app/models/post.rb:3 - remove unused methods (Post#test)")
349
349
  end
350
350
 
351
351
  it "should not remove unused methods" do
@@ -375,7 +375,7 @@ module RailsBestPractices
375
375
  EOF
376
376
  runner.review('app/controllers/posts_controller.rb', content)
377
377
  runner.after_review
378
- runner.should have(0).errors
378
+ expect(runner.errors.size).to eq(0)
379
379
  end
380
380
  end
381
381
 
@@ -397,7 +397,7 @@ module RailsBestPractices
397
397
  EOF
398
398
  runner.review("app/controllers/posts_controller.rb", content)
399
399
  runner.after_review
400
- runner.should have(0).errors
400
+ expect(runner.errors.size).to eq(0)
401
401
  end
402
402
 
403
403
  it "should remove unused named_scope" do
@@ -409,8 +409,8 @@ module RailsBestPractices
409
409
  runner.prepare("app/models/post.rb", content)
410
410
  runner.review("app/models/post.rb", content)
411
411
  runner.after_review
412
- runner.should have(1).errors
413
- runner.errors[0].to_s.should == "app/models/post.rb:2 - remove unused methods (Post#active)"
412
+ expect(runner.errors.size).to eq(1)
413
+ expect(runner.errors[0].to_s).to eq("app/models/post.rb:2 - remove unused methods (Post#active)")
414
414
  end
415
415
  end
416
416
 
@@ -432,7 +432,7 @@ module RailsBestPractices
432
432
  EOF
433
433
  runner.review("app/controllers/posts_controller.rb", content)
434
434
  runner.after_review
435
- runner.should have(0).errors
435
+ expect(runner.errors.size).to eq(0)
436
436
  end
437
437
 
438
438
  it "should remove unused named_scope" do
@@ -444,8 +444,8 @@ module RailsBestPractices
444
444
  runner.prepare("app/models/post.rb", content)
445
445
  runner.review("app/models/post.rb", content)
446
446
  runner.after_review
447
- runner.should have(1).errors
448
- runner.errors[0].to_s.should == "app/models/post.rb:2 - remove unused methods (Post#active)"
447
+ expect(runner.errors.size).to eq(1)
448
+ expect(runner.errors[0].to_s).to eq("app/models/post.rb:2 - remove unused methods (Post#active)")
449
449
  end
450
450
  end
451
451
 
@@ -468,7 +468,7 @@ module RailsBestPractices
468
468
  EOF
469
469
  runner.review("app/controllers/posts_controller.rb", content)
470
470
  runner.after_review
471
- runner.should have(0).errors
471
+ expect(runner.errors.size).to eq(0)
472
472
  end
473
473
 
474
474
  it "should not remove unused method with symbol alias" do
@@ -489,7 +489,7 @@ module RailsBestPractices
489
489
  EOF
490
490
  runner.review("app/controllers/posts_controller.rb", content)
491
491
  runner.after_review
492
- runner.should have(0).errors
492
+ expect(runner.errors.size).to eq(0)
493
493
  end
494
494
 
495
495
  it "should not remove unused method with alias_method" do
@@ -510,7 +510,7 @@ module RailsBestPractices
510
510
  EOF
511
511
  runner.review("app/controllers/posts_controller.rb", content)
512
512
  runner.after_review
513
- runner.should have(0).errors
513
+ expect(runner.errors.size).to eq(0)
514
514
  end
515
515
 
516
516
  it "should not remove unused method with alias_method_chain" do
@@ -531,7 +531,7 @@ module RailsBestPractices
531
531
  EOF
532
532
  runner.review("app/controllers/posts_controller.rb", content)
533
533
  runner.after_review
534
- runner.should have(0).errors
534
+ expect(runner.errors.size).to eq(0)
535
535
  end
536
536
  end
537
537
 
@@ -549,7 +549,7 @@ module RailsBestPractices
549
549
  runner.prepare("app/models/post.rb", content)
550
550
  runner.review("app/models/post.rb", content)
551
551
  runner.after_review
552
- runner.should have(0).errors
552
+ expect(runner.errors.size).to eq(0)
553
553
  end
554
554
  end
555
555
 
@@ -568,7 +568,7 @@ module RailsBestPractices
568
568
  runner.prepare("app/models/post.rb", content)
569
569
  runner.review("app/models/post.rb", content)
570
570
  runner.after_review
571
- runner.should have(0).errors
571
+ expect(runner.errors.size).to eq(0)
572
572
  end
573
573
  end
574
574
 
@@ -585,7 +585,7 @@ module RailsBestPractices
585
585
  runner.prepare("app/models/post.rb", content)
586
586
  runner.review("app/models/post.rb", content)
587
587
  runner.after_review
588
- runner.should have(0).errors
588
+ expect(runner.errors.size).to eq(0)
589
589
  end
590
590
 
591
591
  it "should not remove unused method for validate_on_create and validate_on_update" do
@@ -602,7 +602,7 @@ module RailsBestPractices
602
602
  runner.prepare("app/models/post.rb", content)
603
603
  runner.review("app/models/post.rb", content)
604
604
  runner.after_review
605
- runner.should have(0).errors
605
+ expect(runner.errors.size).to eq(0)
606
606
  end
607
607
 
608
608
  it "should not remove unused methods for to_param" do
@@ -616,7 +616,7 @@ module RailsBestPractices
616
616
  runner.prepare("app/models/post.rb", content)
617
617
  runner.review("app/models/post.rb", content)
618
618
  runner.after_review
619
- runner.should have(0).errors
619
+ expect(runner.errors.size).to eq(0)
620
620
  end
621
621
  end
622
622
 
@@ -634,7 +634,7 @@ module RailsBestPractices
634
634
  EOF
635
635
  runner.review("app/views/categories/_form.html.erb", content)
636
636
  runner.after_review
637
- runner.should have(0).errors
637
+ expect(runner.errors.size).to eq(0)
638
638
  end
639
639
 
640
640
  it "should not remove unused method for command collection_select" do
@@ -650,7 +650,7 @@ module RailsBestPractices
650
650
  EOF
651
651
  runner.review("app/views/categories/_form.html.erb", content)
652
652
  runner.after_review
653
- runner.should have(0).errors
653
+ expect(runner.errors.size).to eq(0)
654
654
  end
655
655
 
656
656
  it "should not remove unused method for options_from_collection_for_select" do
@@ -666,7 +666,7 @@ module RailsBestPractices
666
666
  EOF
667
667
  runner.review("app/views/categories/_form.html.erb", content)
668
668
  runner.after_review
669
- runner.should have(0).errors
669
+ expect(runner.errors.size).to eq(0)
670
670
  end
671
671
  end
672
672
 
@@ -686,7 +686,7 @@ module RailsBestPractices
686
686
  EOF
687
687
  runner.review("app/views/users/show.json.rabl", content)
688
688
  runner.after_review
689
- runner.should have(0).errors
689
+ expect(runner.errors.size).to eq(0)
690
690
  end
691
691
 
692
692
  it "should not skip :call as call message" do
@@ -703,6 +703,31 @@ module RailsBestPractices
703
703
  runner.prepare("app/mixins/date_range.rb", content)
704
704
  runner.review("app/mixins/date_range.rb", content)
705
705
  end
706
+
707
+ it "should not check ignored files" do
708
+ runner = Core::Runner.new(prepares: Prepares::ModelPrepare.new,
709
+ reviews: RemoveUnusedMethodsInModelsReview.new(except_methods: [], ignored_files: /post/))
710
+
711
+ content =<<-EOF
712
+ class Post < ActiveRecord::Base
713
+ def find; end
714
+ private
715
+ def find_by_sql; end
716
+ end
717
+ EOF
718
+ runner.prepare('app/models/post.rb', content)
719
+ runner.review('app/models/post.rb', content)
720
+ content =<<-EOF
721
+ class PostsController < ApplicationController
722
+ def get
723
+ Post.new.find
724
+ end
725
+ end
726
+ EOF
727
+ runner.review('app/controllers/posts_controller.rb', content)
728
+ runner.after_review
729
+ expect(runner.errors.size).to eq(0)
730
+ end
706
731
  end
707
732
  end
708
733
  end
@@ -25,8 +25,8 @@ module RailsBestPractices
25
25
  end
26
26
  EOF
27
27
  runner.review('app/controllers/invoices_controller.rb', content)
28
- runner.should have(1).errors
29
- runner.errors[0].to_s.should == "app/controllers/invoices_controller.rb:2 - replace complex creation with factory method (@invoice attribute_assignment_count > 2)"
28
+ expect(runner.errors.size).to eq(1)
29
+ expect(runner.errors[0].to_s).to eq("app/controllers/invoices_controller.rb:2 - replace complex creation with factory method (@invoice attribute_assignment_count > 2)")
30
30
  end
31
31
 
32
32
  it "should not replace complex creation with factory method with simple creation" do
@@ -41,7 +41,7 @@ module RailsBestPractices
41
41
  end
42
42
  EOF
43
43
  runner.review('app/controllers/invoices_controller.rb', content)
44
- runner.should have(0).errors
44
+ expect(runner.errors.size).to eq(0)
45
45
  end
46
46
 
47
47
  it "should not replace complex creation with factory method when attrasgn_count is 5" do
@@ -65,7 +65,31 @@ module RailsBestPractices
65
65
  EOF
66
66
  runner = Core::Runner.new(reviews: ReplaceComplexCreationWithFactoryMethodReview.new('attribute_assignment_count' => 5))
67
67
  runner.review('app/controllers/invoices_controller.rb', content)
68
- runner.should have(0).errors
68
+ expect(runner.errors.size).to eq(0)
69
+ end
70
+
71
+ it "should not check ignored files" do
72
+ runner = Core::Runner.new(reviews: ReplaceComplexCreationWithFactoryMethodReview.new(ignored_files: /invoices_controller/))
73
+ content = <<-EOF
74
+ class InvoiceController < ApplicationController
75
+ def create
76
+ @invoice = Invoice.new(params[:invoice])
77
+ @invoice.address = current_user.address
78
+ @invoice.phone = current_user.phone
79
+ @invoice.vip = (@invoice.amount > 1000)
80
+
81
+ if Time.now.day > 15
82
+ @invoice.deliver_time = Time.now + 2.month
83
+ else
84
+ @invoice.deliver_time = Time.now + 1.month
85
+ end
86
+
87
+ @invoice.save
88
+ end
89
+ end
90
+ EOF
91
+ runner.review('app/controllers/invoices_controller.rb', content)
92
+ expect(runner.errors.size).to eq(0)
69
93
  end
70
94
  end
71
95
  end
@@ -10,8 +10,8 @@ module RailsBestPractices
10
10
  <%= @post.title %>
11
11
  EOF
12
12
  runner.review('app/views/posts/_post.html.erb', content)
13
- runner.should have(1).errors
14
- runner.errors[0].to_s.should == "app/views/posts/_post.html.erb:1 - replace instance variable with local variable"
13
+ expect(runner.errors.size).to eq(1)
14
+ expect(runner.errors[0].to_s).to eq("app/views/posts/_post.html.erb:1 - replace instance variable with local variable")
15
15
  end
16
16
 
17
17
  it "should replace instance variable with local varialbe in haml file" do
@@ -19,8 +19,8 @@ module RailsBestPractices
19
19
  = @post.title
20
20
  EOF
21
21
  runner.review('app/views/posts/_post.html.haml', content)
22
- runner.should have(1).errors
23
- runner.errors[0].to_s.should == "app/views/posts/_post.html.haml:1 - replace instance variable with local variable"
22
+ expect(runner.errors.size).to eq(1)
23
+ expect(runner.errors[0].to_s).to eq("app/views/posts/_post.html.haml:1 - replace instance variable with local variable")
24
24
  end
25
25
 
26
26
  it "should replace instance variable with local varialbe in slim file" do
@@ -28,8 +28,8 @@ module RailsBestPractices
28
28
  = @post.title
29
29
  EOF
30
30
  runner.review('app/views/posts/_post.html.slim', content)
31
- runner.should have(1).errors
32
- runner.errors[0].to_s.should == "app/views/posts/_post.html.slim:1 - replace instance variable with local variable"
31
+ expect(runner.errors.size).to eq(1)
32
+ expect(runner.errors[0].to_s).to eq("app/views/posts/_post.html.slim:1 - replace instance variable with local variable")
33
33
  end
34
34
 
35
35
  it "should not replace instance variable with local varialbe" do
@@ -37,7 +37,16 @@ module RailsBestPractices
37
37
  <%= post.title %>
38
38
  EOF
39
39
  runner.review('app/views/posts/_post.html.erb', content)
40
- runner.should have(0).errors
40
+ expect(runner.errors.size).to eq(0)
41
+ end
42
+
43
+ it "should not check ignored files" do
44
+ runner = Core::Runner.new(reviews: ReplaceInstanceVariableWithLocalVariableReview.new(ignored_files: /views\/posts/))
45
+ content = <<-EOF
46
+ <%= @post.title %>
47
+ EOF
48
+ runner.review('app/views/posts/_post.html.erb', content)
49
+ expect(runner.errors.size).to eq(0)
41
50
  end
42
51
  end
43
52
  end