reek 1.2.8 → 1.2.9
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +4 -0
- data/README.md +40 -25
- data/Rakefile +2 -15
- data/bin/reek +1 -1
- data/features/{options.feature → command_line_interface/options.feature} +1 -3
- data/features/{stdin.feature → command_line_interface/stdin.feature} +2 -2
- data/features/{masking_smells.feature → configuration_files/masking_smells.feature} +23 -23
- data/features/{rake_task.feature → rake_task/rake_task.feature} +9 -9
- data/features/{reports.feature → reports/reports.feature} +10 -10
- data/features/{yaml.feature → reports/yaml.feature} +2 -2
- data/features/{api.feature → ruby_api/api.feature} +6 -6
- data/features/samples.feature +239 -247
- data/features/step_definitions/reek_steps.rb +15 -1
- data/features/support/env.rb +0 -1
- data/lib/reek.rb +1 -4
- data/lib/reek/cli/command_line.rb +6 -5
- data/lib/reek/cli/report.rb +1 -1
- data/lib/reek/core/hash_extensions.rb +29 -0
- data/lib/reek/core/method_context.rb +3 -16
- data/lib/reek/core/object_refs.rb +5 -22
- data/lib/reek/core/smell_repository.rb +65 -0
- data/lib/reek/core/sniffer.rb +7 -76
- data/lib/reek/core/warning_collector.rb +1 -5
- data/lib/reek/examiner.rb +3 -13
- data/lib/reek/rake/task.rb +10 -2
- data/lib/reek/smell_warning.rb +1 -0
- data/lib/reek/smells/smell_detector.rb +0 -3
- data/lib/reek/smells/uncommunicative_module_name.rb +6 -3
- data/lib/reek/smells/uncommunicative_variable_name.rb +1 -1
- data/lib/reek/source/config_file.rb +8 -2
- data/lib/reek/source/sexp_formatter.rb +1 -1
- data/lib/reek/source/source_repository.rb +31 -0
- data/lib/reek/source/tree_dresser.rb +1 -1
- data/lib/reek/spec/should_reek.rb +5 -2
- data/lib/reek/version.rb +3 -0
- data/lib/xp.reek +63 -0
- data/reek.gemspec +16 -28
- data/spec/gem/manifest_spec.rb +22 -0
- data/spec/gem/updates_spec.rb +26 -0
- data/spec/gem/yard_spec.rb +15 -0
- data/spec/matchers/smell_of_matcher.rb +0 -1
- data/spec/reek/cli/reek_command_spec.rb +1 -1
- data/spec/reek/core/method_context_spec.rb +2 -2
- data/spec/reek/core/object_refs_spec.rb +115 -118
- data/spec/reek/smell_warning_spec.rb +2 -2
- data/spec/reek/smells/uncommunicative_variable_name_spec.rb +3 -0
- data/spec/reek/source/sexp_formatter_spec.rb +19 -0
- data/spec/reek/spec/should_reek_spec.rb +21 -3
- data/tasks/deployment.rake +69 -0
- data/tasks/develop.rake +29 -0
- data/tasks/test.rake +1 -6
- metadata +200 -138
@@ -130,10 +130,10 @@ describe SmellWarning do
|
|
130
130
|
it_should_behave_like 'common fields'
|
131
131
|
|
132
132
|
it 'includes no subclass' do
|
133
|
-
@yaml.should match(/subclass
|
133
|
+
@yaml.should match(/subclass: ["']{2}/)
|
134
134
|
end
|
135
135
|
it 'includes no source' do
|
136
|
-
@yaml.should match(/source
|
136
|
+
@yaml.should match(/source: ["']{2}/)
|
137
137
|
end
|
138
138
|
it 'includes empty parameters' do
|
139
139
|
@yaml.should_not match(/parameter/)
|
@@ -30,6 +30,9 @@ describe UncommunicativeVariableName do
|
|
30
30
|
it 'does not report one-word variable name' do
|
31
31
|
'def help(fred) simple = jim(45) end'.should_not smell_of(UncommunicativeVariableName)
|
32
32
|
end
|
33
|
+
it 'does not report single underscore as a variable name' do
|
34
|
+
'def help(fred) _ = jim(45) end'.should_not smell_of(UncommunicativeVariableName)
|
35
|
+
end
|
33
36
|
it 'reports one-letter variable name' do
|
34
37
|
src = 'def simple(fred) x = jim(45) end'
|
35
38
|
src.should smell_of(UncommunicativeVariableName,
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require File.join(File.dirname(File.dirname(File.dirname(File.expand_path(__FILE__)))), 'spec_helper')
|
2
|
+
require File.join(File.dirname(File.dirname(File.dirname(File.dirname(File.expand_path(__FILE__))))), 'lib', 'reek', 'source', 'sexp_formatter')
|
3
|
+
|
4
|
+
include Reek::Source
|
5
|
+
|
6
|
+
describe SexpFormatter do
|
7
|
+
describe "::format" do
|
8
|
+
it 'formats a simple s-expression' do
|
9
|
+
result = SexpFormatter.format s(:lvar, :foo)
|
10
|
+
result.should == "foo"
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'formats a more complex s-expression' do
|
14
|
+
result = SexpFormatter.format s(:call, nil, :foo, s(:arglist, s(:lvar, :bar)))
|
15
|
+
result.should == "foo(bar)"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
@@ -21,7 +21,7 @@ describe ShouldReek, 'checking code in a string' do
|
|
21
21
|
|
22
22
|
it 'reports the smells when should_not fails' do
|
23
23
|
@matcher.matches?(@smelly_code)
|
24
|
-
@matcher.failure_message_for_should_not.should match('
|
24
|
+
@matcher.failure_message_for_should_not.should match('UncommunicativeVariableName')
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
@@ -42,7 +42,7 @@ describe ShouldReek, 'checking code in a Dir' do
|
|
42
42
|
|
43
43
|
it 'reports the smells when should_not fails' do
|
44
44
|
@matcher.matches?(@smelly_dir)
|
45
|
-
@matcher.failure_message_for_should_not.should match('
|
45
|
+
@matcher.failure_message_for_should_not.should match('UncommunicativeVariableName')
|
46
46
|
end
|
47
47
|
end
|
48
48
|
|
@@ -63,6 +63,24 @@ describe ShouldReek, 'checking code in a File' do
|
|
63
63
|
|
64
64
|
it 'reports the smells when should_not fails' do
|
65
65
|
@matcher.matches?(@smelly_file)
|
66
|
-
@matcher.failure_message_for_should_not.should match('
|
66
|
+
@matcher.failure_message_for_should_not.should match('UncommunicativeVariableName')
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
describe ShouldReek, 'configuration' do
|
71
|
+
before :each do
|
72
|
+
@smelly_file = File.new('spec/samples/redcloth.rb')
|
73
|
+
@clean_file = File.new('spec/samples/three_clean_files/clean_one.rb')
|
74
|
+
end
|
75
|
+
it 'can handle array of config files in ctor' do
|
76
|
+
expect{matcher = ShouldReek.new(Dir['spec/samples/*.reek'])}.to_not raise_error
|
77
|
+
end
|
78
|
+
it 'does not alter result for clean file' do
|
79
|
+
matcher = ShouldReek.new(Dir['spec/samples/*.reek'])
|
80
|
+
matcher.matches?(@clean_file).should be_false
|
81
|
+
end
|
82
|
+
it 'ignores smells according to config' do
|
83
|
+
matcher = ShouldReek.new(Dir['spec/samples/*.reek'])
|
84
|
+
matcher.matches?('def hash() md5 = Digest::MD5.new; end').should be_false
|
67
85
|
end
|
68
86
|
end
|
@@ -0,0 +1,69 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rubygems/package_task'
|
3
|
+
require 'yaml'
|
4
|
+
require 'reek'
|
5
|
+
|
6
|
+
GEMSPEC = "#{PROJECT_NAME}.gemspec"
|
7
|
+
HISTORY_FILE = 'History.txt'
|
8
|
+
README_FILE = 'README.md'
|
9
|
+
|
10
|
+
RELEASE_TIMESTAMP = "#{BUILD_DIR}/.last-release"
|
11
|
+
|
12
|
+
$gemspec = Gem::Specification.new do |s|
|
13
|
+
s.name = PROJECT_NAME
|
14
|
+
s.version = ::Reek::VERSION
|
15
|
+
s.summary = 'Code smell detector for Ruby'
|
16
|
+
s.description = <<-EOS
|
17
|
+
Reek is a tool that examines Ruby classes, modules and methods
|
18
|
+
and reports any code smells it finds.
|
19
|
+
EOS
|
20
|
+
s.author = 'Kevin Rutherford'
|
21
|
+
s.email = ['kevin@rutherford-software.com']
|
22
|
+
s.homepage = 'http://wiki.github.com/troessner/reek'
|
23
|
+
s.rubyforge_project = PROJECT_NAME
|
24
|
+
s.add_dependency('ruby_parser', '~> 2.0')
|
25
|
+
s.add_dependency('ruby2ruby', '~> 1.2')
|
26
|
+
s.add_dependency('sexp_processor', '~> 3.0')
|
27
|
+
s.files = File.read(GEM_MANIFEST).delete("\r").split(/\n/)
|
28
|
+
s.executables = s.files.grep(/^bin/) { |f| File.basename(f) }
|
29
|
+
s.bindir = 'bin'
|
30
|
+
s.require_paths = ['lib']
|
31
|
+
s.rdoc_options = ['--main', README_FILE]
|
32
|
+
s.extra_rdoc_files = s.files.grep(/(txt|rdoc)$/)
|
33
|
+
s.post_install_message = '
|
34
|
+
Thank you for downloading Reek. For info:
|
35
|
+
- see the reek wiki http://wiki.github.com/troessner/reek
|
36
|
+
- follow @rubyreek on twitter
|
37
|
+
'
|
38
|
+
end
|
39
|
+
|
40
|
+
class String
|
41
|
+
def touch(text)
|
42
|
+
File.open(self, 'w') { |ios| ios.puts text }
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
file GEMSPEC => [GEM_MANIFEST, README_FILE, HISTORY_FILE, VERSION_FILE, __FILE__] do
|
47
|
+
GEMSPEC.touch($gemspec.to_ruby)
|
48
|
+
end
|
49
|
+
|
50
|
+
namespace :build do
|
51
|
+
Gem::PackageTask.new($gemspec) do |task|
|
52
|
+
task.package_dir = PKG_DIR
|
53
|
+
task.need_tar = true
|
54
|
+
task.need_zip = false
|
55
|
+
end
|
56
|
+
|
57
|
+
task :package => [GEMSPEC]
|
58
|
+
end
|
59
|
+
|
60
|
+
task :release => ['test:release', 'build:package'] do
|
61
|
+
puts <<-EOS
|
62
|
+
1) git commit -a -m "Release #{Reek::VERSION}"
|
63
|
+
2) git tag -a "v#{Reek::VERSION}" -m "Release #{Reek::VERSION}"
|
64
|
+
3) git push
|
65
|
+
4) git push --tags
|
66
|
+
5) gem push "#{PKG_DIR}/#{PROJECT_NAME}-#{Reek::VERSION}.gem"
|
67
|
+
EOS
|
68
|
+
RELEASE_TIMESTAMP.touch(::Reek::VERSION)
|
69
|
+
end
|
data/tasks/develop.rake
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'rake/clean'
|
2
|
+
require 'reek/core/sniffer'
|
3
|
+
require 'yaml'
|
4
|
+
|
5
|
+
CONFIG_DIR = 'config'
|
6
|
+
CONFIG_FILE = "#{CONFIG_DIR}/defaults.reek"
|
7
|
+
|
8
|
+
CLOBBER.include(CONFIG_DIR)
|
9
|
+
|
10
|
+
directory CONFIG_DIR
|
11
|
+
|
12
|
+
file CONFIG_FILE => [CONFIG_DIR] do
|
13
|
+
config = {}
|
14
|
+
Reek::Core::SmellRepository.smell_classes.each do |klass|
|
15
|
+
config[klass.name.split(/::/)[-1]] = klass.default_config
|
16
|
+
end
|
17
|
+
$stderr.puts "Creating #{CONFIG_FILE}"
|
18
|
+
File.open(CONFIG_FILE, 'w') { |f| YAML.dump(config, f) }
|
19
|
+
end
|
20
|
+
|
21
|
+
task CONFIG_FILE => FileList['lib/reek/smells/*.rb']
|
22
|
+
|
23
|
+
task 'test:spec' => [CONFIG_FILE]
|
24
|
+
task 'test:slow' => [CONFIG_FILE]
|
25
|
+
task 'test:rcov' => [CONFIG_FILE]
|
26
|
+
task 'test:quality' => [CONFIG_FILE]
|
27
|
+
task 'test:features' => [CONFIG_FILE]
|
28
|
+
task 'reek' => [CONFIG_FILE]
|
29
|
+
task 'check:manifest' => [CONFIG_FILE]
|
data/tasks/test.rake
CHANGED
@@ -35,17 +35,12 @@ namespace 'test' do
|
|
35
35
|
t.rcov_dir = 'build/coverage'
|
36
36
|
end
|
37
37
|
|
38
|
-
desc 'Checks all supported versions of Ruby'
|
39
|
-
task :multiruby do
|
40
|
-
sh "multiruby -S rake spec"
|
41
|
-
end
|
42
|
-
|
43
38
|
Cucumber::Rake::Task.new(:features) do |t|
|
44
39
|
t.cucumber_opts = "features --format progress --color"
|
45
40
|
end
|
46
41
|
|
47
42
|
desc 'Runs all unit tests and acceptance tests'
|
48
|
-
task 'all' => ['test:spec', 'test:features'
|
43
|
+
task 'all' => ['test:spec', 'test:features']
|
49
44
|
|
50
45
|
task 'release' => ['test:gem', 'test:all']
|
51
46
|
end
|
metadata
CHANGED
@@ -1,29 +1,33 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: reek
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 13
|
5
|
+
prerelease:
|
5
6
|
segments:
|
6
7
|
- 1
|
7
8
|
- 2
|
8
|
-
-
|
9
|
-
version: 1.2.
|
9
|
+
- 9
|
10
|
+
version: 1.2.9
|
10
11
|
platform: ruby
|
11
12
|
authors:
|
12
13
|
- Kevin Rutherford
|
14
|
+
- Timo Roessner
|
15
|
+
- Matijs van Zuijlen
|
13
16
|
autorequire:
|
14
17
|
bindir: bin
|
15
18
|
cert_chain: []
|
16
19
|
|
17
|
-
date: 2010-04-26 00:00:00
|
18
|
-
default_executable:
|
20
|
+
date: 2010-04-26 00:00:00 Z
|
19
21
|
dependencies:
|
20
22
|
- !ruby/object:Gem::Dependency
|
21
23
|
name: ruby_parser
|
22
24
|
prerelease: false
|
23
25
|
requirement: &id001 !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
24
27
|
requirements:
|
25
28
|
- - ~>
|
26
29
|
- !ruby/object:Gem::Version
|
30
|
+
hash: 3
|
27
31
|
segments:
|
28
32
|
- 2
|
29
33
|
- 0
|
@@ -34,34 +38,83 @@ dependencies:
|
|
34
38
|
name: ruby2ruby
|
35
39
|
prerelease: false
|
36
40
|
requirement: &id002 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
37
42
|
requirements:
|
38
43
|
- - ~>
|
39
44
|
- !ruby/object:Gem::Version
|
45
|
+
hash: 21
|
40
46
|
segments:
|
41
47
|
- 1
|
42
48
|
- 2
|
43
|
-
|
49
|
+
- 5
|
50
|
+
version: 1.2.5
|
44
51
|
type: :runtime
|
45
52
|
version_requirements: *id002
|
46
53
|
- !ruby/object:Gem::Dependency
|
47
54
|
name: sexp_processor
|
48
55
|
prerelease: false
|
49
56
|
requirement: &id003 !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
50
58
|
requirements:
|
51
59
|
- - ~>
|
52
60
|
- !ruby/object:Gem::Version
|
61
|
+
hash: 7
|
53
62
|
segments:
|
54
63
|
- 3
|
55
64
|
- 0
|
56
65
|
version: "3.0"
|
57
66
|
type: :runtime
|
58
67
|
version_requirements: *id003
|
68
|
+
- !ruby/object:Gem::Dependency
|
69
|
+
name: rake
|
70
|
+
prerelease: false
|
71
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
hash: 3
|
77
|
+
segments:
|
78
|
+
- 0
|
79
|
+
version: "0"
|
80
|
+
type: :development
|
81
|
+
version_requirements: *id004
|
82
|
+
- !ruby/object:Gem::Dependency
|
83
|
+
name: cucumber
|
84
|
+
prerelease: false
|
85
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
86
|
+
none: false
|
87
|
+
requirements:
|
88
|
+
- - ">="
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
hash: 3
|
91
|
+
segments:
|
92
|
+
- 0
|
93
|
+
version: "0"
|
94
|
+
type: :development
|
95
|
+
version_requirements: *id005
|
96
|
+
- !ruby/object:Gem::Dependency
|
97
|
+
name: rspec
|
98
|
+
prerelease: false
|
99
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
100
|
+
none: false
|
101
|
+
requirements:
|
102
|
+
- - "="
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
hash: 31
|
105
|
+
segments:
|
106
|
+
- 1
|
107
|
+
- 3
|
108
|
+
- 2
|
109
|
+
version: 1.3.2
|
110
|
+
type: :development
|
111
|
+
version_requirements: *id006
|
59
112
|
description: |
|
60
113
|
Reek is a tool that examines Ruby classes, modules and methods
|
61
114
|
and reports any code smells it finds.
|
62
115
|
|
63
116
|
email:
|
64
|
-
-
|
117
|
+
- timo.roessner@googlemail.com
|
65
118
|
executables:
|
66
119
|
- reek
|
67
120
|
extensions: []
|
@@ -77,198 +130,207 @@ files:
|
|
77
130
|
- Rakefile
|
78
131
|
- bin/reek
|
79
132
|
- config/defaults.reek
|
80
|
-
- features/
|
81
|
-
- features/
|
82
|
-
- features/options.feature
|
83
|
-
- features/
|
84
|
-
- features/
|
85
|
-
- features/samples.feature
|
86
|
-
- features/stdin.feature
|
133
|
+
- features/configuration_files/masking_smells.feature
|
134
|
+
- features/command_line_interface/stdin.feature
|
135
|
+
- features/command_line_interface/options.feature
|
136
|
+
- features/ruby_api/api.feature
|
137
|
+
- features/rake_task/rake_task.feature
|
87
138
|
- features/step_definitions/reek_steps.rb
|
139
|
+
- features/samples.feature
|
88
140
|
- features/support/env.rb
|
89
|
-
- features/yaml.feature
|
90
|
-
-
|
91
|
-
- lib/reek
|
92
|
-
- lib/reek/
|
93
|
-
- lib/reek/
|
94
|
-
- lib/reek/
|
95
|
-
- lib/reek/
|
96
|
-
- lib/reek/
|
97
|
-
- lib/reek/cli/yaml_command.rb
|
98
|
-
- lib/reek/core/code_context.rb
|
99
|
-
- lib/reek/core/code_parser.rb
|
100
|
-
- lib/reek/core/method_context.rb
|
101
|
-
- lib/reek/core/module_context.rb
|
102
|
-
- lib/reek/core/object_refs.rb
|
103
|
-
- lib/reek/core/singleton_method_context.rb
|
104
|
-
- lib/reek/core/smell_configuration.rb
|
105
|
-
- lib/reek/core/sniffer.rb
|
106
|
-
- lib/reek/core/stop_context.rb
|
107
|
-
- lib/reek/core/warning_collector.rb
|
108
|
-
- lib/reek/examiner.rb
|
109
|
-
- lib/reek/rake/task.rb
|
110
|
-
- lib/reek/smell_warning.rb
|
111
|
-
- lib/reek/smells.rb
|
112
|
-
- lib/reek/smells/attribute.rb
|
113
|
-
- lib/reek/smells/boolean_parameter.rb
|
114
|
-
- lib/reek/smells/class_variable.rb
|
115
|
-
- lib/reek/smells/control_couple.rb
|
116
|
-
- lib/reek/smells/data_clump.rb
|
117
|
-
- lib/reek/smells/duplication.rb
|
118
|
-
- lib/reek/smells/feature_envy.rb
|
141
|
+
- features/reports/yaml.feature
|
142
|
+
- features/reports/reports.feature
|
143
|
+
- lib/xp.reek
|
144
|
+
- lib/reek/spec.rb
|
145
|
+
- lib/reek/source.rb
|
146
|
+
- lib/reek/spec/should_reek.rb
|
147
|
+
- lib/reek/spec/should_reek_of.rb
|
148
|
+
- lib/reek/spec/should_reek_only_of.rb
|
119
149
|
- lib/reek/smells/irresponsible_module.rb
|
120
150
|
- lib/reek/smells/large_class.rb
|
151
|
+
- lib/reek/smells/uncommunicative_variable_name.rb
|
152
|
+
- lib/reek/smells/feature_envy.rb
|
153
|
+
- lib/reek/smells/uncommunicative_method_name.rb
|
154
|
+
- lib/reek/smells/boolean_parameter.rb
|
121
155
|
- lib/reek/smells/long_method.rb
|
122
|
-
- lib/reek/smells/
|
123
|
-
- lib/reek/smells/long_yield_list.rb
|
124
|
-
- lib/reek/smells/nested_iterators.rb
|
125
|
-
- lib/reek/smells/simulated_polymorphism.rb
|
156
|
+
- lib/reek/smells/duplication.rb
|
126
157
|
- lib/reek/smells/smell_detector.rb
|
127
|
-
- lib/reek/smells/
|
158
|
+
- lib/reek/smells/control_couple.rb
|
128
159
|
- lib/reek/smells/uncommunicative_module_name.rb
|
129
|
-
- lib/reek/smells/
|
130
|
-
- lib/reek/smells/
|
160
|
+
- lib/reek/smells/nested_iterators.rb
|
161
|
+
- lib/reek/smells/long_parameter_list.rb
|
162
|
+
- lib/reek/smells/long_yield_list.rb
|
131
163
|
- lib/reek/smells/utility_function.rb
|
132
|
-
- lib/reek/
|
133
|
-
- lib/reek/
|
134
|
-
- lib/reek/
|
135
|
-
- lib/reek/
|
136
|
-
- lib/reek/
|
164
|
+
- lib/reek/smells/uncommunicative_parameter_name.rb
|
165
|
+
- lib/reek/smells/simulated_polymorphism.rb
|
166
|
+
- lib/reek/smells/data_clump.rb
|
167
|
+
- lib/reek/smells/attribute.rb
|
168
|
+
- lib/reek/smells/class_variable.rb
|
169
|
+
- lib/reek/examiner.rb
|
170
|
+
- lib/reek/version.rb
|
171
|
+
- lib/reek/core/smell_repository.rb
|
172
|
+
- lib/reek/core/method_context.rb
|
173
|
+
- lib/reek/core/sniffer.rb
|
174
|
+
- lib/reek/core/warning_collector.rb
|
175
|
+
- lib/reek/core/code_parser.rb
|
176
|
+
- lib/reek/core/object_refs.rb
|
177
|
+
- lib/reek/core/module_context.rb
|
178
|
+
- lib/reek/core/smell_configuration.rb
|
179
|
+
- lib/reek/core/hash_extensions.rb
|
180
|
+
- lib/reek/core/singleton_method_context.rb
|
181
|
+
- lib/reek/core/code_context.rb
|
182
|
+
- lib/reek/core/stop_context.rb
|
183
|
+
- lib/reek/rake/task.rb
|
184
|
+
- lib/reek/cli/report.rb
|
185
|
+
- lib/reek/cli/command_line.rb
|
186
|
+
- lib/reek/cli/version_command.rb
|
187
|
+
- lib/reek/cli/reek_command.rb
|
188
|
+
- lib/reek/cli/yaml_command.rb
|
189
|
+
- lib/reek/cli/application.rb
|
190
|
+
- lib/reek/cli/help_command.rb
|
137
191
|
- lib/reek/source/sexp_formatter.rb
|
138
|
-
- lib/reek/source/
|
192
|
+
- lib/reek/source/source_repository.rb
|
193
|
+
- lib/reek/source/reference_collector.rb
|
139
194
|
- lib/reek/source/source_file.rb
|
140
195
|
- lib/reek/source/source_locator.rb
|
196
|
+
- lib/reek/source/code_comment.rb
|
197
|
+
- lib/reek/source/core_extras.rb
|
198
|
+
- lib/reek/source/source_code.rb
|
141
199
|
- lib/reek/source/tree_dresser.rb
|
142
|
-
- lib/reek/
|
143
|
-
- lib/reek/
|
144
|
-
- lib/reek/
|
145
|
-
- lib/reek
|
146
|
-
- reek.
|
147
|
-
- spec/
|
148
|
-
- spec/reek/
|
149
|
-
- spec/reek/cli/reek_command_spec.rb
|
150
|
-
- spec/reek/cli/report_spec.rb
|
151
|
-
- spec/reek/cli/version_command_spec.rb
|
152
|
-
- spec/reek/cli/yaml_command_spec.rb
|
153
|
-
- spec/reek/core/code_context_spec.rb
|
154
|
-
- spec/reek/core/code_parser_spec.rb
|
155
|
-
- spec/reek/core/config_spec.rb
|
156
|
-
- spec/reek/core/method_context_spec.rb
|
157
|
-
- spec/reek/core/module_context_spec.rb
|
158
|
-
- spec/reek/core/object_refs_spec.rb
|
159
|
-
- spec/reek/core/singleton_method_context_spec.rb
|
160
|
-
- spec/reek/core/smell_configuration_spec.rb
|
161
|
-
- spec/reek/core/stop_context_spec.rb
|
162
|
-
- spec/reek/core/warning_collector_spec.rb
|
200
|
+
- lib/reek/source/config_file.rb
|
201
|
+
- lib/reek/smell_warning.rb
|
202
|
+
- lib/reek/smells.rb
|
203
|
+
- lib/reek.rb
|
204
|
+
- spec/reek/spec/should_reek_spec.rb
|
205
|
+
- spec/reek/spec/should_reek_of_spec.rb
|
206
|
+
- spec/reek/spec/should_reek_only_of_spec.rb
|
163
207
|
- spec/reek/examiner_spec.rb
|
164
|
-
- spec/reek/smell_warning_spec.rb
|
165
|
-
- spec/reek/smells/attribute_spec.rb
|
166
|
-
- spec/reek/smells/behaves_like_variable_detector.rb
|
167
|
-
- spec/reek/smells/boolean_parameter_spec.rb
|
168
|
-
- spec/reek/smells/class_variable_spec.rb
|
169
|
-
- spec/reek/smells/control_couple_spec.rb
|
170
|
-
- spec/reek/smells/data_clump_spec.rb
|
171
208
|
- spec/reek/smells/duplication_spec.rb
|
172
|
-
- spec/reek/smells/
|
173
|
-
- spec/reek/smells/irresponsible_module_spec.rb
|
174
|
-
- spec/reek/smells/large_class_spec.rb
|
175
|
-
- spec/reek/smells/long_method_spec.rb
|
176
|
-
- spec/reek/smells/long_parameter_list_spec.rb
|
177
|
-
- spec/reek/smells/long_yield_list_spec.rb
|
178
|
-
- spec/reek/smells/nested_iterators_spec.rb
|
179
|
-
- spec/reek/smells/simulated_polymorphism_spec.rb
|
209
|
+
- spec/reek/smells/uncommunicative_module_name_spec.rb
|
180
210
|
- spec/reek/smells/smell_detector_shared.rb
|
211
|
+
- spec/reek/smells/nested_iterators_spec.rb
|
212
|
+
- spec/reek/smells/long_yield_list_spec.rb
|
213
|
+
- spec/reek/smells/data_clump_spec.rb
|
181
214
|
- spec/reek/smells/uncommunicative_method_name_spec.rb
|
182
|
-
- spec/reek/smells/
|
183
|
-
- spec/reek/smells/uncommunicative_parameter_name_spec.rb
|
215
|
+
- spec/reek/smells/long_parameter_list_spec.rb
|
184
216
|
- spec/reek/smells/uncommunicative_variable_name_spec.rb
|
217
|
+
- spec/reek/smells/boolean_parameter_spec.rb
|
218
|
+
- spec/reek/smells/behaves_like_variable_detector.rb
|
219
|
+
- spec/reek/smells/class_variable_spec.rb
|
220
|
+
- spec/reek/smells/feature_envy_spec.rb
|
221
|
+
- spec/reek/smells/simulated_polymorphism_spec.rb
|
222
|
+
- spec/reek/smells/long_method_spec.rb
|
223
|
+
- spec/reek/smells/attribute_spec.rb
|
224
|
+
- spec/reek/smells/irresponsible_module_spec.rb
|
225
|
+
- spec/reek/smells/control_couple_spec.rb
|
185
226
|
- spec/reek/smells/utility_function_spec.rb
|
186
|
-
- spec/reek/
|
187
|
-
- spec/reek/
|
227
|
+
- spec/reek/smells/uncommunicative_parameter_name_spec.rb
|
228
|
+
- spec/reek/smells/large_class_spec.rb
|
229
|
+
- spec/reek/core/module_context_spec.rb
|
230
|
+
- spec/reek/core/code_context_spec.rb
|
231
|
+
- spec/reek/core/smell_configuration_spec.rb
|
232
|
+
- spec/reek/core/object_refs_spec.rb
|
233
|
+
- spec/reek/core/method_context_spec.rb
|
234
|
+
- spec/reek/core/singleton_method_context_spec.rb
|
235
|
+
- spec/reek/core/warning_collector_spec.rb
|
236
|
+
- spec/reek/core/code_parser_spec.rb
|
237
|
+
- spec/reek/core/stop_context_spec.rb
|
238
|
+
- spec/reek/core/config_spec.rb
|
239
|
+
- spec/reek/cli/reek_command_spec.rb
|
240
|
+
- spec/reek/cli/help_command_spec.rb
|
241
|
+
- spec/reek/cli/version_command_spec.rb
|
242
|
+
- spec/reek/cli/report_spec.rb
|
243
|
+
- spec/reek/cli/yaml_command_spec.rb
|
244
|
+
- spec/reek/source/sexp_formatter_spec.rb
|
188
245
|
- spec/reek/source/reference_collector_spec.rb
|
189
|
-
- spec/reek/source/
|
246
|
+
- spec/reek/source/code_comment_spec.rb
|
190
247
|
- spec/reek/source/tree_dresser_spec.rb
|
191
|
-
- spec/reek/
|
192
|
-
- spec/reek/
|
193
|
-
- spec/reek/
|
248
|
+
- spec/reek/source/source_code_spec.rb
|
249
|
+
- spec/reek/source/object_source_spec.rb
|
250
|
+
- spec/reek/smell_warning_spec.rb
|
251
|
+
- spec/spec.opts
|
252
|
+
- spec/samples/demo/demo.rb
|
253
|
+
- spec/samples/three_clean_files/clean_one.rb
|
254
|
+
- spec/samples/three_clean_files/clean_three.rb
|
255
|
+
- spec/samples/three_clean_files/clean_two.rb
|
256
|
+
- spec/samples/overrides/upper.reek
|
257
|
+
- spec/samples/overrides/masked/dirty.rb
|
258
|
+
- spec/samples/overrides/masked/lower.reek
|
259
|
+
- spec/samples/empty_config_file/dirty.rb
|
260
|
+
- spec/samples/empty_config_file/empty.reek
|
194
261
|
- spec/samples/all_but_one_masked/clean_one.rb
|
195
262
|
- spec/samples/all_but_one_masked/dirty.rb
|
196
263
|
- spec/samples/all_but_one_masked/masked.reek
|
264
|
+
- spec/samples/corrupt_config_file/dirty.rb
|
265
|
+
- spec/samples/corrupt_config_file/corrupt.reek
|
266
|
+
- spec/samples/optparse.rb
|
267
|
+
- spec/samples/exceptions.reek
|
268
|
+
- spec/samples/not_quite_masked/dirty.rb
|
269
|
+
- spec/samples/not_quite_masked/masked.reek
|
270
|
+
- spec/samples/mask_some/dirty.rb
|
271
|
+
- spec/samples/mask_some/some.reek
|
272
|
+
- spec/samples/inline.rb
|
197
273
|
- spec/samples/clean_due_to_masking/clean_one.rb
|
198
274
|
- spec/samples/clean_due_to_masking/clean_three.rb
|
199
275
|
- spec/samples/clean_due_to_masking/clean_two.rb
|
276
|
+
- spec/samples/clean_due_to_masking/masked.reek
|
200
277
|
- spec/samples/clean_due_to_masking/dirty_one.rb
|
201
278
|
- spec/samples/clean_due_to_masking/dirty_two.rb
|
202
|
-
- spec/samples/
|
203
|
-
- spec/samples/config/allow_duplication.reek
|
204
|
-
- spec/samples/config/deeper_nested_iterators.reek
|
205
|
-
- spec/samples/corrupt_config_file/corrupt.reek
|
206
|
-
- spec/samples/corrupt_config_file/dirty.rb
|
207
|
-
- spec/samples/demo/demo.rb
|
208
|
-
- spec/samples/empty_config_file/dirty.rb
|
209
|
-
- spec/samples/empty_config_file/empty.reek
|
210
|
-
- spec/samples/exceptions.reek
|
211
|
-
- spec/samples/inline_config/dirty.rb
|
212
|
-
- spec/samples/inline_config/masked.reek
|
213
|
-
- spec/samples/inline.rb
|
214
|
-
- spec/samples/mask_some/dirty.rb
|
215
|
-
- spec/samples/mask_some/some.reek
|
216
|
-
- spec/samples/masked/dirty.rb
|
217
|
-
- spec/samples/masked/masked.reek
|
279
|
+
- spec/samples/redcloth.rb
|
218
280
|
- spec/samples/mixed_results/clean_one.rb
|
219
281
|
- spec/samples/mixed_results/clean_three.rb
|
220
282
|
- spec/samples/mixed_results/clean_two.rb
|
221
283
|
- spec/samples/mixed_results/dirty_one.rb
|
222
284
|
- spec/samples/mixed_results/dirty_two.rb
|
223
|
-
- spec/samples/
|
224
|
-
- spec/samples/
|
225
|
-
- spec/samples/optparse.rb
|
226
|
-
- spec/samples/overrides/masked/dirty.rb
|
227
|
-
- spec/samples/overrides/masked/lower.reek
|
228
|
-
- spec/samples/overrides/upper.reek
|
229
|
-
- spec/samples/redcloth.rb
|
230
|
-
- spec/samples/three_clean_files/clean_one.rb
|
231
|
-
- spec/samples/three_clean_files/clean_three.rb
|
232
|
-
- spec/samples/three_clean_files/clean_two.rb
|
285
|
+
- spec/samples/config/allow_duplication.reek
|
286
|
+
- spec/samples/config/deeper_nested_iterators.reek
|
233
287
|
- spec/samples/two_smelly_files/dirty_one.rb
|
234
288
|
- spec/samples/two_smelly_files/dirty_two.rb
|
235
|
-
- spec/
|
289
|
+
- spec/samples/masked/dirty.rb
|
290
|
+
- spec/samples/masked/masked.reek
|
291
|
+
- spec/samples/inline_config/dirty.rb
|
292
|
+
- spec/samples/inline_config/masked.reek
|
293
|
+
- spec/gem/yard_spec.rb
|
294
|
+
- spec/gem/manifest_spec.rb
|
295
|
+
- spec/gem/updates_spec.rb
|
236
296
|
- spec/spec_helper.rb
|
237
|
-
-
|
297
|
+
- spec/matchers/smell_of_matcher.rb
|
238
298
|
- tasks/test.rake
|
239
|
-
|
240
|
-
|
299
|
+
- tasks/deployment.rake
|
300
|
+
- tasks/develop.rake
|
301
|
+
- tasks/reek.rake
|
302
|
+
- reek.gemspec
|
303
|
+
homepage: http://wiki.github.com/troessner/reek
|
241
304
|
licenses: []
|
242
305
|
|
243
|
-
post_install_message:
|
244
|
-
|
245
|
-
Thank you for downloading Reek. For info:
|
246
|
-
- see the reek wiki http://wiki.github.com/kevinrutherford/reek
|
247
|
-
- follow @rubyreek on twitter
|
248
|
-
|
306
|
+
post_install_message: Thank you for downloading Reek. For info see the reek wiki http://wiki.github.com/troessner/reek
|
249
307
|
rdoc_options:
|
250
308
|
- --main
|
251
309
|
- README.md
|
252
310
|
require_paths:
|
253
311
|
- lib
|
254
312
|
required_ruby_version: !ruby/object:Gem::Requirement
|
313
|
+
none: false
|
255
314
|
requirements:
|
256
315
|
- - ">="
|
257
316
|
- !ruby/object:Gem::Version
|
317
|
+
hash: 3
|
258
318
|
segments:
|
259
319
|
- 0
|
260
320
|
version: "0"
|
261
321
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
322
|
+
none: false
|
262
323
|
requirements:
|
263
324
|
- - ">="
|
264
325
|
- !ruby/object:Gem::Version
|
326
|
+
hash: 3
|
265
327
|
segments:
|
266
328
|
- 0
|
267
329
|
version: "0"
|
268
330
|
requirements: []
|
269
331
|
|
270
332
|
rubyforge_project: reek
|
271
|
-
rubygems_version: 1.
|
333
|
+
rubygems_version: 1.8.24
|
272
334
|
signing_key:
|
273
335
|
specification_version: 3
|
274
336
|
summary: Code smell detector for Ruby
|