simplabs-excellent 1.2.1 → 1.2.2

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -1,3 +1,7 @@
1
+ = 1.2.2
2
+
3
+ * fixed specs
4
+
1
5
  = 1.2.1
2
6
 
3
7
  * renamed Error to Warning
data/VERSION.yml CHANGED
@@ -1,4 +1,4 @@
1
1
  ---
2
2
  :major: 1
3
3
  :minor: 2
4
- :patch: 1
4
+ :patch: 2
@@ -7,7 +7,7 @@ module Simplabs #:nodoc:
7
7
 
8
8
  module Excellent #:nodoc:
9
9
 
10
- VERSION = '1.2.0'
10
+ VERSION = '1.2.2'
11
11
 
12
12
  end
13
13
 
@@ -11,26 +11,26 @@ describe Simplabs::Excellent::Checks::AbcMetricMethodCheck do
11
11
  describe 'when processing assignments' do
12
12
 
13
13
  it "should find =" do
14
- content = <<-END
14
+ code = <<-END
15
15
  def method_name
16
16
  foo = 1
17
17
  end
18
18
  END
19
19
 
20
- verify_content_score(content, 1, 0, 0)
20
+ verify_code_score(code, 1, 0, 0)
21
21
  end
22
22
 
23
23
  ['*=', '/=', '%=', '+=', '<<=', '>>=', '&=', '|=', '^=', '-=', '**='].each do |assignment|
24
24
 
25
25
  it "should find #{assignment}" do
26
- content = <<-END
26
+ code = <<-END
27
27
  def method_name
28
28
  foo #{assignment} 1
29
29
  end
30
30
  END
31
31
 
32
32
  # these special assignments have score 2 since before the value is assigned, a method is called on the old value
33
- verify_content_score(content, 1, 0, 1)
33
+ verify_code_score(code, 1, 0, 1)
34
34
  end
35
35
 
36
36
  end
@@ -40,33 +40,33 @@ describe Simplabs::Excellent::Checks::AbcMetricMethodCheck do
40
40
  describe 'when processing branches' do
41
41
 
42
42
  it 'should find a virtual method call' do
43
- content = <<-END
43
+ code = <<-END
44
44
  def method_name
45
45
  call_foo
46
46
  end
47
47
  END
48
48
 
49
- verify_content_score(content, 0, 1, 0)
49
+ verify_code_score(code, 0, 1, 0)
50
50
  end
51
51
 
52
52
  it 'should find an explicit method call' do
53
- content = <<-END
53
+ code = <<-END
54
54
  def method_name
55
55
  @object.call_foo
56
56
  end
57
57
  END
58
58
 
59
- verify_content_score(content, 0, 1, 0)
59
+ verify_code_score(code, 0, 1, 0)
60
60
  end
61
61
 
62
62
  it 'should exclude a condition' do
63
- content = <<-END
63
+ code = <<-END
64
64
  def method_name
65
65
  @object.call_foo < 10
66
66
  end
67
67
  END
68
68
 
69
- verify_content_score(content, 0, 1, 1)
69
+ verify_code_score(code, 0, 1, 1)
70
70
  end
71
71
 
72
72
  end
@@ -76,13 +76,13 @@ describe Simplabs::Excellent::Checks::AbcMetricMethodCheck do
76
76
  ['==', '!=', '<=', '>=', '<', '>', '<=>', '=~'].each do |conditional|
77
77
 
78
78
  it "should find #{conditional}" do
79
- content = <<-END
79
+ code = <<-END
80
80
  def method_name
81
81
  @foo #{conditional} @bar
82
82
  end
83
83
  END
84
84
 
85
- verify_content_score(content, 0, 0, 1)
85
+ verify_code_score(code, 0, 0, 1)
86
86
  end
87
87
 
88
88
  end
@@ -90,27 +90,27 @@ describe Simplabs::Excellent::Checks::AbcMetricMethodCheck do
90
90
  end
91
91
 
92
92
  it 'should also work on singleton methods' do
93
- content = <<-END
93
+ code = <<-END
94
94
  class Class
95
95
  def self.method_name
96
96
  foo = 1
97
97
  end
98
98
  end
99
99
  END
100
- @excellent.check_content(content)
100
+ @excellent.check_code(code)
101
101
  warnings = @excellent.warnings
102
102
 
103
103
  warnings.should_not be_empty
104
104
  warnings[0].info.should == { :method => 'Class.method_name', :score => 1.0 }
105
105
  warnings[0].line_number.should == 2
106
- warnings[0].message.should == "Class.method_name has abc score of 1.0."
106
+ warnings[0].message.should == 'Class.method_name has abc score of 1.0.'
107
107
  end
108
108
 
109
109
  end
110
110
 
111
- def verify_content_score(content, a, b, c)
111
+ def verify_code_score(code, a, b, c)
112
112
  score = Math.sqrt(a*a + b*b + c*c)
113
- @excellent.check_content(content)
113
+ @excellent.check_code(code)
114
114
  warnings = @excellent.warnings
115
115
 
116
116
  warnings.should_not be_empty
@@ -9,76 +9,76 @@ describe Simplabs::Excellent::Checks::AssignmentInConditionalCheck do
9
9
  describe '#evaluate' do
10
10
 
11
11
  it 'should accept an assignment before an if clause' do
12
- content = <<-END
12
+ code = <<-END
13
13
  count = count += 1 if @some_condition
14
14
  END
15
- @excellent.check_content(content)
15
+ @excellent.check_code(code)
16
16
 
17
17
  @excellent.warnings.should be_empty
18
18
  end
19
19
 
20
20
  it 'should accept block parameters in an if clause' do
21
- content = <<-END
21
+ code = <<-END
22
22
  return true if exp.children.any? { |child| contains_statements?(child) }
23
23
  END
24
- @excellent.check_content(content)
24
+ @excellent.check_code(code)
25
25
 
26
26
  @excellent.warnings.should be_empty
27
27
  end
28
28
 
29
29
  it 'should reject assignments of results of blocks in an if clause' do
30
- content = <<-END
30
+ code = <<-END
31
31
  return true if value = exp.children.find { |child| contains_statements?(child) }
32
32
  END
33
33
 
34
- verify_warning_found(content)
34
+ verify_warning_found(code)
35
35
  end
36
36
 
37
37
  it 'should reject an assignment inside an if clause' do
38
- content = <<-END
38
+ code = <<-END
39
39
  call_foo if bar = bam
40
40
  END
41
41
 
42
- verify_warning_found(content)
42
+ verify_warning_found(code)
43
43
  end
44
44
 
45
45
  it 'should reject an assignment inside an unless clause' do
46
- content = <<-END
46
+ code = <<-END
47
47
  call_foo unless bar = bam
48
48
  END
49
49
 
50
- verify_warning_found(content)
50
+ verify_warning_found(code)
51
51
  end
52
52
 
53
53
  it 'should reject an assignment inside a while clause' do
54
- content = <<-END
54
+ code = <<-END
55
55
  call_foo while bar = bam
56
56
  END
57
57
 
58
- verify_warning_found(content)
58
+ verify_warning_found(code)
59
59
  end
60
60
 
61
61
  it 'should reject an assignment inside an until clause' do
62
- content = <<-END
62
+ code = <<-END
63
63
  call_foo until bar = bam
64
64
  END
65
65
 
66
- verify_warning_found(content)
66
+ verify_warning_found(code)
67
67
  end
68
68
 
69
69
  it 'should reject an assignment inside a ternary operator check clause' do
70
- content = <<-END
70
+ code = <<-END
71
71
  call_foo (bar = bam) ? baz : bad
72
72
  END
73
73
 
74
74
  #RubyParser sets line number 2 here
75
- verify_warning_found(content, 2)
75
+ verify_warning_found(code, 2)
76
76
  end
77
77
 
78
78
  end
79
79
 
80
- def verify_warning_found(content, line_number = nil)
81
- @excellent.check_content(content)
80
+ def verify_warning_found(code, line_number = nil)
81
+ @excellent.check_code(code)
82
82
  warnings = @excellent.warnings
83
83
 
84
84
  warnings.should_not be_empty
@@ -9,26 +9,26 @@ describe Simplabs::Excellent::Checks::CaseMissingElseCheck do
9
9
  describe '#evaluate' do
10
10
 
11
11
  it 'should accept case statements that do have an else clause' do
12
- content = <<-END
12
+ code = <<-END
13
13
  case foo
14
14
  when "bar": "ok"
15
15
  else "good"
16
16
  end
17
17
  END
18
- @excellent.check_content(content)
18
+ @excellent.check_code(code)
19
19
  warnings = @excellent.warnings
20
20
 
21
21
  warnings.should be_empty
22
22
  end
23
23
 
24
24
  it 'should reject case statements that do not have an else clause' do
25
- content = <<-END
25
+ code = <<-END
26
26
  case foo
27
27
  when "bar": "ok"
28
28
  when "bar": "bad"
29
29
  end
30
30
  END
31
- @excellent.check_content(content)
31
+ @excellent.check_code(code)
32
32
  warnings = @excellent.warnings
33
33
 
34
34
  warnings.should_not be_empty
@@ -9,46 +9,46 @@ describe Simplabs::Excellent::Checks::ClassLineCountCheck do
9
9
  describe '#evaluate' do
10
10
 
11
11
  it 'should accept classes with less lines than the threshold' do
12
- content = <<-END
12
+ code = <<-END
13
13
  class OneLineClass; end
14
14
  END
15
- @excellent.check_content(content)
15
+ @excellent.check_code(code)
16
16
 
17
17
  @excellent.warnings.should be_empty
18
18
  end
19
19
 
20
20
  it 'should accept classes with the same number of lines as the threshold' do
21
- content = <<-END
21
+ code = <<-END
22
22
  class ThreeLineClass
23
23
  @foo = 1
24
24
  end
25
25
  END
26
- @excellent.check_content(content)
26
+ @excellent.check_code(code)
27
27
 
28
28
  @excellent.warnings.should be_empty
29
29
  end
30
30
 
31
31
  it 'should not count blank lines' do
32
- content = <<-END
32
+ code = <<-END
33
33
  class ThreeLineClass
34
34
 
35
35
  @foo = 1
36
36
 
37
37
  end
38
38
  END
39
- @excellent.check_content(content)
39
+ @excellent.check_code(code)
40
40
 
41
41
  @excellent.warnings.should be_empty
42
42
  end
43
43
 
44
44
  it 'should reject classes with more lines than the threshold' do
45
- content = <<-END
45
+ code = <<-END
46
46
  class FourLineClass
47
47
  @foo = 1
48
48
  @bar = 2
49
49
  end
50
50
  END
51
- @excellent.check_content(content)
51
+ @excellent.check_code(code)
52
52
  warnings = @excellent.warnings
53
53
 
54
54
  warnings.should_not be_empty
@@ -9,32 +9,32 @@ describe Simplabs::Excellent::Checks::ClassNameCheck do
9
9
  describe '#evaluate' do
10
10
 
11
11
  it 'should accept camel case class names starting in capitals' do
12
- content = <<-END
12
+ code = <<-END
13
13
  class GoodClassName; end
14
14
  END
15
- @excellent.check_content(content)
15
+ @excellent.check_code(code)
16
16
 
17
17
  @excellent.warnings.should be_empty
18
18
  end
19
19
 
20
20
  it 'should be able to parse scoped class names' do
21
- content = <<-END
21
+ code = <<-END
22
22
  class Outer::Inner::GoodClassName
23
23
  def method
24
24
  end
25
25
  end
26
26
  END
27
- @excellent.check_content(content)
28
-
27
+ @excellent.check_code(code)
28
+ s
29
29
  @excellent.warnings.should be_empty
30
30
  end
31
31
 
32
32
  it 'should reject class names with underscores' do
33
- content = <<-END
33
+ code = <<-END
34
34
  class Bad_ClassName
35
35
  end
36
36
  END
37
- @excellent.check_content(content)
37
+ @excellent.check_code(code)
38
38
  warnings = @excellent.warnings
39
39
 
40
40
  warnings.should_not be_empty
@@ -9,39 +9,39 @@ describe Simplabs::Excellent::Checks::ControlCouplingCheck do
9
9
  describe '#evaluate' do
10
10
 
11
11
  it 'should accept methods that just print out the parameter' do
12
- content = <<-END
12
+ code = <<-END
13
13
  def write(quoted)
14
14
  pp quoted
15
15
  end
16
16
  END
17
- @excellent.check_content(content)
17
+ @excellent.check_code(code)
18
18
  warnings = @excellent.warnings
19
19
 
20
20
  warnings.should be_empty
21
21
  end
22
22
 
23
23
  it 'should accept methods with ternary operators using an instance variable' do
24
- content = <<-END
24
+ code = <<-END
25
25
  def write(quoted)
26
26
  @quoted ? write_quoted('1') : write_quoted('2')
27
27
  end
28
28
  END
29
29
 
30
- @excellent.check_content(content)
30
+ @excellent.check_code(code)
31
31
  warnings = @excellent.warnings
32
32
 
33
33
  warnings.should be_empty
34
34
  end
35
35
 
36
36
  it 'should accept methods with ternary operators using a local variable' do
37
- content = <<-END
37
+ code = <<-END
38
38
  def write(quoted)
39
39
  test = false
40
40
  test ? write_quoted('1') : write_quoted('2')
41
41
  end
42
42
  END
43
43
 
44
- @excellent.check_content(content)
44
+ @excellent.check_code(code)
45
45
  warnings = @excellent.warnings
46
46
 
47
47
  warnings.should be_empty
@@ -50,7 +50,7 @@ describe Simplabs::Excellent::Checks::ControlCouplingCheck do
50
50
  %w(if unless).each do |conditional|
51
51
 
52
52
  it "should reject methods with #{conditional} checks using a parameter" do
53
- content = <<-END
53
+ code = <<-END
54
54
  def write(quoted)
55
55
  #{conditional} quoted
56
56
  write_quoted('test')
@@ -58,23 +58,23 @@ describe Simplabs::Excellent::Checks::ControlCouplingCheck do
58
58
  end
59
59
  END
60
60
 
61
- verify_warning_found(content)
61
+ verify_warning_found(code)
62
62
  end
63
63
 
64
64
  end
65
65
 
66
66
  it 'should reject methods with ternary operators using a parameter' do
67
- content = <<-END
67
+ code = <<-END
68
68
  def write(quoted)
69
69
  quoted ? write_quoted('1') : write_quoted('2')
70
70
  end
71
71
  END
72
72
 
73
- verify_warning_found(content)
73
+ verify_warning_found(code)
74
74
  end
75
75
 
76
76
  it "should reject methods with case statements using a parameter" do
77
- content = <<-END
77
+ code = <<-END
78
78
  def write(quoted)
79
79
  case quoted
80
80
  when 1
@@ -85,13 +85,13 @@ describe Simplabs::Excellent::Checks::ControlCouplingCheck do
85
85
  end
86
86
  END
87
87
 
88
- verify_warning_found(content)
88
+ verify_warning_found(code)
89
89
  end
90
90
 
91
91
  end
92
92
 
93
- def verify_warning_found(content)
94
- @excellent.check_content(content)
93
+ def verify_warning_found(code)
94
+ @excellent.check_code(code)
95
95
  warnings = @excellent.warnings
96
96
 
97
97
  warnings.should_not be_empty