rails_best_practices 1.10.1 → 1.11.0

Sign up to get free protection for your applications and to get access to all the features.
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