rails_best_practices 1.19.0 → 1.19.1

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 (133) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +5 -0
  3. data/Guardfile +2 -2
  4. data/Rakefile +8 -8
  5. data/bin/rails_best_practices +1 -1
  6. data/lib/rails_best_practices/analyzer.rb +45 -45
  7. data/lib/rails_best_practices/command.rb +40 -40
  8. data/lib/rails_best_practices/core/check.rb +15 -15
  9. data/lib/rails_best_practices/core/klasses.rb +1 -1
  10. data/lib/rails_best_practices/core/methods.rb +7 -7
  11. data/lib/rails_best_practices/core/model_associations.rb +3 -3
  12. data/lib/rails_best_practices/core/modules.rb +1 -1
  13. data/lib/rails_best_practices/core/routes.rb +2 -2
  14. data/lib/rails_best_practices/core/runner.rb +3 -3
  15. data/lib/rails_best_practices/core_ext/erubis.rb +4 -4
  16. data/lib/rails_best_practices/lexicals/remove_tab_check.rb +2 -2
  17. data/lib/rails_best_practices/lexicals/remove_trailing_whitespace_check.rb +2 -2
  18. data/lib/rails_best_practices/prepares/config_prepare.rb +1 -1
  19. data/lib/rails_best_practices/prepares/controller_prepare.rb +8 -8
  20. data/lib/rails_best_practices/prepares/helper_prepare.rb +1 -1
  21. data/lib/rails_best_practices/prepares/initializer_prepare.rb +4 -4
  22. data/lib/rails_best_practices/prepares/mailer_prepare.rb +1 -1
  23. data/lib/rails_best_practices/prepares/model_prepare.rb +19 -19
  24. data/lib/rails_best_practices/prepares/route_prepare.rb +34 -34
  25. data/lib/rails_best_practices/prepares/schema_prepare.rb +1 -1
  26. data/lib/rails_best_practices/reviews/add_model_virtual_attribute_review.rb +2 -2
  27. data/lib/rails_best_practices/reviews/always_add_db_index_review.rb +7 -7
  28. data/lib/rails_best_practices/reviews/check_save_return_value_review.rb +1 -1
  29. data/lib/rails_best_practices/reviews/default_scope_is_evil_review.rb +3 -3
  30. data/lib/rails_best_practices/reviews/dry_bundler_in_capistrano_review.rb +3 -3
  31. data/lib/rails_best_practices/reviews/hash_syntax_review.rb +1 -1
  32. data/lib/rails_best_practices/reviews/isolate_seed_data_review.rb +6 -6
  33. data/lib/rails_best_practices/reviews/keep_finders_on_their_own_model_review.rb +2 -2
  34. data/lib/rails_best_practices/reviews/law_of_demeter_review.rb +4 -4
  35. data/lib/rails_best_practices/reviews/move_code_into_controller_review.rb +3 -3
  36. data/lib/rails_best_practices/reviews/move_code_into_helper_review.rb +2 -2
  37. data/lib/rails_best_practices/reviews/move_code_into_model_review.rb +1 -1
  38. data/lib/rails_best_practices/reviews/move_finder_to_named_scope_review.rb +2 -2
  39. data/lib/rails_best_practices/reviews/move_model_logic_into_model_review.rb +1 -1
  40. data/lib/rails_best_practices/reviews/needless_deep_nesting_review.rb +4 -4
  41. data/lib/rails_best_practices/reviews/not_rescue_exception_review.rb +2 -2
  42. data/lib/rails_best_practices/reviews/not_use_default_route_review.rb +4 -4
  43. data/lib/rails_best_practices/reviews/not_use_time_ago_in_words_review.rb +3 -3
  44. data/lib/rails_best_practices/reviews/overuse_route_customizations_review.rb +2 -2
  45. data/lib/rails_best_practices/reviews/protect_mass_assignment_review.rb +9 -9
  46. data/lib/rails_best_practices/reviews/remove_empty_helpers_review.rb +3 -3
  47. data/lib/rails_best_practices/reviews/remove_unused_methods_in_controllers_review.rb +11 -11
  48. data/lib/rails_best_practices/reviews/remove_unused_methods_in_helpers_review.rb +1 -1
  49. data/lib/rails_best_practices/reviews/remove_unused_methods_in_models_review.rb +8 -7
  50. data/lib/rails_best_practices/reviews/replace_complex_creation_with_factory_method_review.rb +2 -2
  51. data/lib/rails_best_practices/reviews/replace_instance_variable_with_local_variable_review.rb +2 -2
  52. data/lib/rails_best_practices/reviews/restrict_auto_generated_routes_review.rb +22 -22
  53. data/lib/rails_best_practices/reviews/review.rb +2 -2
  54. data/lib/rails_best_practices/reviews/simplify_render_in_controllers_review.rb +3 -3
  55. data/lib/rails_best_practices/reviews/simplify_render_in_views_review.rb +4 -4
  56. data/lib/rails_best_practices/reviews/use_before_filter_review.rb +2 -2
  57. data/lib/rails_best_practices/reviews/use_model_association_review.rb +2 -2
  58. data/lib/rails_best_practices/reviews/use_multipart_alternative_as_content_type_of_email_review.rb +2 -2
  59. data/lib/rails_best_practices/reviews/use_observer_review.rb +3 -3
  60. data/lib/rails_best_practices/reviews/use_parentheses_in_method_def_review.rb +1 -1
  61. data/lib/rails_best_practices/reviews/use_query_attribute_review.rb +3 -3
  62. data/lib/rails_best_practices/reviews/use_say_with_time_in_migrations_review.rb +2 -2
  63. data/lib/rails_best_practices/reviews/use_scope_access_review.rb +5 -5
  64. data/lib/rails_best_practices/reviews/use_turbo_sprockets_rails3_review.rb +4 -4
  65. data/lib/rails_best_practices/version.rb +1 -1
  66. data/rails_best_practices.gemspec +24 -24
  67. data/spec/rails_best_practices/analyzer_spec.rb +43 -43
  68. data/spec/rails_best_practices/core/check_spec.rb +2 -2
  69. data/spec/rails_best_practices/core/checks_loader_spec.rb +4 -4
  70. data/spec/rails_best_practices/core/error_spec.rb +16 -16
  71. data/spec/rails_best_practices/core/except_methods_spec.rb +15 -15
  72. data/spec/rails_best_practices/core/gems_spec.rb +9 -9
  73. data/spec/rails_best_practices/core/klasses_spec.rb +17 -17
  74. data/spec/rails_best_practices/core/methods_spec.rb +28 -28
  75. data/spec/rails_best_practices/core/model_associations_spec.rb +10 -10
  76. data/spec/rails_best_practices/core/model_attributes_spec.rb +10 -10
  77. data/spec/rails_best_practices/core/modules_spec.rb +10 -10
  78. data/spec/rails_best_practices/core/routes_spec.rb +10 -10
  79. data/spec/rails_best_practices/core/runner_spec.rb +4 -4
  80. data/spec/rails_best_practices/core_ext/erubis_spec.rb +7 -7
  81. data/spec/rails_best_practices/lexicals/long_line_check_spec.rb +7 -7
  82. data/spec/rails_best_practices/lexicals/remove_tab_check_spec.rb +6 -6
  83. data/spec/rails_best_practices/lexicals/remove_trailing_whitespace_check_spec.rb +6 -6
  84. data/spec/rails_best_practices/prepares/config_prepare_spec.rb +3 -3
  85. data/spec/rails_best_practices/prepares/controller_prepare_spec.rb +26 -26
  86. data/spec/rails_best_practices/prepares/gemfile_prepare_spec.rb +3 -3
  87. data/spec/rails_best_practices/prepares/helper_prepare_spec.rb +6 -6
  88. data/spec/rails_best_practices/prepares/initializer_prepare_spec.rb +5 -5
  89. data/spec/rails_best_practices/prepares/mailer_prepare_spec.rb +2 -2
  90. data/spec/rails_best_practices/prepares/model_prepare_spec.rb +108 -108
  91. data/spec/rails_best_practices/prepares/route_prepare_spec.rb +77 -77
  92. data/spec/rails_best_practices/prepares/schema_prepare_spec.rb +8 -8
  93. data/spec/rails_best_practices/reviews/add_model_virtual_attribute_review_spec.rb +10 -10
  94. data/spec/rails_best_practices/reviews/always_add_db_index_review_spec.rb +27 -27
  95. data/spec/rails_best_practices/reviews/check_destroy_return_value_review_spec.rb +11 -11
  96. data/spec/rails_best_practices/reviews/check_save_return_value_review_spec.rb +17 -17
  97. data/spec/rails_best_practices/reviews/default_scope_is_evil_review_spec.rb +6 -6
  98. data/spec/rails_best_practices/reviews/dry_bundler_in_capistrano_review_spec.rb +4 -4
  99. data/spec/rails_best_practices/reviews/hash_syntax_review_spec.rb +8 -8
  100. data/spec/rails_best_practices/reviews/isolate_seed_data_review_spec.rb +10 -10
  101. data/spec/rails_best_practices/reviews/keep_finders_on_their_own_model_review_spec.rb +9 -9
  102. data/spec/rails_best_practices/reviews/law_of_demeter_review_spec.rb +16 -16
  103. data/spec/rails_best_practices/reviews/move_code_into_controller_review_spec.rb +6 -6
  104. data/spec/rails_best_practices/reviews/move_code_into_helper_review_spec.rb +4 -4
  105. data/spec/rails_best_practices/reviews/move_code_into_model_review_spec.rb +13 -13
  106. data/spec/rails_best_practices/reviews/move_finder_to_named_scope_review_spec.rb +7 -7
  107. data/spec/rails_best_practices/reviews/move_model_logic_into_model_review_spec.rb +5 -5
  108. data/spec/rails_best_practices/reviews/needless_deep_nesting_review_spec.rb +10 -10
  109. data/spec/rails_best_practices/reviews/not_rescue_exception_review_spec.rb +8 -8
  110. data/spec/rails_best_practices/reviews/not_use_default_route_review_spec.rb +4 -4
  111. data/spec/rails_best_practices/reviews/not_use_time_ago_in_words_review_spec.rb +11 -11
  112. data/spec/rails_best_practices/reviews/overuse_route_customizations_review_spec.rb +7 -7
  113. data/spec/rails_best_practices/reviews/protect_mass_assignment_review_spec.rb +16 -16
  114. data/spec/rails_best_practices/reviews/remove_empty_helpers_review_spec.rb +5 -5
  115. data/spec/rails_best_practices/reviews/remove_unused_methods_in_controllers_review_spec.rb +33 -33
  116. data/spec/rails_best_practices/reviews/remove_unused_methods_in_helpers_review_spec.rb +7 -7
  117. data/spec/rails_best_practices/reviews/remove_unused_methods_in_models_review_spec.rb +106 -106
  118. data/spec/rails_best_practices/reviews/replace_complex_creation_with_factory_method_review_spec.rb +5 -5
  119. data/spec/rails_best_practices/reviews/replace_instance_variable_with_local_variable_review_spec.rb +8 -8
  120. data/spec/rails_best_practices/reviews/restrict_auto_generated_routes_review_spec.rb +29 -29
  121. data/spec/rails_best_practices/reviews/simplify_render_in_controllers_review_spec.rb +15 -15
  122. data/spec/rails_best_practices/reviews/simplify_render_in_views_review_spec.rb +15 -15
  123. data/spec/rails_best_practices/reviews/use_before_filter_review_spec.rb +7 -7
  124. data/spec/rails_best_practices/reviews/use_model_association_review_spec.rb +7 -7
  125. data/spec/rails_best_practices/reviews/use_multipart_alternative_as_content_type_of_email_review_spec.rb +29 -29
  126. data/spec/rails_best_practices/reviews/use_observer_review_spec.rb +6 -6
  127. data/spec/rails_best_practices/reviews/use_parentheses_in_method_def_review_spec.rb +5 -5
  128. data/spec/rails_best_practices/reviews/use_query_attribute_review_spec.rb +28 -28
  129. data/spec/rails_best_practices/reviews/use_say_with_time_in_migrations_review_spec.rb +9 -9
  130. data/spec/rails_best_practices/reviews/use_scope_access_review_spec.rb +23 -23
  131. data/spec/rails_best_practices/reviews/use_turbo_sprockets_rails3_review_spec.rb +6 -6
  132. data/spec/spec_helper.rb +1 -1
  133. metadata +7 -7
@@ -5,7 +5,7 @@ module RailsBestPractices
5
5
  describe SchemaPrepare do
6
6
  let(:runner) { Core::Runner.new(prepares: SchemaPrepare.new) }
7
7
 
8
- it "should parse model attributes" do
8
+ it 'should parse model attributes' do
9
9
  content =<<-EOF
10
10
  ActiveRecord::Schema.define(version: 20110319172136) do
11
11
  create_table "posts", force: true do |t|
@@ -18,14 +18,14 @@ module RailsBestPractices
18
18
  end
19
19
  end
20
20
  EOF
21
- runner.prepare("db/schema.rb", content)
21
+ runner.prepare('db/schema.rb', content)
22
22
  model_attributes = Prepares.model_attributes
23
- expect(model_attributes.get_attribute_type("Post", "title")).to eq("string")
24
- expect(model_attributes.get_attribute_type("Post", "body")).to eq("text")
25
- expect(model_attributes.get_attribute_type("Post", "created_at")).to eq("datetime")
26
- expect(model_attributes.get_attribute_type("Post", "user_id")).to eq("integer")
27
- expect(model_attributes.get_attribute_type("Post", "comments_count")).to eq("integer")
28
- expect(model_attributes.get_attribute_type("Post", "published")).to eq("boolean")
23
+ expect(model_attributes.get_attribute_type('Post', 'title')).to eq('string')
24
+ expect(model_attributes.get_attribute_type('Post', 'body')).to eq('text')
25
+ expect(model_attributes.get_attribute_type('Post', 'created_at')).to eq('datetime')
26
+ expect(model_attributes.get_attribute_type('Post', 'user_id')).to eq('integer')
27
+ expect(model_attributes.get_attribute_type('Post', 'comments_count')).to eq('integer')
28
+ expect(model_attributes.get_attribute_type('Post', 'published')).to eq('boolean')
29
29
  end
30
30
  end
31
31
  end
@@ -5,7 +5,7 @@ module RailsBestPractices
5
5
  describe AddModelVirtualAttributeReview do
6
6
  let(:runner) { Core::Runner.new(reviews: AddModelVirtualAttributeReview.new) }
7
7
 
8
- it "should add model virtual attribute" do
8
+ it 'should add model virtual attribute' do
9
9
  content = <<-EOF
10
10
  class UsersController < ApplicationController
11
11
  def create
@@ -18,10 +18,10 @@ module RailsBestPractices
18
18
  EOF
19
19
  runner.review('app/controllers/users_controller.rb', content)
20
20
  expect(runner.errors.size).to eq(1)
21
- expect(runner.errors[0].to_s).to eq("app/controllers/users_controller.rb:2 - add model virtual attribute (for @user)")
21
+ expect(runner.errors[0].to_s).to eq('app/controllers/users_controller.rb:2 - add model virtual attribute (for @user)')
22
22
  end
23
23
 
24
- it "should add model virtual attribute with local assignment" do
24
+ it 'should add model virtual attribute with local assignment' do
25
25
  content = <<-EOF
26
26
  class UsersController < ApplicationController
27
27
  def create
@@ -34,10 +34,10 @@ module RailsBestPractices
34
34
  EOF
35
35
  runner.review('app/controllers/users_controller.rb', content)
36
36
  expect(runner.errors.size).to eq(1)
37
- expect(runner.errors[0].to_s).to eq("app/controllers/users_controller.rb:2 - add model virtual attribute (for user)")
37
+ expect(runner.errors[0].to_s).to eq('app/controllers/users_controller.rb:2 - add model virtual attribute (for user)')
38
38
  end
39
39
 
40
- it "should not add model virtual attribute with differen param" do
40
+ it 'should not add model virtual attribute with differen param' do
41
41
  content = <<-EOF
42
42
  class UsersController < ApplicationController
43
43
  def create
@@ -52,7 +52,7 @@ module RailsBestPractices
52
52
  expect(runner.errors.size).to eq(0)
53
53
  end
54
54
 
55
- it "should not add model virtual attribute with read" do
55
+ it 'should not add model virtual attribute with read' do
56
56
  content = <<-EOF
57
57
  class UsersController < ApplicationController
58
58
  def show
@@ -68,7 +68,7 @@ module RailsBestPractices
68
68
  expect(runner.errors.size).to eq(0)
69
69
  end
70
70
 
71
- it "should add model virtual attribute with two dimension params" do
71
+ it 'should add model virtual attribute with two dimension params' do
72
72
  content = <<-EOF
73
73
  class UsersController < ApplicationController
74
74
  def create
@@ -81,10 +81,10 @@ module RailsBestPractices
81
81
  EOF
82
82
  runner.review('app/controllers/users_controller.rb', content)
83
83
  expect(runner.errors.size).to eq(1)
84
- expect(runner.errors[0].to_s).to eq("app/controllers/users_controller.rb:2 - add model virtual attribute (for @user)")
84
+ expect(runner.errors[0].to_s).to eq('app/controllers/users_controller.rb:2 - add model virtual attribute (for @user)')
85
85
  end
86
86
 
87
- it "should no add model virtual attribute with two dimension params" do
87
+ it 'should no add model virtual attribute with two dimension params' do
88
88
  content = <<-EOF
89
89
  class UsersController < ApplicationController
90
90
  def create
@@ -99,7 +99,7 @@ module RailsBestPractices
99
99
  expect(runner.errors.size).to eq(0)
100
100
  end
101
101
 
102
- it "should not check ignored files" do
102
+ it 'should not check ignored files' do
103
103
  runner = Core::Runner.new(reviews: AddModelVirtualAttributeReview.new(ignored_files: /user/))
104
104
  content = <<-EOF
105
105
  class UsersController < ApplicationController
@@ -5,7 +5,7 @@ module RailsBestPractices
5
5
  describe AlwaysAddDbIndexReview do
6
6
  let(:runner) { Core::Runner.new(reviews: AlwaysAddDbIndexReview.new) }
7
7
 
8
- it "should always add db index" do
8
+ it 'should always add db index' do
9
9
  content = <<-EOF
10
10
  ActiveRecord::Schema.define(version: 20100603080629) do
11
11
  create_table "comments", force: true do |t|
@@ -22,11 +22,11 @@ module RailsBestPractices
22
22
  runner.review('db/schema.rb', content)
23
23
  runner.after_review
24
24
  expect(runner.errors.size).to eq(2)
25
- expect(runner.errors[0].to_s).to eq("db/schema.rb:2 - always add db index (comments => [post_id])")
26
- expect(runner.errors[1].to_s).to eq("db/schema.rb:2 - always add db index (comments => [user_id])")
25
+ expect(runner.errors[0].to_s).to eq('db/schema.rb:2 - always add db index (comments => [post_id])')
26
+ expect(runner.errors[1].to_s).to eq('db/schema.rb:2 - always add db index (comments => [user_id])')
27
27
  end
28
28
 
29
- it "should always add db index with polymorphic foreign key" do
29
+ it 'should always add db index with polymorphic foreign key' do
30
30
  content = <<-EOF
31
31
  ActiveRecord::Schema.define(version: 20100603080629) do
32
32
  create_table "versions", force: true do |t|
@@ -39,10 +39,10 @@ module RailsBestPractices
39
39
  runner.review('db/schema.rb', content)
40
40
  runner.after_review
41
41
  expect(runner.errors.size).to eq(1)
42
- expect(runner.errors[0].to_s).to eq("db/schema.rb:2 - always add db index (versions => [versioned_id, versioned_type])")
42
+ expect(runner.errors[0].to_s).to eq('db/schema.rb:2 - always add db index (versions => [versioned_id, versioned_type])')
43
43
  end
44
44
 
45
- it "should always add db index with polymorphic foreign key and _type is defined before _id" do
45
+ it 'should always add db index with polymorphic foreign key and _type is defined before _id' do
46
46
  content = <<-EOF
47
47
  ActiveRecord::Schema.define(version: 20100603080629) do
48
48
  create_table "versions", force: true do |t|
@@ -55,10 +55,10 @@ module RailsBestPractices
55
55
  runner.review('db/schema.rb', content)
56
56
  runner.after_review
57
57
  expect(runner.errors.size).to eq(1)
58
- expect(runner.errors[0].to_s).to eq("db/schema.rb:2 - always add db index (versions => [versioned_id, versioned_type])")
58
+ expect(runner.errors[0].to_s).to eq('db/schema.rb:2 - always add db index (versions => [versioned_id, versioned_type])')
59
59
  end
60
60
 
61
- it "should always add db index with single index, but without polymorphic foreign key" do
61
+ it 'should always add db index with single index, but without polymorphic foreign key' do
62
62
  content = <<-EOF
63
63
  ActiveRecord::Schema.define(version: 20100603080629) do
64
64
  create_table "taggings", force: true do |t|
@@ -75,10 +75,10 @@ module RailsBestPractices
75
75
  runner.review('db/schema.rb', content)
76
76
  runner.after_review
77
77
  expect(runner.errors.size).to eq(1)
78
- expect(runner.errors[0].to_s).to eq("db/schema.rb:2 - always add db index (taggings => [taggable_id, taggable_type])")
78
+ expect(runner.errors[0].to_s).to eq('db/schema.rb:2 - always add db index (taggings => [taggable_id, taggable_type])')
79
79
  end
80
80
 
81
- it "should always add db index with polymorphic foreign key, but without single index" do
81
+ it 'should always add db index with polymorphic foreign key, but without single index' do
82
82
  content = <<-EOF
83
83
  ActiveRecord::Schema.define(version: 20100603080629) do
84
84
  create_table "taggings", force: true do |t|
@@ -95,10 +95,10 @@ module RailsBestPractices
95
95
  runner.review('db/schema.rb', content)
96
96
  runner.after_review
97
97
  expect(runner.errors.size).to eq(1)
98
- expect(runner.errors[0].to_s).to eq("db/schema.rb:2 - always add db index (taggings => [tag_id])")
98
+ expect(runner.errors[0].to_s).to eq('db/schema.rb:2 - always add db index (taggings => [tag_id])')
99
99
  end
100
100
 
101
- it "should always add db index only _id without non related _type column" do
101
+ it 'should always add db index only _id without non related _type column' do
102
102
  content = <<-EOF
103
103
  ActiveRecord::Schema.define(version: 20100603080629) do
104
104
  create_table "websites", force: true do |t|
@@ -114,10 +114,10 @@ module RailsBestPractices
114
114
  runner.review('db/schema.rb', content)
115
115
  runner.after_review
116
116
  expect(runner.errors.size).to eq(1)
117
- expect(runner.errors[0].to_s).to eq("db/schema.rb:2 - always add db index (websites => [user_id])")
117
+ expect(runner.errors[0].to_s).to eq('db/schema.rb:2 - always add db index (websites => [user_id])')
118
118
  end
119
119
 
120
- it "should not always add db index with column has no id" do
120
+ it 'should not always add db index with column has no id' do
121
121
  content = <<-EOF
122
122
  ActiveRecord::Schema.define(version: 20100603080629) do
123
123
  create_table "comments", force: true do |t|
@@ -131,7 +131,7 @@ module RailsBestPractices
131
131
  expect(runner.errors.size).to eq(0)
132
132
  end
133
133
 
134
- it "should not always add db index with add_index" do
134
+ it 'should not always add db index with add_index' do
135
135
  content = <<-EOF
136
136
  ActiveRecord::Schema.define(version: 20100603080629) do
137
137
  create_table "comments", force: true do |t|
@@ -153,7 +153,7 @@ module RailsBestPractices
153
153
  expect(runner.errors.size).to eq(0)
154
154
  end
155
155
 
156
- it "should not always add db index with t.index" do
156
+ it 'should not always add db index with t.index' do
157
157
  # e.g. schema_plus creates indices like this https://github.com/lomba/schema_plus
158
158
  content = <<-EOF
159
159
  ActiveRecord::Schema.define(version: 20100603080629) do
@@ -171,7 +171,7 @@ module RailsBestPractices
171
171
  expect(runner.errors.size).to eq(0)
172
172
  end
173
173
 
174
- it "should not always add db index with only _type column" do
174
+ it 'should not always add db index with only _type column' do
175
175
  content = <<-EOF
176
176
  ActiveRecord::Schema.define(version: 20100603080629) do
177
177
  create_table "versions", force: true do |t|
@@ -184,7 +184,7 @@ module RailsBestPractices
184
184
  expect(runner.errors.size).to eq(0)
185
185
  end
186
186
 
187
- it "should not always add db index with multi-column index" do
187
+ it 'should not always add db index with multi-column index' do
188
188
  content = <<-EOF
189
189
  ActiveRecord::Schema.define(version: 20100603080629) do
190
190
  create_table "versions", force: true do |t|
@@ -201,7 +201,7 @@ module RailsBestPractices
201
201
  expect(runner.errors.size).to eq(0)
202
202
  end
203
203
 
204
- it "should not always add db index if there is an index contains more columns" do
204
+ it 'should not always add db index if there is an index contains more columns' do
205
205
  content = <<-EOF
206
206
  ActiveRecord::Schema.define(version: 20100603080629) do
207
207
  create_table "taggings", force: true do |t|
@@ -218,7 +218,7 @@ module RailsBestPractices
218
218
  expect(runner.errors.size).to eq(0)
219
219
  end
220
220
 
221
- it "should not always add db index if two indexes for polymorphic association" do
221
+ it 'should not always add db index if two indexes for polymorphic association' do
222
222
  content =<<-EOF
223
223
  ActiveRecord::Schema.define(version: 20100603080629) do
224
224
  create_table "taggings", force: true do |t|
@@ -236,7 +236,7 @@ module RailsBestPractices
236
236
  expect(runner.errors.size).to eq(0)
237
237
  end
238
238
 
239
- it "should not always add db index if table does not exist" do
239
+ it 'should not always add db index if table does not exist' do
240
240
  content =<<-EOF
241
241
  ActiveRecord::Schema.define(version: 20100603080629) do
242
242
  create_table "comments", force: true do |t|
@@ -249,7 +249,7 @@ module RailsBestPractices
249
249
  expect(runner.errors.size).to eq(0)
250
250
  end
251
251
 
252
- it "should always add db index if association_name is different to foreign_key" do
252
+ it 'should always add db index if association_name is different to foreign_key' do
253
253
  content =<<-EOF
254
254
  class Comment < ActiveRecord::Base
255
255
  belongs_to :commentor, class_name: "User"
@@ -273,10 +273,10 @@ module RailsBestPractices
273
273
  runner.review('db/schema.rb', content)
274
274
  runner.after_review
275
275
  expect(runner.errors.size).to eq(1)
276
- expect(runner.errors[0].to_s).to eq("db/schema.rb:2 - always add db index (comments => [commentor_id])")
276
+ expect(runner.errors[0].to_s).to eq('db/schema.rb:2 - always add db index (comments => [commentor_id])')
277
277
  end
278
278
 
279
- it "should not check ignored files" do
279
+ it 'should not check ignored files' do
280
280
  runner = Core::Runner.new(reviews: AlwaysAddDbIndexReview.new(ignored_files: /db\/schema/))
281
281
  content = <<-EOF
282
282
  ActiveRecord::Schema.define(version: 20100603080629) do
@@ -296,7 +296,7 @@ module RailsBestPractices
296
296
  expect(runner.errors.size).to eq(0)
297
297
  end
298
298
 
299
- it "should detect index option in column creation" do
299
+ it 'should detect index option in column creation' do
300
300
  content = <<-EOF
301
301
  ActiveRecord::Schema.define(version: 20100603080629) do
302
302
  create_table "comments", force: true do |t|
@@ -319,8 +319,8 @@ module RailsBestPractices
319
319
  runner.review('db/schema.rb', content)
320
320
  runner.after_review
321
321
  expect(runner.errors.size).to eq(2)
322
- expect(runner.errors[0].to_s).to eq("db/schema.rb:2 - always add db index (comments => [image_id])")
323
- expect(runner.errors[1].to_s).to eq("db/schema.rb:2 - always add db index (comments => [link_id])")
322
+ expect(runner.errors[0].to_s).to eq('db/schema.rb:2 - always add db index (comments => [image_id])')
323
+ expect(runner.errors[1].to_s).to eq('db/schema.rb:2 - always add db index (comments => [link_id])')
324
324
  end
325
325
  end
326
326
  end
@@ -5,8 +5,8 @@ module RailsBestPractices
5
5
  describe CheckDestroyReturnValueReview do
6
6
  let(:runner) { Core::Runner.new(reviews: CheckDestroyReturnValueReview.new) }
7
7
 
8
- describe "check_destroy_return_value" do
9
- it "should warn you if you fail to check the destroy return value" do
8
+ describe 'check_destroy_return_value' do
9
+ it 'should warn you if you fail to check the destroy return value' do
10
10
  content =<<-EOF
11
11
  def my_method
12
12
  post = Posts.create do |p|
@@ -20,7 +20,7 @@ module RailsBestPractices
20
20
  expect(runner.errors[0].to_s).to eq("app/helpers/posts_helper.rb:5 - check 'destroy' return value or use 'destroy!'")
21
21
  end
22
22
 
23
- it "should allow destroy return value if assigned to a var" do
23
+ it 'should allow destroy return value if assigned to a var' do
24
24
  content =<<-EOF
25
25
  def my_method
26
26
  post = Posts.create do |p|
@@ -33,7 +33,7 @@ module RailsBestPractices
33
33
  expect(runner.errors.size).to eq(0)
34
34
  end
35
35
 
36
- it "should allow destroy return value used in if" do
36
+ it 'should allow destroy return value used in if' do
37
37
  content =<<-EOF
38
38
  def my_method
39
39
  post = Posts.create do |p|
@@ -50,7 +50,7 @@ module RailsBestPractices
50
50
  expect(runner.errors.size).to eq(0)
51
51
  end
52
52
 
53
- it "should allow destroy return value used in elsif" do
53
+ it 'should allow destroy return value used in elsif' do
54
54
  content =<<-EOF
55
55
  def my_method
56
56
  post = Posts.create do |p|
@@ -69,7 +69,7 @@ module RailsBestPractices
69
69
  expect(runner.errors.size).to eq(0)
70
70
  end
71
71
 
72
- it "should allow destroy return value used in unless" do
72
+ it 'should allow destroy return value used in unless' do
73
73
  content =<<-EOF
74
74
  def my_method
75
75
  unless @post.destroy
@@ -81,7 +81,7 @@ module RailsBestPractices
81
81
  expect(runner.errors.size).to eq(0)
82
82
  end
83
83
 
84
- it "should allow destroy return value used in if_mod" do
84
+ it 'should allow destroy return value used in if_mod' do
85
85
  content =<<-EOF
86
86
  def my_method
87
87
  post = Posts.create do |p|
@@ -94,7 +94,7 @@ module RailsBestPractices
94
94
  expect(runner.errors.size).to eq(0)
95
95
  end
96
96
 
97
- it "should allow destroy return value used in unless_mod" do
97
+ it 'should allow destroy return value used in unless_mod' do
98
98
  content =<<-EOF
99
99
  def my_method
100
100
  post = Posts.create do |p|
@@ -107,7 +107,7 @@ module RailsBestPractices
107
107
  expect(runner.errors.size).to eq(0)
108
108
  end
109
109
 
110
- it "should allow destroy return value used in unless with &&" do
110
+ it 'should allow destroy return value used in unless with &&' do
111
111
  content =<<-EOF
112
112
  def my_method
113
113
  unless some_method(1) && other_method(2) && @post.destroy
@@ -119,7 +119,7 @@ module RailsBestPractices
119
119
  expect(runner.errors.size).to eq(0)
120
120
  end
121
121
 
122
- it "should allow destroy!" do
122
+ it 'should allow destroy!' do
123
123
  content =<<-EOF
124
124
  def my_method
125
125
  post = Posts.create do |p|
@@ -133,7 +133,7 @@ module RailsBestPractices
133
133
  end
134
134
  end
135
135
 
136
- it "should not check ignored files" do
136
+ it 'should not check ignored files' do
137
137
  runner = Core::Runner.new(reviews: CheckDestroyReturnValueReview.new(ignored_files: /helpers/))
138
138
  content =<<-EOF
139
139
  def my_method
@@ -5,8 +5,8 @@ module RailsBestPractices
5
5
  describe CheckSaveReturnValueReview do
6
6
  let(:runner) { Core::Runner.new(reviews: CheckSaveReturnValueReview.new) }
7
7
 
8
- describe "check_save_return_value" do
9
- it "should warn you if you fail to check save return value" do
8
+ describe 'check_save_return_value' do
9
+ it 'should warn you if you fail to check save return value' do
10
10
  content =<<-EOF
11
11
  def my_method
12
12
  post = Posts.new do |p|
@@ -20,7 +20,7 @@ module RailsBestPractices
20
20
  expect(runner.errors[0].to_s).to eq("app/helpers/posts_helper.rb:5 - check 'save' return value or use 'save!'")
21
21
  end
22
22
 
23
- it "should allow save return value assigned to var" do
23
+ it 'should allow save return value assigned to var' do
24
24
  content =<<-EOF
25
25
  def my_method
26
26
  post = Posts.new do |p|
@@ -33,7 +33,7 @@ module RailsBestPractices
33
33
  expect(runner.errors.size).to eq(0)
34
34
  end
35
35
 
36
- it "should allow save return value used in if" do
36
+ it 'should allow save return value used in if' do
37
37
  content =<<-EOF
38
38
  def my_method
39
39
  post = Posts.new do |p|
@@ -50,7 +50,7 @@ module RailsBestPractices
50
50
  expect(runner.errors.size).to eq(0)
51
51
  end
52
52
 
53
- it "should allow save return value used in elsif" do
53
+ it 'should allow save return value used in elsif' do
54
54
  content =<<-EOF
55
55
  def my_method
56
56
  post = Posts.new do |p|
@@ -69,7 +69,7 @@ module RailsBestPractices
69
69
  expect(runner.errors.size).to eq(0)
70
70
  end
71
71
 
72
- it "should allow save return value used in unless" do
72
+ it 'should allow save return value used in unless' do
73
73
  content =<<-EOF
74
74
  def my_method
75
75
  unless @post.save
@@ -81,7 +81,7 @@ module RailsBestPractices
81
81
  expect(runner.errors.size).to eq(0)
82
82
  end
83
83
 
84
- it "should allow save return value used in if_mod" do
84
+ it 'should allow save return value used in if_mod' do
85
85
  content =<<-EOF
86
86
  def my_method
87
87
  post = Posts.new do |p|
@@ -94,7 +94,7 @@ module RailsBestPractices
94
94
  expect(runner.errors.size).to eq(0)
95
95
  end
96
96
 
97
- it "should allow save return value used in unless_mod" do
97
+ it 'should allow save return value used in unless_mod' do
98
98
  content =<<-EOF
99
99
  def my_method
100
100
  post = Posts.new do |p|
@@ -107,7 +107,7 @@ module RailsBestPractices
107
107
  expect(runner.errors.size).to eq(0)
108
108
  end
109
109
 
110
- it "should allow save return value used in unless with &&" do
110
+ it 'should allow save return value used in unless with &&' do
111
111
  content =<<-EOF
112
112
  def my_method
113
113
  unless some_method(1) && other_method(2) && @post.save
@@ -119,7 +119,7 @@ module RailsBestPractices
119
119
  expect(runner.errors.size).to eq(0)
120
120
  end
121
121
 
122
- it "should allow save!" do
122
+ it 'should allow save!' do
123
123
  content =<<-EOF
124
124
  def my_method
125
125
  post = Posts.new do |p|
@@ -132,7 +132,7 @@ module RailsBestPractices
132
132
  expect(runner.errors.size).to eq(0)
133
133
  end
134
134
 
135
- it "should warn you if you fail to check update_attributes return value" do
135
+ it 'should warn you if you fail to check update_attributes return value' do
136
136
  content =<<-EOF
137
137
  def my_method
138
138
  @post.update_attributes params
@@ -143,7 +143,7 @@ module RailsBestPractices
143
143
  expect(runner.errors[0].to_s).to eq("app/helpers/posts_helper.rb:2 - check 'update_attributes' return value or use 'update_attributes!'")
144
144
  end
145
145
 
146
- it "should allow update_attributes if return value is checked" do
146
+ it 'should allow update_attributes if return value is checked' do
147
147
  content =<<-EOF
148
148
  def my_method
149
149
  @post.update_attributes(params) or raise "failed to save"
@@ -153,7 +153,7 @@ module RailsBestPractices
153
153
  expect(runner.errors.size).to eq(0)
154
154
  end
155
155
 
156
- it "is not clever enough to allow update_attributes if value is returned from method" do
156
+ it 'is not clever enough to allow update_attributes if value is returned from method' do
157
157
  # This review is not clever enough to do a full liveness analysis
158
158
  # of whether the returned value is used in all cases.
159
159
  content =<<-EOF
@@ -177,7 +177,7 @@ module RailsBestPractices
177
177
  expect(runner.errors[0].to_s).to eq("app/controllers/posts_controller.rb:12 - check 'update_attributes' return value or use 'update_attributes!'")
178
178
  end
179
179
 
180
- it "should warn you if you use create which is always unsafe" do
180
+ it 'should warn you if you use create which is always unsafe' do
181
181
  content =<<-EOF
182
182
  class Post < ActiveRecord::Base
183
183
  end
@@ -196,7 +196,7 @@ module RailsBestPractices
196
196
  expect(runner.errors[0].to_s).to eq("app/helpers/posts_helper.rb:2 - use 'create!' instead of 'create' as the latter may not always save")
197
197
  end
198
198
 
199
- it "should warn you if you use create with a block which is always unsafe" do
199
+ it 'should warn you if you use create with a block which is always unsafe' do
200
200
  content =<<-EOF
201
201
  module Blog
202
202
  class Post < ActiveRecord::Base
@@ -224,7 +224,7 @@ module RailsBestPractices
224
224
  expect(runner.errors[0].to_s).to eq("app/helpers/blog/posts_helper.rb:4 - use 'create!' instead of 'create' as the latter may not always save")
225
225
  end
226
226
 
227
- it "allows create called on non-model classes" do
227
+ it 'allows create called on non-model classes' do
228
228
  content =<<-EOF
229
229
  def my_method
230
230
  pk12 = OpenSSL::PKCS12.create(
@@ -239,7 +239,7 @@ module RailsBestPractices
239
239
  end
240
240
  end
241
241
 
242
- it "should not check ignored files" do
242
+ it 'should not check ignored files' do
243
243
  runner = Core::Runner.new(reviews: CheckSaveReturnValueReview.new(ignored_files: /helpers/))
244
244
  content =<<-EOF
245
245
  def my_method