kevinrutherford-reek 1.1.3.11 → 1.1.3.12
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.
- data/History.txt +1 -0
- data/bin/reek +1 -1
- data/lib/reek/adapters/object_source.rb +2 -2
- data/lib/reek/adapters/source.rb +5 -1
- data/lib/reek.rb +1 -1
- data/reek.gemspec +2 -2
- data/spec/reek/smells/large_class_spec.rb +5 -0
- data/spec/reek/smells/long_parameter_list_spec.rb +1 -0
- data/spec/reek/smells/utility_function_spec.rb +21 -17
- metadata +2 -2
data/History.txt
CHANGED
data/bin/reek
CHANGED
@@ -17,7 +17,7 @@ module Reek
|
|
17
17
|
sniffer.configure(LargeClass, disabled_config)
|
18
18
|
end
|
19
19
|
|
20
|
-
def can_parse_objects?
|
20
|
+
def self.can_parse_objects?
|
21
21
|
return true if Object.const_defined?(:ParseTree)
|
22
22
|
begin
|
23
23
|
require 'parse_tree'
|
@@ -28,7 +28,7 @@ module Reek
|
|
28
28
|
end
|
29
29
|
|
30
30
|
def syntax_tree
|
31
|
-
if can_parse_objects?
|
31
|
+
if ObjectSource.can_parse_objects?
|
32
32
|
ObjectSource.unify(ParseTree.new.parse_tree(@source))
|
33
33
|
else
|
34
34
|
throw ArgumentError.new('You must install the ParseTree gem to use this feature')
|
data/lib/reek/adapters/source.rb
CHANGED
@@ -27,9 +27,13 @@ module Reek
|
|
27
27
|
#
|
28
28
|
class SourceFile < Source
|
29
29
|
|
30
|
+
def self.lines(file)
|
31
|
+
IO.readlines(file.path)
|
32
|
+
end
|
33
|
+
|
30
34
|
def initialize(file)
|
31
35
|
@file = file
|
32
|
-
super(@file.
|
36
|
+
super(SourceFile.lines(@file).join, @file.path)
|
33
37
|
end
|
34
38
|
|
35
39
|
def configure(sniffer)
|
data/lib/reek.rb
CHANGED
data/reek.gemspec
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{reek}
|
5
|
-
s.version = "1.1.3.
|
5
|
+
s.version = "1.1.3.12"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Kevin Rutherford"]
|
9
|
-
s.date = %q{2009-07-
|
9
|
+
s.date = %q{2009-07-25}
|
10
10
|
s.default_executable = %q{reek}
|
11
11
|
s.description = %q{Code smell detector for Ruby}
|
12
12
|
s.email = ["kevin@rutherford-software.com"]
|
@@ -11,6 +11,7 @@ include Reek::Smells
|
|
11
11
|
describe LargeClass, 'checking Class objects' do
|
12
12
|
|
13
13
|
it 'should not report class with 26 methods' do
|
14
|
+
pending('test requires ParseTree') unless ObjectSource.can_parse_objects?
|
14
15
|
class BigOne
|
15
16
|
26.times do |i|
|
16
17
|
define_method "method#{i}".to_sym do
|
@@ -22,6 +23,7 @@ describe LargeClass, 'checking Class objects' do
|
|
22
23
|
end
|
23
24
|
|
24
25
|
it 'should not report short class' do
|
26
|
+
pending('test requires ParseTree') unless ObjectSource.can_parse_objects?
|
25
27
|
class ShortClass
|
26
28
|
def method1() @var1; end
|
27
29
|
def method2() @var2; end
|
@@ -35,6 +37,7 @@ describe LargeClass, 'checking Class objects' do
|
|
35
37
|
|
36
38
|
describe LargeClass, 'counting instance variables' do
|
37
39
|
it 'should not report class with 10 ivars' do
|
40
|
+
pending('test requires ParseTree') unless ObjectSource.can_parse_objects?
|
38
41
|
class ManyIvars
|
39
42
|
def method
|
40
43
|
@vara = @varb = @varc = @vard = @vare
|
@@ -45,10 +48,12 @@ describe LargeClass, 'checking Class objects' do
|
|
45
48
|
end
|
46
49
|
|
47
50
|
it 'ignores class with only a couple of ivars' do
|
51
|
+
pending('test requires ParseTree') unless ObjectSource.can_parse_objects?
|
48
52
|
LargeClass.should_not reek_of(:LargeClass)
|
49
53
|
end
|
50
54
|
|
51
55
|
it 'ignores fq class with only a couple of ivars' do
|
56
|
+
pending('test requires ParseTree') unless ObjectSource.can_parse_objects?
|
52
57
|
Reek::Smells::LargeClass.should_not reek_of(:LargeClass)
|
53
58
|
end
|
54
59
|
end
|
@@ -7,13 +7,6 @@ include Reek::Smells
|
|
7
7
|
|
8
8
|
describe UtilityFunction do
|
9
9
|
|
10
|
-
it 'should not report attrset' do
|
11
|
-
class Fred
|
12
|
-
attr_writer :xyz
|
13
|
-
end
|
14
|
-
Fred.should_not reek
|
15
|
-
end
|
16
|
-
|
17
10
|
it 'should count usages of self'do
|
18
11
|
'def <=>(other) Options[:sort_order].compare(self, other) end'.should_not reek
|
19
12
|
end
|
@@ -29,16 +22,6 @@ describe UtilityFunction do
|
|
29
22
|
it 'should report message chain' do
|
30
23
|
'def simple(arga) arga.b.c end'.should reek_of(:UtilityFunction, /simple/)
|
31
24
|
end
|
32
|
-
|
33
|
-
it 'should not report overriding methods' do
|
34
|
-
class Father
|
35
|
-
def thing(ff); @kids = 0; end
|
36
|
-
end
|
37
|
-
class Son < Father
|
38
|
-
def thing(ff); ff; end
|
39
|
-
end
|
40
|
-
Son.should_not reek
|
41
|
-
end
|
42
25
|
|
43
26
|
it 'does not report a method that calls super' do
|
44
27
|
'def child(arg) super; arg.to_s; end'.should_not reek
|
@@ -81,3 +64,24 @@ describe UtilityFunction, 'should only report a method containing a call' do
|
|
81
64
|
'def clean(text) text.each { @fred = 3} end'.should_not reek
|
82
65
|
end
|
83
66
|
end
|
67
|
+
|
68
|
+
describe UtilityFunction do
|
69
|
+
it 'should not report attrset' do
|
70
|
+
pending('test requires ParseTree') unless ObjectSource.can_parse_objects?
|
71
|
+
class Fred
|
72
|
+
attr_writer :xyz
|
73
|
+
end
|
74
|
+
Fred.should_not reek
|
75
|
+
end
|
76
|
+
|
77
|
+
it 'should not report overriding methods' do
|
78
|
+
pending('test requires ParseTree') unless ObjectSource.can_parse_objects?
|
79
|
+
class Father
|
80
|
+
def thing(ff); @kids = 0; end
|
81
|
+
end
|
82
|
+
class Son < Father
|
83
|
+
def thing(ff); ff; end
|
84
|
+
end
|
85
|
+
Son.should_not reek
|
86
|
+
end
|
87
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kevinrutherford-reek
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.3.
|
4
|
+
version: 1.1.3.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kevin Rutherford
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-07-
|
12
|
+
date: 2009-07-25 00:00:00 -07:00
|
13
13
|
default_executable: reek
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|