rails_best_practices 1.10.1 → 1.11.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 (76) hide show
  1. data/.gitignore +1 -0
  2. data/README.md +11 -6
  3. data/assets/result.html.erb +76 -46
  4. data/install_supported_rubies.sh +3 -0
  5. data/lib/rails_best_practices.rb +2 -1
  6. data/lib/rails_best_practices/analyzer.rb +10 -8
  7. data/lib/rails_best_practices/core.rb +0 -4
  8. data/lib/rails_best_practices/core/check.rb +41 -117
  9. data/lib/rails_best_practices/core/error.rb +3 -9
  10. data/lib/rails_best_practices/core/runner.rb +20 -80
  11. data/lib/rails_best_practices/lexicals/long_line_check.rb +2 -1
  12. data/lib/rails_best_practices/lexicals/remove_tab_check.rb +1 -3
  13. data/lib/rails_best_practices/lexicals/remove_trailing_whitespace_check.rb +1 -3
  14. data/lib/rails_best_practices/prepares/config_prepare.rb +1 -1
  15. data/lib/rails_best_practices/prepares/controller_prepare.rb +7 -8
  16. data/lib/rails_best_practices/prepares/helper_prepare.rb +2 -2
  17. data/lib/rails_best_practices/prepares/mailer_prepare.rb +1 -1
  18. data/lib/rails_best_practices/prepares/model_prepare.rb +6 -7
  19. data/lib/rails_best_practices/prepares/route_prepare.rb +12 -13
  20. data/lib/rails_best_practices/prepares/schema_prepare.rb +2 -2
  21. data/lib/rails_best_practices/reviews/add_model_virtual_attribute_review.rb +19 -15
  22. data/lib/rails_best_practices/reviews/always_add_db_index_review.rb +10 -17
  23. data/lib/rails_best_practices/reviews/dry_bundler_in_capistrano_review.rb +2 -5
  24. data/lib/rails_best_practices/reviews/hash_syntax_review.rb +3 -30
  25. data/lib/rails_best_practices/reviews/isolate_seed_data_review.rb +7 -10
  26. data/lib/rails_best_practices/reviews/keep_finders_on_their_own_model_review.rb +5 -9
  27. data/lib/rails_best_practices/reviews/law_of_demeter_review.rb +10 -13
  28. data/lib/rails_best_practices/reviews/move_code_into_controller_review.rb +6 -9
  29. data/lib/rails_best_practices/reviews/move_code_into_helper_review.rb +2 -5
  30. data/lib/rails_best_practices/reviews/move_code_into_model_review.rb +7 -13
  31. data/lib/rails_best_practices/reviews/move_finder_to_named_scope_review.rb +3 -6
  32. data/lib/rails_best_practices/reviews/move_model_logic_into_model_review.rb +6 -9
  33. data/lib/rails_best_practices/reviews/needless_deep_nesting_review.rb +3 -6
  34. data/lib/rails_best_practices/reviews/not_use_default_route_review.rb +4 -7
  35. data/lib/rails_best_practices/reviews/not_use_time_ago_in_words_review.rb +2 -5
  36. data/lib/rails_best_practices/reviews/overuse_route_customizations_review.rb +7 -10
  37. data/lib/rails_best_practices/reviews/protect_mass_assignment_review.rb +2 -5
  38. data/lib/rails_best_practices/reviews/remove_empty_helpers_review.rb +2 -5
  39. data/lib/rails_best_practices/reviews/remove_unused_methods_in_controllers_review.rb +8 -6
  40. data/lib/rails_best_practices/reviews/remove_unused_methods_in_helpers_review.rb +1 -2
  41. data/lib/rails_best_practices/reviews/remove_unused_methods_in_models_review.rb +4 -5
  42. data/lib/rails_best_practices/reviews/replace_complex_creation_with_factory_method_review.rb +9 -12
  43. data/lib/rails_best_practices/reviews/replace_instance_variable_with_local_variable_review.rb +2 -13
  44. data/lib/rails_best_practices/reviews/restrict_auto_generated_routes_review.rb +18 -26
  45. data/lib/rails_best_practices/reviews/review.rb +6 -7
  46. data/lib/rails_best_practices/reviews/simplify_render_in_controllers_review.rb +2 -5
  47. data/lib/rails_best_practices/reviews/simplify_render_in_views_review.rb +2 -5
  48. data/lib/rails_best_practices/reviews/use_before_filter_review.rb +2 -5
  49. data/lib/rails_best_practices/reviews/use_model_association_review.rb +11 -14
  50. data/lib/rails_best_practices/reviews/use_multipart_alternative_as_content_type_of_email_review.rb +11 -8
  51. data/lib/rails_best_practices/reviews/use_observer_review.rb +8 -11
  52. data/lib/rails_best_practices/reviews/use_parentheses_in_method_def_review.rb +1 -1
  53. data/lib/rails_best_practices/reviews/use_query_attribute_review.rb +12 -18
  54. data/lib/rails_best_practices/reviews/use_say_with_time_in_migrations_review.rb +7 -10
  55. data/lib/rails_best_practices/reviews/use_scope_access_review.rb +4 -10
  56. data/lib/rails_best_practices/version.rb +1 -1
  57. data/rails_best_practices.gemspec +1 -1
  58. data/rails_best_practices.yml +5 -5
  59. data/spec/rails_best_practices/core/check_spec.rb +0 -67
  60. data/spec/rails_best_practices/prepares/controller_prepare_spec.rb +0 -1
  61. data/spec/rails_best_practices/prepares/model_prepare_spec.rb +0 -4
  62. data/spec/rails_best_practices/reviews/hash_syntax_review_spec.rb +3 -30
  63. data/spec/rails_best_practices/reviews/remove_unused_methods_in_controllers_review_spec.rb +22 -0
  64. data/spec/rails_best_practices/reviews/remove_unused_methods_in_models_review_spec.rb +19 -0
  65. data/spec/rails_best_practices/reviews/use_multipart_alternative_as_content_type_of_email_review_spec.rb +2 -2
  66. data/spec/spec_helper.rb +0 -4
  67. metadata +28 -41
  68. data/Gemfile.lock +0 -71
  69. data/lib/rails_best_practices/core/checking_visitor.rb +0 -80
  70. data/lib/rails_best_practices/core/nil.rb +0 -37
  71. data/lib/rails_best_practices/core_ext/enumerable.rb +0 -9
  72. data/lib/rails_best_practices/core_ext/sexp.rb +0 -840
  73. data/spec/rails_best_practices/core/checking_visitor_spec.rb +0 -79
  74. data/spec/rails_best_practices/core/nil_spec.rb +0 -37
  75. data/spec/rails_best_practices/core_ext/enumerable_spec.rb +0 -7
  76. data/spec/rails_best_practices/core_ext/sexp_spec.rb +0 -613
@@ -3,10 +3,10 @@ require 'rails_best_practices/reviews/review'
3
3
 
4
4
  module RailsBestPractices
5
5
  module Reviews
6
- # Review a migration file to make sure to use say or say_with_time for customized data changes
6
+ # Review a migration file to make sure to use say or say_with_time for customized data changes
7
7
  # to produce a more readable output.
8
8
  #
9
- # See the best practice detials here
9
+ # See the best practice detials here
10
10
  # http://rails-bestpractices.com/posts/46-use-say-and-say_with_time-in-migrations-to-make-a-useful-migration-log.
11
11
  #
12
12
  # Implementation:
@@ -19,31 +19,28 @@ module RailsBestPractices
19
19
  class UseSayWithTimeInMigrationsReview < Review
20
20
  interesting_nodes :defs
21
21
  interesting_files MIGRATION_FILES
22
+ url "http://rails-bestpractices.com/posts/46-use-say-and-say_with_time-in-migrations-to-make-a-useful-migration-log"
22
23
 
23
24
  WITH_SAY_METHODS = %w(say say_with_time)
24
25
 
25
- def url
26
- "http://rails-bestpractices.com/posts/46-use-say-and-say_with_time-in-migrations-to-make-a-useful-migration-log"
27
- end
28
-
29
- # check a class method define node to see if there are method calls that need to be wrapped by say
26
+ # check a class method define node to see if there are method calls that need to be wrapped by say
30
27
  # or say_with_time.
31
28
  #
32
29
  # it will check the first block node,
33
30
  # if any method call whose message is not default migration methods in the block node,
34
31
  # then such method call should be wrapped by say or say_with_time
35
- def start_defs(node)
32
+ add_callback :start_defs do |node|
36
33
  node.body.statements.each do |child_node|
37
34
  next if child_node.grep_nodes_count(sexp_type: [:fcall, :command], message: WITH_SAY_METHODS) > 0
38
35
 
39
- subject_node = if :method_add_block == child_node.sexp_type
36
+ receiver_node = if :method_add_block == child_node.sexp_type
40
37
  child_node[1]
41
38
  elsif :method_add_arg == child_node.sexp_type
42
39
  child_node[1]
43
40
  else
44
41
  child_node
45
42
  end
46
- if :call == subject_node.sexp_type
43
+ if :call == receiver_node.sexp_type
47
44
  add_error("use say with time in migrations", node.file, child_node.line)
48
45
  end
49
46
  end
@@ -18,23 +18,17 @@ module RailsBestPractices
18
18
  class UseScopeAccessReview < Review
19
19
  interesting_nodes :if, :unless, :elsif
20
20
  interesting_files CONTROLLER_FILES
21
-
22
- def url
23
- "http://rails-bestpractices.com/posts/3-use-scope-access"
24
- end
21
+ url "http://rails-bestpractices.com/posts/3-use-scope-access"
25
22
 
26
23
  # check if node.
27
24
  #
28
25
  # if it is a method call compared with current_user or current_user.id,
29
26
  # and there is a redirect_to method call in the block body,
30
27
  # then it should be replaced by using scope access.
31
- def start_if(node)
28
+ add_callback :start_if, :start_unless, :start_elsif do |node|
32
29
  add_error "use scope access" if current_user_redirect?(node)
33
30
  end
34
31
 
35
- alias_method :start_unless, :start_if
36
- alias_method :start_elsif, :start_if
37
-
38
32
  private
39
33
  # check a if node to see
40
34
  #
@@ -49,14 +43,14 @@ module RailsBestPractices
49
43
  end
50
44
  results = all_conditions.map do |condition_node|
51
45
  ["==", "!="].include?(condition_node.message.to_s) &&
52
- (current_user?(condition_node.argument) || current_user?(condition_node.subject))
46
+ (current_user?(condition_node.argument) || current_user?(condition_node.receiver))
53
47
  end
54
48
  results.any? { |result| result == true } && node.body.grep_node(message: "redirect_to")
55
49
  end
56
50
 
57
51
  # check a call node to see if it uses current_user, or current_user.id.
58
52
  def current_user?(node)
59
- "current_user" == node.to_s || ("current_user" == node.subject.to_s && "id" == node.message.to_s)
53
+ "current_user" == node.to_s || ("current_user" == node.receiver.to_s && "id" == node.message.to_s)
60
54
  end
61
55
  end
62
56
  end
@@ -1,4 +1,4 @@
1
1
  # encoding: utf-8
2
2
  module RailsBestPractices
3
- VERSION = "1.10.1"
3
+ VERSION = "1.11.0"
4
4
  end
@@ -13,7 +13,7 @@ Gem::Specification.new do |s|
13
13
 
14
14
  s.required_rubygems_version = ">= 1.3.6"
15
15
 
16
- s.add_dependency("sexp_processor")
16
+ s.add_dependency("code_analyzer")
17
17
  s.add_dependency("progressbar")
18
18
  s.add_dependency("colored")
19
19
  s.add_dependency("erubis")
@@ -1,11 +1,11 @@
1
1
  AddModelVirtualAttributeCheck: { }
2
2
  AlwaysAddDbIndexCheck: { }
3
3
  DryBundlerInCapistranoCheck: { }
4
- HashSyntaxCheck: { only_symbol: false, only_string: false }
4
+ #HashSyntaxCheck: { }
5
5
  IsolateSeedDataCheck: { }
6
6
  KeepFindersOnTheirOwnModelCheck: { }
7
7
  LawOfDemeterCheck: { }
8
- LongLineCheck: { max_line_length: 80 }
8
+ #LongLineCheck: { max_line_length: 80 }
9
9
  MoveCodeIntoControllerCheck: { }
10
10
  MoveCodeIntoHelperCheck: { array_count: 3 }
11
11
  MoveCodeIntoModelCheck: { use_count: 2 }
@@ -17,7 +17,7 @@ NotUseTimeAgoInWordsCheck: { }
17
17
  OveruseRouteCustomizationsCheck: { customize_count: 3 }
18
18
  ProtectMassAssignmentCheck: { }
19
19
  RemoveEmptyHelpersCheck: { }
20
- RemoveTabCheck: { }
20
+ #RemoveTabCheck: { }
21
21
  RemoveTrailingWhitespaceCheck: { }
22
22
  RemoveUnusedMethodsInControllersCheck: { except_methods: [] }
23
23
  RemoveUnusedMethodsInHelpersCheck: { except_methods: [] }
@@ -27,10 +27,10 @@ ReplaceInstanceVariableWithLocalVariableCheck: { }
27
27
  RestrictAutoGeneratedRoutesCheck: { }
28
28
  SimplifyRenderInControllersCheck: { }
29
29
  SimplifyRenderInViewsCheck: { }
30
- UseBeforeFilterCheck: { customize_count: 2 }
30
+ #UseBeforeFilterCheck: { customize_count: 2 }
31
31
  UseModelAssociationCheck: { }
32
32
  UseMultipartAlternativeAsContentTypeOfEmailCheck: { }
33
- UseParenthesesInMethodDefCheck: { }
33
+ #UseParenthesesInMethodDefCheck: { }
34
34
  UseObserverCheck: { }
35
35
  UseQueryAttributeCheck: { }
36
36
  UseSayWithTimeInMigrationsCheck: { }
@@ -4,73 +4,6 @@ module RailsBestPractices::Core
4
4
  describe Check do
5
5
  let(:check) { Check.new }
6
6
 
7
- it "should get empty interesting nodes" do
8
- check.interesting_nodes.should == []
9
- end
10
-
11
- it "should match none of interesting files" do
12
- check.interesting_files.should == []
13
- end
14
-
15
- context "node_start" do
16
- it "should call start_if" do
17
- node = stub(sexp_type: :if)
18
- check.should_receive(:send).with("start_if", node)
19
- check.node_start(node)
20
- end
21
-
22
- it "should call start_call" do
23
- node = stub(sexp_type: :call)
24
- check.should_receive(:send).with("start_call", node)
25
- check.node_start(node)
26
- end
27
-
28
- it "should print node if debug mode" do
29
- node = stub(sexp_type: :call)
30
- Check.class_eval { debug }
31
- check.should_receive(:send).with("start_call", node)
32
- check.should_receive(:ap).with(node)
33
- check.node_start(node)
34
- Check.class_eval { @debug = false }
35
- end
36
- end
37
-
38
- context "node_end" do
39
- it "should call end_if" do
40
- node = stub(sexp_type: :if)
41
- check.should_receive(:send).with("end_if", node)
42
- check.node_end(node)
43
- end
44
-
45
- it "should call end_call" do
46
- node = stub(sexp_type: :call)
47
- check.should_receive(:send).with("end_call", node)
48
- check.node_end(node)
49
- end
50
- end
51
-
52
- context "callback" do
53
- it "should add callback to start_call" do
54
- execute = false
55
- check.class.add_callback "start_call" do
56
- execute = true
57
- end
58
- node = stub(sexp_type: :call)
59
- check.node_start(node)
60
- execute.should be_true
61
- end
62
-
63
- it "should ad callbacks to end_call" do
64
- execute = false
65
- check.class.add_callback "end_call" do
66
- execute = true
67
- end
68
- node = stub(sexp_type: :call)
69
- check.node_end(node)
70
- execute.should be_true
71
- end
72
- end
73
-
74
7
  context "debug" do
75
8
  it "should be debug mode" do
76
9
  Check.debug
@@ -4,7 +4,6 @@ module RailsBestPractices
4
4
  module Prepares
5
5
  describe ControllerPrepare do
6
6
  let(:runner) { Core::Runner.new(prepares: [ControllerPrepare.new, HelperPrepare.new]) }
7
- before(:each) { runner.whiny = true }
8
7
 
9
8
  context "methods" do
10
9
  it "should parse controller methods" do
@@ -5,10 +5,6 @@ module RailsBestPractices
5
5
  describe ModelPrepare do
6
6
  let(:runner) { Core::Runner.new(prepares: ModelPrepare.new) }
7
7
 
8
- before :each do
9
- runner.whiny = true
10
- end
11
-
12
8
  context "models" do
13
9
  it "class_name with modules ::" do
14
10
  content =<<-EOF
@@ -16,15 +16,14 @@ module RailsBestPractices
16
16
  runner.errors[0].to_s.should == "app/models/user.rb:2 - change Hash Syntax to 1.9"
17
17
  end
18
18
 
19
- it "should find 1.8 Hash with symbol" do
19
+ it "should not find 1.8 Hash with string" do
20
20
  content =<<-EOF
21
21
  class User < ActiveRecord::Base
22
22
  CONST = { "foo" => "bar" }
23
23
  end
24
24
  EOF
25
25
  runner.review('app/models/user.rb', content)
26
- runner.should have(1).errors
27
- runner.errors[0].to_s.should == "app/models/user.rb:2 - change Hash Syntax to 1.9"
26
+ runner.should have(0).errors
28
27
  end
29
28
 
30
29
  it "should not alert on 1.9 Syntax" do
@@ -37,32 +36,6 @@ module RailsBestPractices
37
36
  runner.should have(0).errors
38
37
  end
39
38
 
40
- it "should only check symbol syntax" do
41
- runner = Core::Runner.new(reviews: HashSyntaxReview.new(only_symbol: true))
42
- content =<<-EOF
43
- class User < ActiveRecord::Base
44
- SYMBOL_CONST = { :foo => :bar }
45
- STRING_CONST = { "foo" => "bar" }
46
- end
47
- EOF
48
- runner.review('app/models/user.rb', content)
49
- runner.should have(1).errors
50
- runner.errors[0].to_s.should == "app/models/user.rb:2 - change Hash Syntax to 1.9"
51
- end
52
-
53
- it "should only check string syntax" do
54
- runner = Core::Runner.new(reviews: HashSyntaxReview.new(only_string: true))
55
- content =<<-EOF
56
- class User < ActiveRecord::Base
57
- SYMBOL_CONST = { :foo => :bar }
58
- STRING_CONST = { "foo" => "bar" }
59
- end
60
- EOF
61
- runner.review('app/models/user.rb', content)
62
- runner.should have(1).errors
63
- runner.errors[0].to_s.should == "app/models/user.rb:3 - change Hash Syntax to 1.9"
64
- end
65
-
66
39
  it "should ignore haml_out" do
67
40
  content =<<-EOF
68
41
  %div{ class: "foo1" }
@@ -83,7 +56,7 @@ module RailsBestPractices
83
56
 
84
57
  it "should not consider hash with charaters not valid for symbol" do
85
58
  content =<<-EOF
86
- subject.stub(:` => 'Error')
59
+ receiver.stub(:` => 'Error')
87
60
  EOF
88
61
  runner.review('app/models/post.rb', content)
89
62
  runner.should have(0).errors
@@ -80,6 +80,28 @@ module RailsBestPractices
80
80
  runner.should have(0).errors
81
81
  end
82
82
 
83
+ it "should not remove unused methods for layout" do
84
+ content =<<-EOF
85
+ RailsBestPracticesCom::Application.routes.draw do
86
+ resources :posts
87
+ end
88
+ EOF
89
+ runner.prepare('config/routes.rb', content)
90
+ content =<<-EOF
91
+ class PostsController < ActiveRecord::Base
92
+ layout :choose_layout
93
+ private
94
+ def choose_layout
95
+ "default"
96
+ end
97
+ end
98
+ EOF
99
+ runner.prepare('app/controllers/posts_controller.rb', content)
100
+ runner.review('app/controllers/posts_controller.rb', content)
101
+ runner.after_review
102
+ runner.should have(0).errors
103
+ end
104
+
83
105
  it "should not remove inherited_resources methods" do
84
106
  content =<<-EOF
85
107
  RailsBestPracticesCom::Application.routes.draw do
@@ -670,6 +670,25 @@ module RailsBestPractices
670
670
  end
671
671
  end
672
672
 
673
+ it "should not remove unused methods for rabl view" do
674
+ content =<<-EOF
675
+ class User
676
+ def first_name; end
677
+ def last_name; end
678
+ end
679
+ EOF
680
+ runner.prepare("app/models/user.rb", content)
681
+ runner.review("app/models/user.rb", content)
682
+ content =<<-EOF
683
+ node :full_name do |u|
684
+ u.first_name + " " + u.last_name
685
+ end
686
+ EOF
687
+ runner.review("app/views/users/show.json.rabl", content)
688
+ runner.after_review
689
+ runner.should have(0).errors
690
+ end
691
+
673
692
  it "should not skip :call as call message" do
674
693
  content =<<-EOF
675
694
  module DateRange
@@ -31,7 +31,7 @@ module RailsBestPractices
31
31
  <<-EOF
32
32
  class ProjectMailer < ActionMailer::Base
33
33
  def send_email(email)
34
- subject email.subject
34
+ receiver email.receiver
35
35
  from email.from
36
36
  recipients email.recipients
37
37
  sent_on Time.now
@@ -145,7 +145,7 @@ module RailsBestPractices
145
145
  <<-EOF
146
146
  class ProjectMailer < ActionMailer::Base
147
147
  def send_email(email)
148
- subject email.subject
148
+ receiver email.receiver
149
149
  from email.from
150
150
  recipients email.recipients
151
151
  sent_on Time.now
data/spec/spec_helper.rb CHANGED
@@ -11,7 +11,3 @@ RSpec.configure do |config|
11
11
  config.filter_run focus: true
12
12
  config.run_all_when_everything_filtered = true
13
13
  end
14
-
15
- def parse_content(content)
16
- Sexp.from_array(Ripper::SexpBuilder.new(content).parse)[1]
17
- end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_best_practices
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.10.1
4
+ version: 1.11.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-06-23 00:00:00.000000000 Z
12
+ date: 2012-09-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: sexp_processor
16
- requirement: &70244299371240 !ruby/object:Gem::Requirement
15
+ name: code_analyzer
16
+ requirement: &70092487156320 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70244299371240
24
+ version_requirements: *70092487156320
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: progressbar
27
- requirement: &70244299370320 !ruby/object:Gem::Requirement
27
+ requirement: &70092487155800 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70244299370320
35
+ version_requirements: *70092487155800
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: colored
38
- requirement: &70244299368200 !ruby/object:Gem::Requirement
38
+ requirement: &70092487171640 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70244299368200
46
+ version_requirements: *70092487171640
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: erubis
49
- requirement: &70244299367020 !ruby/object:Gem::Requirement
49
+ requirement: &70092487171160 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70244299367020
57
+ version_requirements: *70092487171160
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: i18n
60
- requirement: &70244299365100 !ruby/object:Gem::Requirement
60
+ requirement: &70092487170620 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70244299365100
68
+ version_requirements: *70092487170620
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: activesupport
71
- requirement: &70244299385840 !ruby/object:Gem::Requirement
71
+ requirement: &70092487170080 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *70244299385840
79
+ version_requirements: *70092487170080
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: awesome_print
82
- requirement: &70244299384580 !ruby/object:Gem::Requirement
82
+ requirement: &70092487169640 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: '0'
88
88
  type: :runtime
89
89
  prerelease: false
90
- version_requirements: *70244299384580
90
+ version_requirements: *70092487169640
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: rake
93
- requirement: &70244299383080 !ruby/object:Gem::Requirement
93
+ requirement: &70092487169160 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ! '>='
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: '0'
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *70244299383080
101
+ version_requirements: *70092487169160
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: rspec
104
- requirement: &70244299380940 !ruby/object:Gem::Requirement
104
+ requirement: &70092487168720 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ! '>='
@@ -109,10 +109,10 @@ dependencies:
109
109
  version: '0'
110
110
  type: :development
111
111
  prerelease: false
112
- version_requirements: *70244299380940
112
+ version_requirements: *70092487168720
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: haml
115
- requirement: &70244299379800 !ruby/object:Gem::Requirement
115
+ requirement: &70092487168240 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - ! '>='
@@ -120,10 +120,10 @@ dependencies:
120
120
  version: '0'
121
121
  type: :development
122
122
  prerelease: false
123
- version_requirements: *70244299379800
123
+ version_requirements: *70092487168240
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: slim
126
- requirement: &70244299399240 !ruby/object:Gem::Requirement
126
+ requirement: &70092487167780 !ruby/object:Gem::Requirement
127
127
  none: false
128
128
  requirements:
129
129
  - - ! '>='
@@ -131,10 +131,10 @@ dependencies:
131
131
  version: '0'
132
132
  type: :development
133
133
  prerelease: false
134
- version_requirements: *70244299399240
134
+ version_requirements: *70092487167780
135
135
  - !ruby/object:Gem::Dependency
136
136
  name: bundler
137
- requirement: &70244299396840 !ruby/object:Gem::Requirement
137
+ requirement: &70092487167340 !ruby/object:Gem::Requirement
138
138
  none: false
139
139
  requirements:
140
140
  - - ! '>='
@@ -142,7 +142,7 @@ dependencies:
142
142
  version: '0'
143
143
  type: :development
144
144
  prerelease: false
145
- version_requirements: *70244299396840
145
+ version_requirements: *70092487167340
146
146
  description: a code metric tool for rails codes, written in Ruby.
147
147
  email:
148
148
  - flyerhzm@gmail.com
@@ -157,7 +157,6 @@ files:
157
157
  - .rvmrc
158
158
  - .travis.yml
159
159
  - Gemfile
160
- - Gemfile.lock
161
160
  - Guardfile
162
161
  - MIT_LICENSE
163
162
  - README.md
@@ -170,7 +169,6 @@ files:
170
169
  - lib/rails_best_practices/command.rb
171
170
  - lib/rails_best_practices/core.rb
172
171
  - lib/rails_best_practices/core/check.rb
173
- - lib/rails_best_practices/core/checking_visitor.rb
174
172
  - lib/rails_best_practices/core/configs.rb
175
173
  - lib/rails_best_practices/core/controllers.rb
176
174
  - lib/rails_best_practices/core/error.rb
@@ -182,12 +180,9 @@ files:
182
180
  - lib/rails_best_practices/core/model_attributes.rb
183
181
  - lib/rails_best_practices/core/models.rb
184
182
  - lib/rails_best_practices/core/modules.rb
185
- - lib/rails_best_practices/core/nil.rb
186
183
  - lib/rails_best_practices/core/routes.rb
187
184
  - lib/rails_best_practices/core/runner.rb
188
- - lib/rails_best_practices/core_ext/enumerable.rb
189
185
  - lib/rails_best_practices/core_ext/erubis.rb
190
- - lib/rails_best_practices/core_ext/sexp.rb
191
186
  - lib/rails_best_practices/lexicals.rb
192
187
  - lib/rails_best_practices/lexicals/long_line_check.rb
193
188
  - lib/rails_best_practices/lexicals/remove_tab_check.rb
@@ -243,7 +238,6 @@ files:
243
238
  - spec/fixtures/lib/rails_best_practices/plugins/reviews/not_use_rails_root_review.rb
244
239
  - spec/rails_best_practices/analyzer_spec.rb
245
240
  - spec/rails_best_practices/core/check_spec.rb
246
- - spec/rails_best_practices/core/checking_visitor_spec.rb
247
241
  - spec/rails_best_practices/core/configs_spec.rb
248
242
  - spec/rails_best_practices/core/controllers_spec.rb
249
243
  - spec/rails_best_practices/core/error_spec.rb
@@ -255,12 +249,9 @@ files:
255
249
  - spec/rails_best_practices/core/model_attributes_spec.rb
256
250
  - spec/rails_best_practices/core/models_spec.rb
257
251
  - spec/rails_best_practices/core/modules_spec.rb
258
- - spec/rails_best_practices/core/nil_spec.rb
259
252
  - spec/rails_best_practices/core/routes_spec.rb
260
253
  - spec/rails_best_practices/core/runner_spec.rb
261
- - spec/rails_best_practices/core_ext/enumerable_spec.rb
262
254
  - spec/rails_best_practices/core_ext/erubis_spec.rb
263
- - spec/rails_best_practices/core_ext/sexp_spec.rb
264
255
  - spec/rails_best_practices/lexicals/long_line_check_spec.rb
265
256
  - spec/rails_best_practices/lexicals/remove_tab_check_spec.rb
266
257
  - spec/rails_best_practices/lexicals/remove_trailing_whitespace_check_spec.rb
@@ -325,7 +316,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
325
316
  version: '0'
326
317
  segments:
327
318
  - 0
328
- hash: -3797206044319773055
319
+ hash: 3856057083839728963
329
320
  required_rubygems_version: !ruby/object:Gem::Requirement
330
321
  none: false
331
322
  requirements:
@@ -342,7 +333,6 @@ test_files:
342
333
  - spec/fixtures/lib/rails_best_practices/plugins/reviews/not_use_rails_root_review.rb
343
334
  - spec/rails_best_practices/analyzer_spec.rb
344
335
  - spec/rails_best_practices/core/check_spec.rb
345
- - spec/rails_best_practices/core/checking_visitor_spec.rb
346
336
  - spec/rails_best_practices/core/configs_spec.rb
347
337
  - spec/rails_best_practices/core/controllers_spec.rb
348
338
  - spec/rails_best_practices/core/error_spec.rb
@@ -354,12 +344,9 @@ test_files:
354
344
  - spec/rails_best_practices/core/model_attributes_spec.rb
355
345
  - spec/rails_best_practices/core/models_spec.rb
356
346
  - spec/rails_best_practices/core/modules_spec.rb
357
- - spec/rails_best_practices/core/nil_spec.rb
358
347
  - spec/rails_best_practices/core/routes_spec.rb
359
348
  - spec/rails_best_practices/core/runner_spec.rb
360
- - spec/rails_best_practices/core_ext/enumerable_spec.rb
361
349
  - spec/rails_best_practices/core_ext/erubis_spec.rb
362
- - spec/rails_best_practices/core_ext/sexp_spec.rb
363
350
  - spec/rails_best_practices/lexicals/long_line_check_spec.rb
364
351
  - spec/rails_best_practices/lexicals/remove_tab_check_spec.rb
365
352
  - spec/rails_best_practices/lexicals/remove_trailing_whitespace_check_spec.rb