guideline 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -12,18 +12,22 @@ module Guideline
12
12
 
13
13
  def checker
14
14
  AbcParser.new do |complexity, method, module_name, class_method_flag|
15
- if complexity > max
16
- report(
17
- :path => @current_path,
18
- :line => method.line,
19
- :message => "ABC Complexity of method<%s%s%s>%3d should be less than %d" % [
20
- module_name,
21
- class_method_flag ? "." : "#",
22
- method.method_name,
23
- complexity,
24
- max,
25
- ]
26
- )
15
+ begin
16
+ if complexity > max
17
+ report(
18
+ :path => @current_path,
19
+ :line => method.line,
20
+ :message => "ABC Complexity of method<%s%s%s>%3d should be less than %d" % [
21
+ module_name,
22
+ class_method_flag ? "." : "#",
23
+ method.method_name,
24
+ complexity,
25
+ max,
26
+ ]
27
+ )
28
+ end
29
+ rescue Exception
30
+ require "pry"; binding.pry
27
31
  end
28
32
  end
29
33
  end
@@ -69,23 +73,21 @@ module Guideline
69
73
  end
70
74
 
71
75
  add_callback :start_def do |node|
72
- @current_method = node
76
+ @current_method << node
73
77
  clear
74
78
  end
75
79
 
76
80
  add_callback :start_defs do |node|
77
- @current_method = node
81
+ @current_method << node
78
82
  clear
79
83
  end
80
84
 
81
85
  add_callback :end_def do |node|
82
- @callback.call(complexity, @current_method, current_module_name, false)
83
- @current_method = nil
86
+ @callback.call(complexity, @current_method.pop, current_module_name, false)
84
87
  end
85
88
 
86
89
  add_callback :end_defs do |node|
87
- @callback.call(complexity, @current_method, current_module_name, true)
88
- @current_method = nil
90
+ @callback.call(complexity, @current_method.pop, current_module_name, true)
89
91
  end
90
92
 
91
93
  add_callback :start_binary do |node|
@@ -95,6 +97,7 @@ module Guideline
95
97
  def initialize(*, &callback)
96
98
  clear
97
99
  @callback = callback
100
+ @current_method = []
98
101
  super
99
102
  end
100
103
 
@@ -32,6 +32,11 @@ module Guideline
32
32
  push_stacks
33
33
  end
34
34
 
35
+ def on_embexpr_end(token)
36
+ call(lineno) if has_error?
37
+ pop_stacks
38
+ end
39
+
35
40
  def on_rbrace(token)
36
41
  call(lineno) if has_error?
37
42
  pop_stacks
@@ -1,3 +1,3 @@
1
1
  module Guideline
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end
@@ -77,11 +77,17 @@ module Guideline
77
77
  end
78
78
 
79
79
  def only_pattern
80
- options[:only] || "**/*.rb"
80
+ if options[:only]
81
+ File.expand_path(options[:only])
82
+ else
83
+ File.expand_path("**/*.rb")
84
+ end
81
85
  end
82
86
 
83
87
  def except_pattern
84
- options[:except]
88
+ if options[:except]
89
+ File.expand_path(options[:except])
90
+ end
85
91
  end
86
92
  end
87
93
  end
@@ -220,6 +220,19 @@ module Guideline
220
220
  subject
221
221
  end
222
222
  end
223
+
224
+ context "when there is nested method" do
225
+ let(:script) do
226
+ <<-'EOF'
227
+ def a
228
+ def b
229
+ c
230
+ end
231
+ end
232
+ EOF
233
+ end
234
+ it { should_not have_error }
235
+ end
223
236
  end
224
237
  end
225
238
  end
@@ -19,17 +19,6 @@ module Guideline
19
19
  Pathname.new("spec/guideline/visitor_spec.rb")
20
20
  end
21
21
 
22
- context "when :only option is not specified" do
23
- it "visits all paths" do
24
- called = false
25
- checker.should_receive(:check).at_least(1) do |args|
26
- called = true if args == path
27
- end
28
- visitor.visit
29
- called.should be_true
30
- end
31
- end
32
-
33
22
  context "when :only option is specified" do
34
23
  before do
35
24
  options[:only] = "lib/**/*.rb"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: guideline
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
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-12-04 00:00:00.000000000 Z
12
+ date: 2012-12-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: slop
16
- requirement: !ruby/object:Gem::Requirement
16
+ requirement: &70221529066600 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,15 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ! '>='
28
- - !ruby/object:Gem::Version
29
- version: '0'
24
+ version_requirements: *70221529066600
30
25
  - !ruby/object:Gem::Dependency
31
26
  name: code_analyzer
32
- requirement: !ruby/object:Gem::Requirement
27
+ requirement: &70221529082560 !ruby/object:Gem::Requirement
33
28
  none: false
34
29
  requirements:
35
30
  - - ! '>='
@@ -37,15 +32,10 @@ dependencies:
37
32
  version: '0'
38
33
  type: :runtime
39
34
  prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ! '>='
44
- - !ruby/object:Gem::Version
45
- version: '0'
35
+ version_requirements: *70221529082560
46
36
  - !ruby/object:Gem::Dependency
47
37
  name: activesupport
48
- requirement: !ruby/object:Gem::Requirement
38
+ requirement: &70221529082140 !ruby/object:Gem::Requirement
49
39
  none: false
50
40
  requirements:
51
41
  - - ! '>='
@@ -53,15 +43,10 @@ dependencies:
53
43
  version: '0'
54
44
  type: :runtime
55
45
  prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
59
- - - ! '>='
60
- - !ruby/object:Gem::Version
61
- version: '0'
46
+ version_requirements: *70221529082140
62
47
  - !ruby/object:Gem::Dependency
63
48
  name: rspec
64
- requirement: !ruby/object:Gem::Requirement
49
+ requirement: &70221529081640 !ruby/object:Gem::Requirement
65
50
  none: false
66
51
  requirements:
67
52
  - - ! '>='
@@ -69,15 +54,10 @@ dependencies:
69
54
  version: 2.12.0
70
55
  type: :development
71
56
  prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
- requirements:
75
- - - ! '>='
76
- - !ruby/object:Gem::Version
77
- version: 2.12.0
57
+ version_requirements: *70221529081640
78
58
  - !ruby/object:Gem::Dependency
79
59
  name: pry
80
- requirement: !ruby/object:Gem::Requirement
60
+ requirement: &70221529081220 !ruby/object:Gem::Requirement
81
61
  none: false
82
62
  requirements:
83
63
  - - ! '>='
@@ -85,15 +65,10 @@ dependencies:
85
65
  version: '0'
86
66
  type: :development
87
67
  prerelease: false
88
- version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
- requirements:
91
- - - ! '>='
92
- - !ruby/object:Gem::Version
93
- version: '0'
68
+ version_requirements: *70221529081220
94
69
  - !ruby/object:Gem::Dependency
95
70
  name: simplecov
96
- requirement: !ruby/object:Gem::Requirement
71
+ requirement: &70221529080760 !ruby/object:Gem::Requirement
97
72
  none: false
98
73
  requirements:
99
74
  - - ! '>='
@@ -101,12 +76,7 @@ dependencies:
101
76
  version: '0'
102
77
  type: :development
103
78
  prerelease: false
104
- version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
- requirements:
107
- - - ! '>='
108
- - !ruby/object:Gem::Version
109
- version: '0'
79
+ version_requirements: *70221529080760
110
80
  description: Guideline.gem checks that your code is protectingthe rule of coding guideline
111
81
  email:
112
82
  - r7kamura@gmail.com
@@ -171,7 +141,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
171
141
  version: '0'
172
142
  requirements: []
173
143
  rubyforge_project:
174
- rubygems_version: 1.8.24
144
+ rubygems_version: 1.8.15
175
145
  signing_key:
176
146
  specification_version: 3
177
147
  summary: The guideline of your code
@@ -189,3 +159,4 @@ test_files:
189
159
  - spec/guideline/runner_spec.rb
190
160
  - spec/guideline/visitor_spec.rb
191
161
  - spec/spec_helper.rb
162
+ has_rdoc: