kevinrutherford-reek 1.1.3.6 → 1.1.3.7

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 CHANGED
@@ -1,4 +1,4 @@
1
- == 1.2 (in git)
1
+ == 1.2 (in progress -- see github)
2
2
 
3
3
  === Major Changes
4
4
  * Reek's RDoc is now hosted at http://rdoc.info/projects/kevinrutherford/reek
@@ -1,5 +1,5 @@
1
1
  @reports
2
- Feature: Correclty formatted reports
2
+ Feature: Correctly formatted reports
3
3
  In order to get the most out of reek
4
4
  As a developer
5
5
  I want to be able to parse reek's output simply and consistently
@@ -26,3 +26,15 @@ Feature: Correclty formatted reports
26
26
 
27
27
  """
28
28
 
29
+ Scenario: good files show headers consecutively
30
+ When I run reek spec/samples/three_clean_files/*.rb
31
+ Then it succeeds
32
+ And it reports:
33
+ """
34
+ spec/samples/three_clean_files/clean_one.rb -- 0 warnings
35
+ spec/samples/three_clean_files/clean_three.rb -- 0 warnings
36
+ spec/samples/three_clean_files/clean_two.rb -- 0 warnings
37
+
38
+ """
39
+
40
+
data/lib/reek/report.rb CHANGED
@@ -58,7 +58,8 @@ module Reek
58
58
  # this report, with a heading.
59
59
  def full_report(desc)
60
60
  result = header(desc, @report.length)
61
- result += ":\n#{to_s}\n" if length > 0
61
+ result += ":\n#{to_s}" if length > 0
62
+ result += "\n"
62
63
  result
63
64
  end
64
65
 
data/lib/reek/spec.rb CHANGED
@@ -49,7 +49,7 @@ module Reek
49
49
  "Expected source to reek, but it didn't"
50
50
  end
51
51
  def failure_message_for_should_not
52
- "Expected no smells, but got:\n#{@source.report}"
52
+ "Expected no smells, but got:\n#{@source.full_report}"
53
53
  end
54
54
  end
55
55
 
@@ -73,7 +73,7 @@ module Reek
73
73
  "Expected #{@source} to reek of #{@klass}, but it didn't"
74
74
  end
75
75
  def failure_message_for_should_not
76
- "Expected #{@source} not to reek of #{@klass}, but got:\n#{@source.report}"
76
+ "Expected #{@source} not to reek of #{@klass}, but got:\n#{@source.full_report}"
77
77
  end
78
78
  end
79
79
 
@@ -96,7 +96,7 @@ module Reek
96
96
  @source.report.length == 1 and @source.has_smell?(@klass, @patterns)
97
97
  end
98
98
  def failure_message_for_should
99
- "Expected source to reek only of #{@klass}, but got:\n#{@source.report}"
99
+ "Expected source to reek only of #{@klass}, but got:\n#{@source.full_report}"
100
100
  end
101
101
  def failure_message_for_should_not
102
102
  "Expected source not to reek only of #{@klass}, but it did"
data/lib/reek.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  $:.unshift File.dirname(__FILE__)
2
2
 
3
3
  module Reek # :doc:
4
- VERSION = '1.1.3.6'
4
+ VERSION = '1.1.3.7'
5
5
  end
data/reek.gemspec CHANGED
@@ -2,17 +2,17 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{reek}
5
- s.version = "1.1.3.6"
5
+ s.version = "1.1.3.7"
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-06-30}
9
+ s.date = %q{2009-07-02}
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"]
13
13
  s.executables = ["reek"]
14
14
  s.extra_rdoc_files = ["History.txt", "README.txt"]
15
- s.files = ["History.txt", "README.txt", "Rakefile", "bin/reek", "config/defaults.reek", "features/masking_smells.feature", "features/options.feature", "features/rake_task.feature", "features/reports.feature", "features/samples.feature", "features/stdin.feature", "features/step_definitions/reek_steps.rb", "features/support/env.rb", "lib/reek.rb", "lib/reek/block_context.rb", "lib/reek/class_context.rb", "lib/reek/code_context.rb", "lib/reek/code_parser.rb", "lib/reek/exceptions.reek", "lib/reek/if_context.rb", "lib/reek/method_context.rb", "lib/reek/module_context.rb", "lib/reek/name.rb", "lib/reek/object_refs.rb", "lib/reek/object_source.rb", "lib/reek/options.rb", "lib/reek/rake_task.rb", "lib/reek/report.rb", "lib/reek/sexp_formatter.rb", "lib/reek/singleton_method_context.rb", "lib/reek/smell_warning.rb", "lib/reek/smells/control_couple.rb", "lib/reek/smells/duplication.rb", "lib/reek/smells/feature_envy.rb", "lib/reek/smells/large_class.rb", "lib/reek/smells/long_method.rb", "lib/reek/smells/long_parameter_list.rb", "lib/reek/smells/long_yield_list.rb", "lib/reek/smells/nested_iterators.rb", "lib/reek/smells/smell_detector.rb", "lib/reek/smells/uncommunicative_name.rb", "lib/reek/smells/utility_function.rb", "lib/reek/sniffer.rb", "lib/reek/source.rb", "lib/reek/spec.rb", "lib/reek/stop_context.rb", "lib/reek/yield_call_context.rb", "reek.gemspec", "spec/reek/block_context_spec.rb", "spec/reek/class_context_spec.rb", "spec/reek/code_context_spec.rb", "spec/reek/code_parser_spec.rb", "spec/reek/config_spec.rb", "spec/reek/if_context_spec.rb", "spec/reek/method_context_spec.rb", "spec/reek/module_context_spec.rb", "spec/reek/name_spec.rb", "spec/reek/object_refs_spec.rb", "spec/reek/object_source_spec.rb", "spec/reek/options_spec.rb", "spec/reek/report_spec.rb", "spec/reek/singleton_method_context_spec.rb", "spec/reek/smell_warning_spec.rb", "spec/reek/smells/control_couple_spec.rb", "spec/reek/smells/duplication_spec.rb", "spec/reek/smells/feature_envy_spec.rb", "spec/reek/smells/large_class_spec.rb", "spec/reek/smells/long_method_spec.rb", "spec/reek/smells/long_parameter_list_spec.rb", "spec/reek/smells/nested_iterators_spec.rb", "spec/reek/smells/smell_detector_spec.rb", "spec/reek/smells/uncommunicative_name_spec.rb", "spec/reek/smells/utility_function_spec.rb", "spec/samples/corrupt_config_file/corrupt.reek", "spec/samples/corrupt_config_file/dirty.rb", "spec/samples/empty_config_file/dirty.rb", "spec/samples/empty_config_file/empty.reek", "spec/samples/inline.rb", "spec/samples/masked/dirty.rb", "spec/samples/masked/masked.reek", "spec/samples/optparse.rb", "spec/samples/redcloth.rb", "spec/samples/two_smelly_files/dirty_one.rb", "spec/samples/two_smelly_files/dirty_two.rb", "spec/slow/inline_spec.rb", "spec/slow/optparse_spec.rb", "spec/slow/redcloth_spec.rb", "spec/slow/reek_source_spec.rb", "spec/slow/source_list_spec.rb", "spec/spec.opts", "spec/spec_helper.rb", "tasks/reek.rake", "tasks/test.rake"]
15
+ s.files = ["History.txt", "README.txt", "Rakefile", "bin/reek", "config/defaults.reek", "features/masking_smells.feature", "features/options.feature", "features/rake_task.feature", "features/reports.feature", "features/samples.feature", "features/stdin.feature", "features/step_definitions/reek_steps.rb", "features/support/env.rb", "lib/reek.rb", "lib/reek/block_context.rb", "lib/reek/class_context.rb", "lib/reek/code_context.rb", "lib/reek/code_parser.rb", "lib/reek/exceptions.reek", "lib/reek/if_context.rb", "lib/reek/method_context.rb", "lib/reek/module_context.rb", "lib/reek/name.rb", "lib/reek/object_refs.rb", "lib/reek/object_source.rb", "lib/reek/options.rb", "lib/reek/rake_task.rb", "lib/reek/report.rb", "lib/reek/sexp_formatter.rb", "lib/reek/singleton_method_context.rb", "lib/reek/smell_warning.rb", "lib/reek/smells/control_couple.rb", "lib/reek/smells/duplication.rb", "lib/reek/smells/feature_envy.rb", "lib/reek/smells/large_class.rb", "lib/reek/smells/long_method.rb", "lib/reek/smells/long_parameter_list.rb", "lib/reek/smells/long_yield_list.rb", "lib/reek/smells/nested_iterators.rb", "lib/reek/smells/smell_detector.rb", "lib/reek/smells/uncommunicative_name.rb", "lib/reek/smells/utility_function.rb", "lib/reek/sniffer.rb", "lib/reek/source.rb", "lib/reek/spec.rb", "lib/reek/stop_context.rb", "lib/reek/yield_call_context.rb", "reek.gemspec", "spec/reek/block_context_spec.rb", "spec/reek/class_context_spec.rb", "spec/reek/code_context_spec.rb", "spec/reek/code_parser_spec.rb", "spec/reek/config_spec.rb", "spec/reek/if_context_spec.rb", "spec/reek/method_context_spec.rb", "spec/reek/module_context_spec.rb", "spec/reek/name_spec.rb", "spec/reek/object_refs_spec.rb", "spec/reek/object_source_spec.rb", "spec/reek/options_spec.rb", "spec/reek/report_spec.rb", "spec/reek/singleton_method_context_spec.rb", "spec/reek/smell_warning_spec.rb", "spec/reek/smells/control_couple_spec.rb", "spec/reek/smells/duplication_spec.rb", "spec/reek/smells/feature_envy_spec.rb", "spec/reek/smells/large_class_spec.rb", "spec/reek/smells/long_method_spec.rb", "spec/reek/smells/long_parameter_list_spec.rb", "spec/reek/smells/nested_iterators_spec.rb", "spec/reek/smells/smell_detector_spec.rb", "spec/reek/smells/uncommunicative_name_spec.rb", "spec/reek/smells/utility_function_spec.rb", "spec/reek/spec_spec.rb", "spec/samples/corrupt_config_file/corrupt.reek", "spec/samples/corrupt_config_file/dirty.rb", "spec/samples/empty_config_file/dirty.rb", "spec/samples/empty_config_file/empty.reek", "spec/samples/inline.rb", "spec/samples/masked/dirty.rb", "spec/samples/masked/masked.reek", "spec/samples/optparse.rb", "spec/samples/redcloth.rb", "spec/samples/three_clean_files/clean_one.rb", "spec/samples/three_clean_files/clean_three.rb", "spec/samples/three_clean_files/clean_two.rb", "spec/samples/two_smelly_files/dirty_one.rb", "spec/samples/two_smelly_files/dirty_two.rb", "spec/slow/inline_spec.rb", "spec/slow/optparse_spec.rb", "spec/slow/redcloth_spec.rb", "spec/slow/reek_source_spec.rb", "spec/slow/source_list_spec.rb", "spec/spec.opts", "spec/spec_helper.rb", "tasks/reek.rake", "tasks/test.rake"]
16
16
  s.homepage = %q{http://wiki.github.com/kevinrutherford/reek}
17
17
  s.post_install_message = %q{
18
18
  For more information on reek, see http://wiki.github.com/kevinrutherford/reek
@@ -4,6 +4,7 @@ include Reek
4
4
 
5
5
  describe Dir do
6
6
  it 'reports correct smells via the Dir matcher' do
7
+ Dir['spec/samples/two_smelly_files/*.rb'].should reek
7
8
  Dir['spec/samples/two_smelly_files/*.rb'].should reek_of(:UncommunicativeName)
8
9
  end
9
10
 
@@ -11,4 +12,12 @@ describe Dir do
11
12
  src = Dir['spec/samples/two_smelly_files/*.rb'].to_source
12
13
  src.has_smell?(:UncommunicativeName).should be_true
13
14
  end
15
+
16
+ it 'copes with daft file specs' do
17
+ Dir["spec/samples/two_smelly_files/*/.rb"].should_not reek
18
+ end
19
+
20
+ it 'copes with empty array' do
21
+ [].should_not reek
22
+ end
14
23
  end
@@ -0,0 +1,68 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper.rb'
2
+
3
+ require 'reek/spec'
4
+
5
+ include Reek::Spec
6
+
7
+ describe ShouldReek, 'checking code in a string' do
8
+ before :each do
9
+ @clean_code = 'def good() true; end'
10
+ @smelly_code = 'def x() y = 4; end'
11
+ @matcher = ShouldReek.new
12
+ end
13
+
14
+ it 'matches a smelly String' do
15
+ @matcher.matches?(@smelly_code).should be_true
16
+ end
17
+
18
+ it 'doesnt match a fragrant String' do
19
+ @matcher.matches?(@clean_code).should be_false
20
+ end
21
+
22
+ it 'reports the smells when should_not fails' do
23
+ @matcher.matches?(@smelly_code).should be_true
24
+ @matcher.failure_message_for_should_not.should include(@smelly_code.to_source.full_report)
25
+ end
26
+ end
27
+
28
+ describe ShouldReek, 'checking code in a Dir' do
29
+ before :each do
30
+ @clean_dir = Dir['spec/samples/three_clean_files/*.rb']
31
+ @smelly_dir = Dir['spec/samples/two_smelly_files/*.rb']
32
+ @matcher = ShouldReek.new
33
+ end
34
+
35
+ it 'matches a smelly String' do
36
+ @matcher.matches?(@smelly_dir).should be_true
37
+ end
38
+
39
+ it 'doesnt match a fragrant String' do
40
+ @matcher.matches?(@clean_dir).should be_false
41
+ end
42
+
43
+ it 'reports the smells when should_not fails' do
44
+ @matcher.matches?(@smelly_dir).should be_true
45
+ @matcher.failure_message_for_should_not.should include(@smelly_dir.to_source.full_report)
46
+ end
47
+ end
48
+
49
+ describe ShouldReek, 'checking code in a File' do
50
+ before :each do
51
+ @clean_file = File.new(Dir['spec/samples/three_clean_files/*.rb'][0])
52
+ @smelly_file = File.new(Dir['spec/samples/two_smelly_files/*.rb'][0])
53
+ @matcher = ShouldReek.new
54
+ end
55
+
56
+ it 'matches a smelly String' do
57
+ @matcher.matches?(@smelly_file).should be_true
58
+ end
59
+
60
+ it 'doesnt match a fragrant String' do
61
+ @matcher.matches?(@clean_file).should be_false
62
+ end
63
+
64
+ it 'reports the smells when should_not fails' do
65
+ @matcher.matches?(@smelly_file).should be_true
66
+ @matcher.failure_message_for_should_not.should include(@smelly_file.to_source.full_report)
67
+ end
68
+ end
@@ -0,0 +1,6 @@
1
+ class Clean
2
+ def assign
3
+ puts @sub.title
4
+ @sub.map {|para| para.name }
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ class Clean
2
+ def assign
3
+ puts @sub.title
4
+ @sub.map {|para| para.name }
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ class Clean
2
+ def assign
3
+ puts @sub.title
4
+ @sub.map {|para| para.name }
5
+ end
6
+ 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.6
4
+ version: 1.1.3.7
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-06-30 00:00:00 -07:00
12
+ date: 2009-07-02 00:00:00 -07:00
13
13
  default_executable: reek
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -126,6 +126,7 @@ files:
126
126
  - spec/reek/smells/smell_detector_spec.rb
127
127
  - spec/reek/smells/uncommunicative_name_spec.rb
128
128
  - spec/reek/smells/utility_function_spec.rb
129
+ - spec/reek/spec_spec.rb
129
130
  - spec/samples/corrupt_config_file/corrupt.reek
130
131
  - spec/samples/corrupt_config_file/dirty.rb
131
132
  - spec/samples/empty_config_file/dirty.rb
@@ -135,6 +136,9 @@ files:
135
136
  - spec/samples/masked/masked.reek
136
137
  - spec/samples/optparse.rb
137
138
  - spec/samples/redcloth.rb
139
+ - spec/samples/three_clean_files/clean_one.rb
140
+ - spec/samples/three_clean_files/clean_three.rb
141
+ - spec/samples/three_clean_files/clean_two.rb
138
142
  - spec/samples/two_smelly_files/dirty_one.rb
139
143
  - spec/samples/two_smelly_files/dirty_two.rb
140
144
  - spec/slow/inline_spec.rb