reek 3.6.1 → 3.7.0

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.
Files changed (32) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +5 -0
  3. data/features/command_line_interface/basic_usage.feature +8 -8
  4. data/features/command_line_interface/options.feature +2 -1
  5. data/features/command_line_interface/smell_selection.feature +1 -1
  6. data/features/command_line_interface/smells_count.feature +8 -8
  7. data/features/command_line_interface/stdin.feature +3 -3
  8. data/features/configuration_files/directory_specific_directives.feature +9 -9
  9. data/features/configuration_files/masking_smells.feature +5 -5
  10. data/features/configuration_loading.feature +6 -6
  11. data/features/programmatic_access.feature +3 -3
  12. data/features/rake_task/rake_task.feature +9 -9
  13. data/features/reports/json.feature +4 -0
  14. data/features/reports/reports.feature +49 -37
  15. data/features/reports/yaml.feature +4 -0
  16. data/features/samples.feature +265 -265
  17. data/lib/reek/cli/options.rb +5 -4
  18. data/lib/reek/cli/warning_collector.rb +1 -1
  19. data/lib/reek/report.rb +2 -1
  20. data/lib/reek/report/code_climate_formatter.rb +46 -0
  21. data/lib/reek/report/formatter.rb +13 -8
  22. data/lib/reek/report/report.rb +12 -0
  23. data/lib/reek/smells/smell_warning.rb +2 -2
  24. data/lib/reek/version.rb +1 -1
  25. data/reek.gemspec +5 -4
  26. data/spec/reek/report/code_climate_formatter_spec.rb +63 -0
  27. data/spec/reek/report/code_climate_report_spec.rb +68 -0
  28. data/spec/reek/report/json_report_spec.rb +18 -18
  29. data/spec/reek/report/yaml_report_spec.rb +17 -17
  30. data/spec/reek/smells/smell_warning_spec.rb +11 -11
  31. data/spec/samples/checkstyle.xml +1 -1
  32. metadata +20 -3
@@ -28,6 +28,7 @@ Feature: Report smells using simple YAML layout
28
28
  message: calls @foo.bar 2 times
29
29
  name: "@foo.bar"
30
30
  count: 2
31
+ wiki_link: https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md
31
32
  - smell_category: Duplication
32
33
  smell_type: DuplicateMethodCall
33
34
  source: smelly.rb
@@ -38,6 +39,7 @@ Feature: Report smells using simple YAML layout
38
39
  message: calls puts(@foo.bar) 2 times
39
40
  name: puts(@foo.bar)
40
41
  count: 2
42
+ wiki_link: https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md
41
43
  - smell_category: UncommunicativeName
42
44
  smell_type: UncommunicativeMethodName
43
45
  source: smelly.rb
@@ -46,6 +48,7 @@ Feature: Report smells using simple YAML layout
46
48
  - 3
47
49
  message: has the name 'm'
48
50
  name: m
51
+ wiki_link: https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Method-Name.md
49
52
  """
50
53
 
51
54
  Scenario: Indicate smells and print them as yaml when using STDIN
@@ -62,4 +65,5 @@ Feature: Report smells using simple YAML layout
62
65
  - 1
63
66
  message: has no descriptive comment
64
67
  name: Turn
68
+ wiki_link: https://github.com/troessner/reek/blob/master/docs/Irresponsible-Module.md
65
69
  """
@@ -12,272 +12,272 @@ Feature: Basic smell detection
12
12
  And it reports:
13
13
  """
14
14
  inline.rb -- 47 warnings:
15
- CompilationError has no descriptive comment (IrresponsibleModule)
16
- Dir has no descriptive comment (IrresponsibleModule)
17
- File has no descriptive comment (IrresponsibleModule)
18
- File#self.write_with_backup has approx 6 statements (TooManyStatements)
19
- Inline declares the class variable @@directory (ClassVariable)
20
- Inline declares the class variable @@rootdir (ClassVariable)
21
- Inline#self.rootdir calls env.nil? 2 times (DuplicateMethodCall)
22
- Inline#self.rootdir has approx 8 statements (TooManyStatements)
23
- Inline#self.rootdir performs a nil-check (NilCheck)
24
- Inline::C declares the class variable @@type_map (ClassVariable)
25
- Inline::C has at least 13 instance variables (TooManyInstanceVariables)
26
- Inline::C has at least 25 methods (TooManyMethods)
27
- Inline::C has the name 'C' (UncommunicativeModuleName)
28
- Inline::C takes parameters [options, src] to 5 methods (DataClump)
29
- Inline::C tests $DEBUG at least 7 times (RepeatedConditional)
30
- Inline::C tests $TESTING at least 4 times (RepeatedConditional)
31
- Inline::C tests @@type_map.has_key?(type) at least 3 times (RepeatedConditional)
32
- Inline::C#build calls $? != 0 2 times (DuplicateMethodCall)
33
- Inline::C#build calls Inline.directory 5 times (DuplicateMethodCall)
34
- Inline::C#build calls io.puts 6 times (DuplicateMethodCall)
35
- Inline::C#build calls io.puts("#endif") 2 times (DuplicateMethodCall)
36
- Inline::C#build calls io.puts("#ifdef __cplusplus") 2 times (DuplicateMethodCall)
37
- Inline::C#build calls warn("Output:\n#{result}") 2 times (DuplicateMethodCall)
38
- Inline::C#build contains iterators nested 2 deep (NestedIterators)
39
- Inline::C#build has approx 63 statements (TooManyStatements)
40
- Inline::C#build has the variable name 'n' (UncommunicativeVariableName)
41
- Inline::C#build has the variable name 't' (UncommunicativeVariableName)
42
- Inline::C#c has the name 'c' (UncommunicativeMethodName)
43
- Inline::C#crap_for_windoze calls Config::CONFIG["libdir"] 2 times (DuplicateMethodCall)
44
- Inline::C#generate calls result.sub!(/\A\n/, "") 2 times (DuplicateMethodCall)
45
- Inline::C#generate calls signature["args"] 2 times (DuplicateMethodCall)
46
- Inline::C#generate calls signature["args"].map 2 times (DuplicateMethodCall)
47
- Inline::C#generate has approx 35 statements (TooManyStatements)
48
- Inline::C#initialize calls stack.empty? 2 times (DuplicateMethodCall)
49
- Inline::C#module_name has approx 7 statements (TooManyStatements)
50
- Inline::C#module_name has the variable name 'm' (UncommunicativeVariableName)
51
- Inline::C#module_name has the variable name 'md5' (UncommunicativeVariableName)
52
- Inline::C#module_name has the variable name 'x' (UncommunicativeVariableName)
53
- Inline::C#parse_signature has approx 16 statements (TooManyStatements)
54
- Inline::C#parse_signature has boolean parameter 'raw' (BooleanParameter)
55
- Inline::C#parse_signature has the variable name 'x' (UncommunicativeVariableName)
56
- Inline::C#parse_signature is controlled by argument raw (ControlParameter)
57
- Inline::C#strip_comments doesn't depend on instance state (maybe move it to another class?) (UtilityFunction)
58
- Module has no descriptive comment (IrresponsibleModule)
59
- Module#inline calls Inline.const_get(lang) 2 times (DuplicateMethodCall)
60
- Module#inline calls options[:testing] 2 times (DuplicateMethodCall)
61
- Module#inline has approx 12 statements (TooManyStatements)
15
+ BooleanParameter: Inline::C#parse_signature has boolean parameter 'raw' [https://github.com/troessner/reek/blob/master/docs/Boolean-Parameter.md]
16
+ ClassVariable: Inline declares the class variable @@directory [https://github.com/troessner/reek/blob/master/docs/Class-Variable.md]
17
+ ClassVariable: Inline declares the class variable @@rootdir [https://github.com/troessner/reek/blob/master/docs/Class-Variable.md]
18
+ ClassVariable: Inline::C declares the class variable @@type_map [https://github.com/troessner/reek/blob/master/docs/Class-Variable.md]
19
+ ControlParameter: Inline::C#parse_signature is controlled by argument raw [https://github.com/troessner/reek/blob/master/docs/Control-Parameter.md]
20
+ DataClump: Inline::C takes parameters [options, src] to 5 methods [https://github.com/troessner/reek/blob/master/docs/Data-Clump.md]
21
+ DuplicateMethodCall: Inline#self.rootdir calls env.nil? 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
22
+ DuplicateMethodCall: Inline::C#build calls $? != 0 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
23
+ DuplicateMethodCall: Inline::C#build calls Inline.directory 5 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
24
+ DuplicateMethodCall: Inline::C#build calls io.puts 6 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
25
+ DuplicateMethodCall: Inline::C#build calls io.puts("#endif") 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
26
+ DuplicateMethodCall: Inline::C#build calls io.puts("#ifdef __cplusplus") 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
27
+ DuplicateMethodCall: Inline::C#build calls warn("Output:\n#{result}") 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
28
+ DuplicateMethodCall: Inline::C#crap_for_windoze calls Config::CONFIG["libdir"] 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
29
+ DuplicateMethodCall: Inline::C#generate calls result.sub!(/\A\n/, "") 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
30
+ DuplicateMethodCall: Inline::C#generate calls signature["args"] 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
31
+ DuplicateMethodCall: Inline::C#generate calls signature["args"].map 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
32
+ DuplicateMethodCall: Inline::C#initialize calls stack.empty? 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
33
+ DuplicateMethodCall: Module#inline calls Inline.const_get(lang) 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
34
+ DuplicateMethodCall: Module#inline calls options[:testing] 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
35
+ IrresponsibleModule: CompilationError has no descriptive comment [https://github.com/troessner/reek/blob/master/docs/Irresponsible-Module.md]
36
+ IrresponsibleModule: Dir has no descriptive comment [https://github.com/troessner/reek/blob/master/docs/Irresponsible-Module.md]
37
+ IrresponsibleModule: File has no descriptive comment [https://github.com/troessner/reek/blob/master/docs/Irresponsible-Module.md]
38
+ IrresponsibleModule: Module has no descriptive comment [https://github.com/troessner/reek/blob/master/docs/Irresponsible-Module.md]
39
+ NestedIterators: Inline::C#build contains iterators nested 2 deep [https://github.com/troessner/reek/blob/master/docs/Nested-Iterators.md]
40
+ NilCheck: Inline#self.rootdir performs a nil-check [https://github.com/troessner/reek/blob/master/docs/Nil-Check.md]
41
+ RepeatedConditional: Inline::C tests $DEBUG at least 7 times [https://github.com/troessner/reek/blob/master/docs/Repeated-Conditional.md]
42
+ RepeatedConditional: Inline::C tests $TESTING at least 4 times [https://github.com/troessner/reek/blob/master/docs/Repeated-Conditional.md]
43
+ RepeatedConditional: Inline::C tests @@type_map.has_key?(type) at least 3 times [https://github.com/troessner/reek/blob/master/docs/Repeated-Conditional.md]
44
+ TooManyInstanceVariables: Inline::C has at least 13 instance variables [https://github.com/troessner/reek/blob/master/docs/Too-Many-Instance-Variables.md]
45
+ TooManyMethods: Inline::C has at least 25 methods [https://github.com/troessner/reek/blob/master/docs/Too-Many-Methods.md]
46
+ TooManyStatements: File#self.write_with_backup has approx 6 statements [https://github.com/troessner/reek/blob/master/docs/Too-Many-Statements.md]
47
+ TooManyStatements: Inline#self.rootdir has approx 8 statements [https://github.com/troessner/reek/blob/master/docs/Too-Many-Statements.md]
48
+ TooManyStatements: Inline::C#build has approx 63 statements [https://github.com/troessner/reek/blob/master/docs/Too-Many-Statements.md]
49
+ TooManyStatements: Inline::C#generate has approx 35 statements [https://github.com/troessner/reek/blob/master/docs/Too-Many-Statements.md]
50
+ TooManyStatements: Inline::C#module_name has approx 7 statements [https://github.com/troessner/reek/blob/master/docs/Too-Many-Statements.md]
51
+ TooManyStatements: Inline::C#parse_signature has approx 16 statements [https://github.com/troessner/reek/blob/master/docs/Too-Many-Statements.md]
52
+ TooManyStatements: Module#inline has approx 12 statements [https://github.com/troessner/reek/blob/master/docs/Too-Many-Statements.md]
53
+ UncommunicativeMethodName: Inline::C#c has the name 'c' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Method-Name.md]
54
+ UncommunicativeModuleName: Inline::C has the name 'C' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Module-Name.md]
55
+ UncommunicativeVariableName: Inline::C#build has the variable name 'n' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
56
+ UncommunicativeVariableName: Inline::C#build has the variable name 't' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
57
+ UncommunicativeVariableName: Inline::C#module_name has the variable name 'm' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
58
+ UncommunicativeVariableName: Inline::C#module_name has the variable name 'md5' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
59
+ UncommunicativeVariableName: Inline::C#module_name has the variable name 'x' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
60
+ UncommunicativeVariableName: Inline::C#parse_signature has the variable name 'x' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
61
+ UtilityFunction: Inline::C#strip_comments doesn't depend on instance state (maybe move it to another class?) [https://github.com/troessner/reek/blob/master/docs/Utility-Function.md]
62
62
  optparse.rb -- 117 warnings:
63
- OptionParser has at least 42 methods (TooManyMethods)
64
- OptionParser has at least 6 instance variables (TooManyInstanceVariables)
65
- OptionParser has the variable name 'f' (UncommunicativeVariableName)
66
- OptionParser has the variable name 'k' (UncommunicativeVariableName)
67
- OptionParser has the variable name 'o' (UncommunicativeVariableName)
68
- OptionParser has the variable name 's' (UncommunicativeVariableName)
69
- OptionParser has the variable name 'v' (UncommunicativeVariableName)
70
- OptionParser tests (argv.size == 1) && (Array === argv[0]) at least 3 times (RepeatedConditional)
71
- OptionParser tests a at least 7 times (RepeatedConditional)
72
- OptionParser tests default_pattern at least 7 times (RepeatedConditional)
73
- OptionParser tests not_style at least 3 times (RepeatedConditional)
74
- OptionParser tests s at least 7 times (RepeatedConditional)
75
- OptionParser#banner is a writable attribute (Attribute)
76
- OptionParser#complete has 4 parameters (LongParameterList)
77
- OptionParser#complete has approx 6 statements (TooManyStatements)
78
- OptionParser#complete has boolean parameter 'icase' (BooleanParameter)
79
- OptionParser#default_argv is a writable attribute (Attribute)
80
- OptionParser#getopts calls result[opt] = false 2 times (DuplicateMethodCall)
81
- OptionParser#getopts has approx 18 statements (TooManyStatements)
82
- OptionParser#load has approx 6 statements (TooManyStatements)
83
- OptionParser#load has the variable name 's' (UncommunicativeVariableName)
84
- OptionParser#make_switch calls default_style.guess(arg = a) 4 times (DuplicateMethodCall)
85
- OptionParser#make_switch calls long << (o = q.downcase) 2 times (DuplicateMethodCall)
86
- OptionParser#make_switch calls notwice(NilClass, klass, "type") 2 times (DuplicateMethodCall)
87
- OptionParser#make_switch calls notwice(if a ... end, klass, "type") 2 times (DuplicateMethodCall)
88
- OptionParser#make_switch calls pattern.method(:convert) 2 times (DuplicateMethodCall)
89
- OptionParser#make_switch calls pattern.method(:convert).to_proc 2 times (DuplicateMethodCall)
90
- OptionParser#make_switch calls pattern.respond_to?(:convert) 2 times (DuplicateMethodCall)
91
- OptionParser#make_switch calls q.downcase 3 times (DuplicateMethodCall)
92
- OptionParser#make_switch calls sdesc << "-#{q}" 2 times (DuplicateMethodCall)
93
- OptionParser#make_switch calls search(:atype, FalseClass) 2 times (DuplicateMethodCall)
94
- OptionParser#make_switch calls search(:atype, o) 6 times (DuplicateMethodCall)
95
- OptionParser#make_switch contains iterators nested 2 deep (NestedIterators)
96
- OptionParser#make_switch has approx 72 statements (TooManyStatements)
97
- OptionParser#make_switch has the variable name 'a' (UncommunicativeVariableName)
98
- OptionParser#make_switch has the variable name 'c' (UncommunicativeVariableName)
99
- OptionParser#make_switch has the variable name 'n' (UncommunicativeVariableName)
100
- OptionParser#make_switch has the variable name 'o' (UncommunicativeVariableName)
101
- OptionParser#make_switch has the variable name 'q' (UncommunicativeVariableName)
102
- OptionParser#make_switch has the variable name 's' (UncommunicativeVariableName)
103
- OptionParser#make_switch has the variable name 'v' (UncommunicativeVariableName)
104
- OptionParser#make_switch performs a nil-check (NilCheck)
105
- OptionParser#order calls argv[0] 2 times (DuplicateMethodCall)
106
- OptionParser#order refers to argv more than self (maybe move it to another class?) (FeatureEnvy)
107
- OptionParser#parse calls argv[0] 2 times (DuplicateMethodCall)
108
- OptionParser#parse refers to argv more than self (maybe move it to another class?) (FeatureEnvy)
109
- OptionParser#parse_in_order calls $!.set_option(arg, true) 2 times (DuplicateMethodCall)
110
- OptionParser#parse_in_order calls cb.call(val) 2 times (DuplicateMethodCall)
111
- OptionParser#parse_in_order calls raise($!.set_option(arg, true)) 2 times (DuplicateMethodCall)
112
- OptionParser#parse_in_order calls raise(*exc) 2 times (DuplicateMethodCall)
113
- OptionParser#parse_in_order calls setter.call(sw.switch_name, val) 2 times (DuplicateMethodCall)
114
- OptionParser#parse_in_order calls sw.block 2 times (DuplicateMethodCall)
115
- OptionParser#parse_in_order calls sw.switch_name 2 times (DuplicateMethodCall)
116
- OptionParser#parse_in_order has approx 35 statements (TooManyStatements)
117
- OptionParser#permute calls argv[0] 2 times (DuplicateMethodCall)
118
- OptionParser#permute refers to argv more than self (maybe move it to another class?) (FeatureEnvy)
119
- OptionParser#permute! has approx 6 statements (TooManyStatements)
120
- OptionParser#program_name is a writable attribute (Attribute)
121
- OptionParser#release is a writable attribute (Attribute)
122
- OptionParser#search has the variable name 'k' (UncommunicativeVariableName)
123
- OptionParser#self.inc performs a nil-check (NilCheck)
124
- OptionParser#summarize has 4 parameters (LongParameterList)
125
- OptionParser#summarize has the variable name 'l' (UncommunicativeVariableName)
126
- OptionParser#summarize is controlled by argument blk (ControlParameter)
127
- OptionParser#summary_indent is a writable attribute (Attribute)
128
- OptionParser#summary_width is a writable attribute (Attribute)
129
- OptionParser#ver has the variable name 'v' (UncommunicativeVariableName)
130
- OptionParser#version is a writable attribute (Attribute)
131
- OptionParser::Arguable has initialize method (ModuleInitialize)
132
- OptionParser::Arguable#options has approx 6 statements (TooManyStatements)
133
- OptionParser::Arguable#options= is controlled by argument opt (ControlParameter)
134
- OptionParser::Completion#complete calls candidates.size 2 times (DuplicateMethodCall)
135
- OptionParser::Completion#complete calls k.id2name 2 times (DuplicateMethodCall)
136
- OptionParser::Completion#complete has approx 23 statements (TooManyStatements)
137
- OptionParser::Completion#complete has boolean parameter 'icase' (BooleanParameter)
138
- OptionParser::Completion#complete has the variable name 'k' (UncommunicativeVariableName)
139
- OptionParser::Completion#complete has the variable name 'v' (UncommunicativeVariableName)
140
- OptionParser::Completion#complete refers to candidates more than self (maybe move it to another class?) (FeatureEnvy)
141
- OptionParser::Completion#convert has unused parameter 'opt' (UnusedParameters)
142
- OptionParser::List#accept has the parameter name 't' (UncommunicativeParameterName)
143
- OptionParser::List#accept refers to pat more than self (maybe move it to another class?) (FeatureEnvy)
144
- OptionParser::List#add_banner refers to opt more than self (maybe move it to another class?) (FeatureEnvy)
145
- OptionParser::List#complete has 4 parameters (LongParameterList)
146
- OptionParser::List#complete has boolean parameter 'icase' (BooleanParameter)
147
- OptionParser::List#reject has the parameter name 't' (UncommunicativeParameterName)
148
- OptionParser::List#summarize refers to opt more than self (maybe move it to another class?) (FeatureEnvy)
149
- OptionParser::List#update has 5 parameters (LongParameterList)
150
- OptionParser::List#update has approx 10 statements (TooManyStatements)
151
- OptionParser::List#update has the variable name 'o' (UncommunicativeVariableName)
152
- OptionParser::ParseError#reason is a writable attribute (Attribute)
153
- OptionParser::ParseError#set_option is controlled by argument eq (ControlParameter)
154
- OptionParser::Switch has at least 7 instance variables (TooManyInstanceVariables)
155
- OptionParser::Switch#add_banner has the variable name 's' (UncommunicativeVariableName)
156
- OptionParser::Switch#initialize has 7 parameters (LongParameterList)
157
- OptionParser::Switch#parse_arg calls s.length 2 times (DuplicateMethodCall)
158
- OptionParser::Switch#parse_arg has approx 11 statements (TooManyStatements)
159
- OptionParser::Switch#parse_arg has the variable name 'm' (UncommunicativeVariableName)
160
- OptionParser::Switch#parse_arg has the variable name 's' (UncommunicativeVariableName)
161
- OptionParser::Switch#self.guess has approx 6 statements (TooManyStatements)
162
- OptionParser::Switch#self.guess has the variable name 't' (UncommunicativeVariableName)
163
- OptionParser::Switch#self.incompatible_argument_styles has the parameter name 't' (UncommunicativeParameterName)
164
- OptionParser::Switch#summarize calls indent + l 2 times (DuplicateMethodCall)
165
- OptionParser::Switch#summarize calls left.collect 2 times (DuplicateMethodCall)
166
- OptionParser::Switch#summarize calls left.collect do |s| ... end 2 times (DuplicateMethodCall)
167
- OptionParser::Switch#summarize calls left.collect do |s| ... end.max 2 times (DuplicateMethodCall)
168
- OptionParser::Switch#summarize calls left.collect do |s| ... end.max.to_i 2 times (DuplicateMethodCall)
169
- OptionParser::Switch#summarize calls left.shift 2 times (DuplicateMethodCall)
170
- OptionParser::Switch#summarize calls left[(-1)] 3 times (DuplicateMethodCall)
171
- OptionParser::Switch#summarize calls s.length 3 times (DuplicateMethodCall)
172
- OptionParser::Switch#summarize has 5 parameters (LongParameterList)
173
- OptionParser::Switch#summarize has approx 28 statements (TooManyStatements)
174
- OptionParser::Switch#summarize has the variable name 'l' (UncommunicativeVariableName)
175
- OptionParser::Switch#summarize has the variable name 'r' (UncommunicativeVariableName)
176
- OptionParser::Switch#summarize has the variable name 's' (UncommunicativeVariableName)
177
- OptionParser::Switch::NoArgument#parse has unused parameter 'argv' (UnusedParameters)
178
- OptionParser::Switch::OptionalArgument#parse has unused parameter 'argv' (UnusedParameters)
179
- OptionParser::Switch::PlacedArgument#parse has approx 6 statements (TooManyStatements)
63
+ Attribute: OptionParser#banner is a writable attribute [https://github.com/troessner/reek/blob/master/docs/Attribute.md]
64
+ Attribute: OptionParser#default_argv is a writable attribute [https://github.com/troessner/reek/blob/master/docs/Attribute.md]
65
+ Attribute: OptionParser#program_name is a writable attribute [https://github.com/troessner/reek/blob/master/docs/Attribute.md]
66
+ Attribute: OptionParser#release is a writable attribute [https://github.com/troessner/reek/blob/master/docs/Attribute.md]
67
+ Attribute: OptionParser#summary_indent is a writable attribute [https://github.com/troessner/reek/blob/master/docs/Attribute.md]
68
+ Attribute: OptionParser#summary_width is a writable attribute [https://github.com/troessner/reek/blob/master/docs/Attribute.md]
69
+ Attribute: OptionParser#version is a writable attribute [https://github.com/troessner/reek/blob/master/docs/Attribute.md]
70
+ Attribute: OptionParser::ParseError#reason is a writable attribute [https://github.com/troessner/reek/blob/master/docs/Attribute.md]
71
+ BooleanParameter: OptionParser#complete has boolean parameter 'icase' [https://github.com/troessner/reek/blob/master/docs/Boolean-Parameter.md]
72
+ BooleanParameter: OptionParser::Completion#complete has boolean parameter 'icase' [https://github.com/troessner/reek/blob/master/docs/Boolean-Parameter.md]
73
+ BooleanParameter: OptionParser::List#complete has boolean parameter 'icase' [https://github.com/troessner/reek/blob/master/docs/Boolean-Parameter.md]
74
+ ControlParameter: OptionParser#summarize is controlled by argument blk [https://github.com/troessner/reek/blob/master/docs/Control-Parameter.md]
75
+ ControlParameter: OptionParser::Arguable#options= is controlled by argument opt [https://github.com/troessner/reek/blob/master/docs/Control-Parameter.md]
76
+ ControlParameter: OptionParser::ParseError#set_option is controlled by argument eq [https://github.com/troessner/reek/blob/master/docs/Control-Parameter.md]
77
+ DuplicateMethodCall: OptionParser#getopts calls result[opt] = false 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
78
+ DuplicateMethodCall: OptionParser#make_switch calls default_style.guess(arg = a) 4 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
79
+ DuplicateMethodCall: OptionParser#make_switch calls long << (o = q.downcase) 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
80
+ DuplicateMethodCall: OptionParser#make_switch calls notwice(NilClass, klass, "type") 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
81
+ DuplicateMethodCall: OptionParser#make_switch calls notwice(if a ... end, klass, "type") 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
82
+ DuplicateMethodCall: OptionParser#make_switch calls pattern.method(:convert) 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
83
+ DuplicateMethodCall: OptionParser#make_switch calls pattern.method(:convert).to_proc 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
84
+ DuplicateMethodCall: OptionParser#make_switch calls pattern.respond_to?(:convert) 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
85
+ DuplicateMethodCall: OptionParser#make_switch calls q.downcase 3 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
86
+ DuplicateMethodCall: OptionParser#make_switch calls sdesc << "-#{q}" 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
87
+ DuplicateMethodCall: OptionParser#make_switch calls search(:atype, FalseClass) 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
88
+ DuplicateMethodCall: OptionParser#make_switch calls search(:atype, o) 6 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
89
+ DuplicateMethodCall: OptionParser#order calls argv[0] 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
90
+ DuplicateMethodCall: OptionParser#parse calls argv[0] 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
91
+ DuplicateMethodCall: OptionParser#parse_in_order calls $!.set_option(arg, true) 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
92
+ DuplicateMethodCall: OptionParser#parse_in_order calls cb.call(val) 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
93
+ DuplicateMethodCall: OptionParser#parse_in_order calls raise($!.set_option(arg, true)) 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
94
+ DuplicateMethodCall: OptionParser#parse_in_order calls raise(*exc) 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
95
+ DuplicateMethodCall: OptionParser#parse_in_order calls setter.call(sw.switch_name, val) 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
96
+ DuplicateMethodCall: OptionParser#parse_in_order calls sw.block 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
97
+ DuplicateMethodCall: OptionParser#parse_in_order calls sw.switch_name 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
98
+ DuplicateMethodCall: OptionParser#permute calls argv[0] 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
99
+ DuplicateMethodCall: OptionParser::Completion#complete calls candidates.size 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
100
+ DuplicateMethodCall: OptionParser::Completion#complete calls k.id2name 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
101
+ DuplicateMethodCall: OptionParser::Switch#parse_arg calls s.length 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
102
+ DuplicateMethodCall: OptionParser::Switch#summarize calls indent + l 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
103
+ DuplicateMethodCall: OptionParser::Switch#summarize calls left.collect 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
104
+ DuplicateMethodCall: OptionParser::Switch#summarize calls left.collect do |s| ... end 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
105
+ DuplicateMethodCall: OptionParser::Switch#summarize calls left.collect do |s| ... end.max 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
106
+ DuplicateMethodCall: OptionParser::Switch#summarize calls left.collect do |s| ... end.max.to_i 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
107
+ DuplicateMethodCall: OptionParser::Switch#summarize calls left.shift 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
108
+ DuplicateMethodCall: OptionParser::Switch#summarize calls left[(-1)] 3 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
109
+ DuplicateMethodCall: OptionParser::Switch#summarize calls s.length 3 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
110
+ FeatureEnvy: OptionParser#order refers to argv more than self (maybe move it to another class?) [https://github.com/troessner/reek/blob/master/docs/Feature-Envy.md]
111
+ FeatureEnvy: OptionParser#parse refers to argv more than self (maybe move it to another class?) [https://github.com/troessner/reek/blob/master/docs/Feature-Envy.md]
112
+ FeatureEnvy: OptionParser#permute refers to argv more than self (maybe move it to another class?) [https://github.com/troessner/reek/blob/master/docs/Feature-Envy.md]
113
+ FeatureEnvy: OptionParser::Completion#complete refers to candidates more than self (maybe move it to another class?) [https://github.com/troessner/reek/blob/master/docs/Feature-Envy.md]
114
+ FeatureEnvy: OptionParser::List#accept refers to pat more than self (maybe move it to another class?) [https://github.com/troessner/reek/blob/master/docs/Feature-Envy.md]
115
+ FeatureEnvy: OptionParser::List#add_banner refers to opt more than self (maybe move it to another class?) [https://github.com/troessner/reek/blob/master/docs/Feature-Envy.md]
116
+ FeatureEnvy: OptionParser::List#summarize refers to opt more than self (maybe move it to another class?) [https://github.com/troessner/reek/blob/master/docs/Feature-Envy.md]
117
+ LongParameterList: OptionParser#complete has 4 parameters [https://github.com/troessner/reek/blob/master/docs/Long-Parameter-List.md]
118
+ LongParameterList: OptionParser#summarize has 4 parameters [https://github.com/troessner/reek/blob/master/docs/Long-Parameter-List.md]
119
+ LongParameterList: OptionParser::List#complete has 4 parameters [https://github.com/troessner/reek/blob/master/docs/Long-Parameter-List.md]
120
+ LongParameterList: OptionParser::List#update has 5 parameters [https://github.com/troessner/reek/blob/master/docs/Long-Parameter-List.md]
121
+ LongParameterList: OptionParser::Switch#initialize has 7 parameters [https://github.com/troessner/reek/blob/master/docs/Long-Parameter-List.md]
122
+ LongParameterList: OptionParser::Switch#summarize has 5 parameters [https://github.com/troessner/reek/blob/master/docs/Long-Parameter-List.md]
123
+ ModuleInitialize: OptionParser::Arguable has initialize method [https://github.com/troessner/reek/blob/master/docs/Module-Initialize.md]
124
+ NestedIterators: OptionParser#make_switch contains iterators nested 2 deep [https://github.com/troessner/reek/blob/master/docs/Nested-Iterators.md]
125
+ NilCheck: OptionParser#make_switch performs a nil-check [https://github.com/troessner/reek/blob/master/docs/Nil-Check.md]
126
+ NilCheck: OptionParser#self.inc performs a nil-check [https://github.com/troessner/reek/blob/master/docs/Nil-Check.md]
127
+ RepeatedConditional: OptionParser tests (argv.size == 1) && (Array === argv[0]) at least 3 times [https://github.com/troessner/reek/blob/master/docs/Repeated-Conditional.md]
128
+ RepeatedConditional: OptionParser tests a at least 7 times [https://github.com/troessner/reek/blob/master/docs/Repeated-Conditional.md]
129
+ RepeatedConditional: OptionParser tests default_pattern at least 7 times [https://github.com/troessner/reek/blob/master/docs/Repeated-Conditional.md]
130
+ RepeatedConditional: OptionParser tests not_style at least 3 times [https://github.com/troessner/reek/blob/master/docs/Repeated-Conditional.md]
131
+ RepeatedConditional: OptionParser tests s at least 7 times [https://github.com/troessner/reek/blob/master/docs/Repeated-Conditional.md]
132
+ TooManyInstanceVariables: OptionParser has at least 6 instance variables [https://github.com/troessner/reek/blob/master/docs/Too-Many-Instance-Variables.md]
133
+ TooManyInstanceVariables: OptionParser::Switch has at least 7 instance variables [https://github.com/troessner/reek/blob/master/docs/Too-Many-Instance-Variables.md]
134
+ TooManyMethods: OptionParser has at least 42 methods [https://github.com/troessner/reek/blob/master/docs/Too-Many-Methods.md]
135
+ TooManyStatements: OptionParser#complete has approx 6 statements [https://github.com/troessner/reek/blob/master/docs/Too-Many-Statements.md]
136
+ TooManyStatements: OptionParser#getopts has approx 18 statements [https://github.com/troessner/reek/blob/master/docs/Too-Many-Statements.md]
137
+ TooManyStatements: OptionParser#load has approx 6 statements [https://github.com/troessner/reek/blob/master/docs/Too-Many-Statements.md]
138
+ TooManyStatements: OptionParser#make_switch has approx 72 statements [https://github.com/troessner/reek/blob/master/docs/Too-Many-Statements.md]
139
+ TooManyStatements: OptionParser#parse_in_order has approx 35 statements [https://github.com/troessner/reek/blob/master/docs/Too-Many-Statements.md]
140
+ TooManyStatements: OptionParser#permute! has approx 6 statements [https://github.com/troessner/reek/blob/master/docs/Too-Many-Statements.md]
141
+ TooManyStatements: OptionParser::Arguable#options has approx 6 statements [https://github.com/troessner/reek/blob/master/docs/Too-Many-Statements.md]
142
+ TooManyStatements: OptionParser::Completion#complete has approx 23 statements [https://github.com/troessner/reek/blob/master/docs/Too-Many-Statements.md]
143
+ TooManyStatements: OptionParser::List#update has approx 10 statements [https://github.com/troessner/reek/blob/master/docs/Too-Many-Statements.md]
144
+ TooManyStatements: OptionParser::Switch#parse_arg has approx 11 statements [https://github.com/troessner/reek/blob/master/docs/Too-Many-Statements.md]
145
+ TooManyStatements: OptionParser::Switch#self.guess has approx 6 statements [https://github.com/troessner/reek/blob/master/docs/Too-Many-Statements.md]
146
+ TooManyStatements: OptionParser::Switch#summarize has approx 28 statements [https://github.com/troessner/reek/blob/master/docs/Too-Many-Statements.md]
147
+ TooManyStatements: OptionParser::Switch::PlacedArgument#parse has approx 6 statements [https://github.com/troessner/reek/blob/master/docs/Too-Many-Statements.md]
148
+ UncommunicativeParameterName: OptionParser::List#accept has the parameter name 't' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Parameter-Name.md]
149
+ UncommunicativeParameterName: OptionParser::List#reject has the parameter name 't' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Parameter-Name.md]
150
+ UncommunicativeParameterName: OptionParser::Switch#self.incompatible_argument_styles has the parameter name 't' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Parameter-Name.md]
151
+ UncommunicativeVariableName: OptionParser has the variable name 'f' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
152
+ UncommunicativeVariableName: OptionParser has the variable name 'k' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
153
+ UncommunicativeVariableName: OptionParser has the variable name 'o' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
154
+ UncommunicativeVariableName: OptionParser has the variable name 's' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
155
+ UncommunicativeVariableName: OptionParser has the variable name 'v' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
156
+ UncommunicativeVariableName: OptionParser#load has the variable name 's' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
157
+ UncommunicativeVariableName: OptionParser#make_switch has the variable name 'a' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
158
+ UncommunicativeVariableName: OptionParser#make_switch has the variable name 'c' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
159
+ UncommunicativeVariableName: OptionParser#make_switch has the variable name 'n' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
160
+ UncommunicativeVariableName: OptionParser#make_switch has the variable name 'o' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
161
+ UncommunicativeVariableName: OptionParser#make_switch has the variable name 'q' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
162
+ UncommunicativeVariableName: OptionParser#make_switch has the variable name 's' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
163
+ UncommunicativeVariableName: OptionParser#make_switch has the variable name 'v' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
164
+ UncommunicativeVariableName: OptionParser#search has the variable name 'k' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
165
+ UncommunicativeVariableName: OptionParser#summarize has the variable name 'l' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
166
+ UncommunicativeVariableName: OptionParser#ver has the variable name 'v' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
167
+ UncommunicativeVariableName: OptionParser::Completion#complete has the variable name 'k' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
168
+ UncommunicativeVariableName: OptionParser::Completion#complete has the variable name 'v' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
169
+ UncommunicativeVariableName: OptionParser::List#update has the variable name 'o' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
170
+ UncommunicativeVariableName: OptionParser::Switch#add_banner has the variable name 's' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
171
+ UncommunicativeVariableName: OptionParser::Switch#parse_arg has the variable name 'm' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
172
+ UncommunicativeVariableName: OptionParser::Switch#parse_arg has the variable name 's' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
173
+ UncommunicativeVariableName: OptionParser::Switch#self.guess has the variable name 't' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
174
+ UncommunicativeVariableName: OptionParser::Switch#summarize has the variable name 'l' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
175
+ UncommunicativeVariableName: OptionParser::Switch#summarize has the variable name 'r' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
176
+ UncommunicativeVariableName: OptionParser::Switch#summarize has the variable name 's' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
177
+ UnusedParameters: OptionParser::Completion#convert has unused parameter 'opt' [https://github.com/troessner/reek/blob/master/docs/Unused-Parameters.md]
178
+ UnusedParameters: OptionParser::Switch::NoArgument#parse has unused parameter 'argv' [https://github.com/troessner/reek/blob/master/docs/Unused-Parameters.md]
179
+ UnusedParameters: OptionParser::Switch::OptionalArgument#parse has unused parameter 'argv' [https://github.com/troessner/reek/blob/master/docs/Unused-Parameters.md]
180
180
  redcloth.rb -- 101 warnings:
181
- RedCloth has at least 44 methods (TooManyMethods)
182
- RedCloth has the variable name 'a' (UncommunicativeVariableName)
183
- RedCloth has the variable name 'b' (UncommunicativeVariableName)
184
- RedCloth takes parameters [atts, cite, content, tag] to 3 methods (DataClump)
185
- RedCloth tests atts at least 6 times (RepeatedConditional)
186
- RedCloth tests codepre.zero? at least 3 times (RepeatedConditional)
187
- RedCloth tests href at least 3 times (RepeatedConditional)
188
- RedCloth tests title at least 4 times (RepeatedConditional)
189
- RedCloth#block_markdown_atx refers to text more than self (maybe move it to another class?) (FeatureEnvy)
190
- RedCloth#block_markdown_bq has approx 6 statements (TooManyStatements)
191
- RedCloth#block_markdown_lists has unused parameter 'text' (UnusedParameters)
192
- RedCloth#block_markdown_rule doesn't depend on instance state (maybe move it to another class?) (UtilityFunction)
193
- RedCloth#block_markdown_setext refers to text more than self (maybe move it to another class?) (FeatureEnvy)
194
- RedCloth#block_textile_lists calls depth.last 5 times (DuplicateMethodCall)
195
- RedCloth#block_textile_lists calls depth.last.length 2 times (DuplicateMethodCall)
196
- RedCloth#block_textile_lists calls depth[i] 2 times (DuplicateMethodCall)
197
- RedCloth#block_textile_lists calls line_id - 1 2 times (DuplicateMethodCall)
198
- RedCloth#block_textile_lists calls lines[line_id - 1] 2 times (DuplicateMethodCall)
199
- RedCloth#block_textile_lists calls tl.length 3 times (DuplicateMethodCall)
200
- RedCloth#block_textile_lists contains iterators nested 3 deep (NestedIterators)
201
- RedCloth#block_textile_lists has approx 21 statements (TooManyStatements)
202
- RedCloth#block_textile_lists has the variable name 'i' (UncommunicativeVariableName)
203
- RedCloth#block_textile_lists has the variable name 'v' (UncommunicativeVariableName)
204
- RedCloth#block_textile_lists refers to depth more than self (maybe move it to another class?) (FeatureEnvy)
205
- RedCloth#block_textile_table contains iterators nested 3 deep (NestedIterators)
206
- RedCloth#block_textile_table has approx 19 statements (TooManyStatements)
207
- RedCloth#block_textile_table has the variable name 'x' (UncommunicativeVariableName)
208
- RedCloth#blocks contains iterators nested 2 deep (NestedIterators)
209
- RedCloth#blocks has approx 19 statements (TooManyStatements)
210
- RedCloth#blocks has boolean parameter 'deep_code' (BooleanParameter)
211
- RedCloth#blocks is controlled by argument deep_code (ControlParameter)
212
- RedCloth#blocks refers to blk more than self (maybe move it to another class?) (FeatureEnvy)
213
- RedCloth#clean_html calls tags[tag] 2 times (DuplicateMethodCall)
214
- RedCloth#clean_html contains iterators nested 2 deep (NestedIterators)
215
- RedCloth#clean_html doesn't depend on instance state (maybe move it to another class?) (UtilityFunction)
216
- RedCloth#clean_html has approx 15 statements (TooManyStatements)
217
- RedCloth#clean_html has the variable name 'q' (UncommunicativeVariableName)
218
- RedCloth#clean_html has the variable name 'q2' (UncommunicativeVariableName)
219
- RedCloth#clean_white_space has approx 7 statements (TooManyStatements)
220
- RedCloth#clean_white_space refers to text more than self (maybe move it to another class?) (FeatureEnvy)
221
- RedCloth#filter_html is a writable attribute (Attribute)
222
- RedCloth#filter_styles is a writable attribute (Attribute)
223
- RedCloth#flush_left doesn't depend on instance state (maybe move it to another class?) (UtilityFunction)
224
- RedCloth#footnote_ref doesn't depend on instance state (maybe move it to another class?) (UtilityFunction)
225
- RedCloth#glyphs_textile has approx 10 statements (TooManyStatements)
226
- RedCloth#h_align doesn't depend on instance state (maybe move it to another class?) (UtilityFunction)
227
- RedCloth#hard_breaks is a writable attribute (Attribute)
228
- RedCloth#htmlesc doesn't depend on instance state (maybe move it to another class?) (UtilityFunction)
229
- RedCloth#htmlesc is controlled by argument mode (ControlParameter)
230
- RedCloth#incoming_entities doesn't depend on instance state (maybe move it to another class?) (UtilityFunction)
231
- RedCloth#initialize has the variable name 'r' (UncommunicativeVariableName)
232
- RedCloth#inline contains iterators nested 2 deep (NestedIterators)
233
- RedCloth#inline_markdown_link has approx 6 statements (TooManyStatements)
234
- RedCloth#inline_markdown_link has the variable name 'm' (UncommunicativeVariableName)
235
- RedCloth#inline_markdown_reflink has approx 8 statements (TooManyStatements)
236
- RedCloth#inline_markdown_reflink has the variable name 'm' (UncommunicativeVariableName)
237
- RedCloth#inline_textile_code has the variable name 'm' (UncommunicativeVariableName)
238
- RedCloth#inline_textile_image has approx 17 statements (TooManyStatements)
239
- RedCloth#inline_textile_image has the variable name 'href_a1' (UncommunicativeVariableName)
240
- RedCloth#inline_textile_image has the variable name 'href_a2' (UncommunicativeVariableName)
241
- RedCloth#inline_textile_image has the variable name 'm' (UncommunicativeVariableName)
242
- RedCloth#inline_textile_link has approx 9 statements (TooManyStatements)
243
- RedCloth#inline_textile_link has the variable name 'm' (UncommunicativeVariableName)
244
- RedCloth#inline_textile_span contains iterators nested 2 deep (NestedIterators)
245
- RedCloth#inline_textile_span has approx 9 statements (TooManyStatements)
246
- RedCloth#inline_textile_span has the variable name 'm' (UncommunicativeVariableName)
247
- RedCloth#lT doesn't depend on instance state (maybe move it to another class?) (UtilityFunction)
248
- RedCloth#lT has the name 'lT' (UncommunicativeMethodName)
249
- RedCloth#lT is controlled by argument text (ControlParameter)
250
- RedCloth#lite_mode is a writable attribute (Attribute)
251
- RedCloth#no_span_caps is a writable attribute (Attribute)
252
- RedCloth#no_textile doesn't depend on instance state (maybe move it to another class?) (UtilityFunction)
253
- RedCloth#pba calls $1.length 2 times (DuplicateMethodCall)
254
- RedCloth#pba has approx 21 statements (TooManyStatements)
255
- RedCloth#pba is controlled by argument element (ControlParameter)
256
- RedCloth#pba refers to text more than self (maybe move it to another class?) (FeatureEnvy)
257
- RedCloth#refs_markdown has the variable name 'm' (UncommunicativeVariableName)
258
- RedCloth#refs_textile has the variable name 'm' (UncommunicativeVariableName)
259
- RedCloth#retrieve has the variable name 'i' (UncommunicativeVariableName)
260
- RedCloth#retrieve has the variable name 'r' (UncommunicativeVariableName)
261
- RedCloth#rip_offtags calls (codepre - used_offtags.length) > 0 2 times (DuplicateMethodCall)
262
- RedCloth#rip_offtags calls @pre_list.last 2 times (DuplicateMethodCall)
263
- RedCloth#rip_offtags calls @pre_list.last << line 2 times (DuplicateMethodCall)
264
- RedCloth#rip_offtags calls codepre - used_offtags.length 2 times (DuplicateMethodCall)
265
- RedCloth#rip_offtags calls codepre.zero? 2 times (DuplicateMethodCall)
266
- RedCloth#rip_offtags calls htmlesc(line, :NoQuotes) 2 times (DuplicateMethodCall)
267
- RedCloth#rip_offtags calls used_offtags.length 2 times (DuplicateMethodCall)
268
- RedCloth#rip_offtags calls used_offtags["notextile"] 3 times (DuplicateMethodCall)
269
- RedCloth#rip_offtags has approx 18 statements (TooManyStatements)
270
- RedCloth#rules is a writable attribute (Attribute)
271
- RedCloth#textile_bq has 4 parameters (LongParameterList)
272
- RedCloth#textile_bq has unused parameter 'tag' (UnusedParameters)
273
- RedCloth#textile_fn_ has 5 parameters (LongParameterList)
274
- RedCloth#textile_fn_ has unused parameter 'cite' (UnusedParameters)
275
- RedCloth#textile_fn_ has unused parameter 'tag' (UnusedParameters)
276
- RedCloth#textile_p has 4 parameters (LongParameterList)
277
- RedCloth#textile_p has unused parameter 'cite' (UnusedParameters)
278
- RedCloth#textile_popup_help has the parameter name 'windowH' (UncommunicativeParameterName)
279
- RedCloth#textile_popup_help has the parameter name 'windowW' (UncommunicativeParameterName)
280
- RedCloth#to_html has approx 26 statements (TooManyStatements)
281
- RedCloth#v_align doesn't depend on instance state (maybe move it to another class?) (UtilityFunction)
181
+ Attribute: RedCloth#filter_html is a writable attribute [https://github.com/troessner/reek/blob/master/docs/Attribute.md]
182
+ Attribute: RedCloth#filter_styles is a writable attribute [https://github.com/troessner/reek/blob/master/docs/Attribute.md]
183
+ Attribute: RedCloth#hard_breaks is a writable attribute [https://github.com/troessner/reek/blob/master/docs/Attribute.md]
184
+ Attribute: RedCloth#lite_mode is a writable attribute [https://github.com/troessner/reek/blob/master/docs/Attribute.md]
185
+ Attribute: RedCloth#no_span_caps is a writable attribute [https://github.com/troessner/reek/blob/master/docs/Attribute.md]
186
+ Attribute: RedCloth#rules is a writable attribute [https://github.com/troessner/reek/blob/master/docs/Attribute.md]
187
+ BooleanParameter: RedCloth#blocks has boolean parameter 'deep_code' [https://github.com/troessner/reek/blob/master/docs/Boolean-Parameter.md]
188
+ ControlParameter: RedCloth#blocks is controlled by argument deep_code [https://github.com/troessner/reek/blob/master/docs/Control-Parameter.md]
189
+ ControlParameter: RedCloth#htmlesc is controlled by argument mode [https://github.com/troessner/reek/blob/master/docs/Control-Parameter.md]
190
+ ControlParameter: RedCloth#lT is controlled by argument text [https://github.com/troessner/reek/blob/master/docs/Control-Parameter.md]
191
+ ControlParameter: RedCloth#pba is controlled by argument element [https://github.com/troessner/reek/blob/master/docs/Control-Parameter.md]
192
+ DataClump: RedCloth takes parameters [atts, cite, content, tag] to 3 methods [https://github.com/troessner/reek/blob/master/docs/Data-Clump.md]
193
+ DuplicateMethodCall: RedCloth#block_textile_lists calls depth.last 5 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
194
+ DuplicateMethodCall: RedCloth#block_textile_lists calls depth.last.length 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
195
+ DuplicateMethodCall: RedCloth#block_textile_lists calls depth[i] 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
196
+ DuplicateMethodCall: RedCloth#block_textile_lists calls line_id - 1 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
197
+ DuplicateMethodCall: RedCloth#block_textile_lists calls lines[line_id - 1] 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
198
+ DuplicateMethodCall: RedCloth#block_textile_lists calls tl.length 3 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
199
+ DuplicateMethodCall: RedCloth#clean_html calls tags[tag] 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
200
+ DuplicateMethodCall: RedCloth#pba calls $1.length 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
201
+ DuplicateMethodCall: RedCloth#rip_offtags calls (codepre - used_offtags.length) > 0 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
202
+ DuplicateMethodCall: RedCloth#rip_offtags calls @pre_list.last 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
203
+ DuplicateMethodCall: RedCloth#rip_offtags calls @pre_list.last << line 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
204
+ DuplicateMethodCall: RedCloth#rip_offtags calls codepre - used_offtags.length 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
205
+ DuplicateMethodCall: RedCloth#rip_offtags calls codepre.zero? 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
206
+ DuplicateMethodCall: RedCloth#rip_offtags calls htmlesc(line, :NoQuotes) 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
207
+ DuplicateMethodCall: RedCloth#rip_offtags calls used_offtags.length 2 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
208
+ DuplicateMethodCall: RedCloth#rip_offtags calls used_offtags["notextile"] 3 times [https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md]
209
+ FeatureEnvy: RedCloth#block_markdown_atx refers to text more than self (maybe move it to another class?) [https://github.com/troessner/reek/blob/master/docs/Feature-Envy.md]
210
+ FeatureEnvy: RedCloth#block_markdown_setext refers to text more than self (maybe move it to another class?) [https://github.com/troessner/reek/blob/master/docs/Feature-Envy.md]
211
+ FeatureEnvy: RedCloth#block_textile_lists refers to depth more than self (maybe move it to another class?) [https://github.com/troessner/reek/blob/master/docs/Feature-Envy.md]
212
+ FeatureEnvy: RedCloth#blocks refers to blk more than self (maybe move it to another class?) [https://github.com/troessner/reek/blob/master/docs/Feature-Envy.md]
213
+ FeatureEnvy: RedCloth#clean_white_space refers to text more than self (maybe move it to another class?) [https://github.com/troessner/reek/blob/master/docs/Feature-Envy.md]
214
+ FeatureEnvy: RedCloth#pba refers to text more than self (maybe move it to another class?) [https://github.com/troessner/reek/blob/master/docs/Feature-Envy.md]
215
+ LongParameterList: RedCloth#textile_bq has 4 parameters [https://github.com/troessner/reek/blob/master/docs/Long-Parameter-List.md]
216
+ LongParameterList: RedCloth#textile_fn_ has 5 parameters [https://github.com/troessner/reek/blob/master/docs/Long-Parameter-List.md]
217
+ LongParameterList: RedCloth#textile_p has 4 parameters [https://github.com/troessner/reek/blob/master/docs/Long-Parameter-List.md]
218
+ NestedIterators: RedCloth#block_textile_lists contains iterators nested 3 deep [https://github.com/troessner/reek/blob/master/docs/Nested-Iterators.md]
219
+ NestedIterators: RedCloth#block_textile_table contains iterators nested 3 deep [https://github.com/troessner/reek/blob/master/docs/Nested-Iterators.md]
220
+ NestedIterators: RedCloth#blocks contains iterators nested 2 deep [https://github.com/troessner/reek/blob/master/docs/Nested-Iterators.md]
221
+ NestedIterators: RedCloth#clean_html contains iterators nested 2 deep [https://github.com/troessner/reek/blob/master/docs/Nested-Iterators.md]
222
+ NestedIterators: RedCloth#inline contains iterators nested 2 deep [https://github.com/troessner/reek/blob/master/docs/Nested-Iterators.md]
223
+ NestedIterators: RedCloth#inline_textile_span contains iterators nested 2 deep [https://github.com/troessner/reek/blob/master/docs/Nested-Iterators.md]
224
+ RepeatedConditional: RedCloth tests atts at least 6 times [https://github.com/troessner/reek/blob/master/docs/Repeated-Conditional.md]
225
+ RepeatedConditional: RedCloth tests codepre.zero? at least 3 times [https://github.com/troessner/reek/blob/master/docs/Repeated-Conditional.md]
226
+ RepeatedConditional: RedCloth tests href at least 3 times [https://github.com/troessner/reek/blob/master/docs/Repeated-Conditional.md]
227
+ RepeatedConditional: RedCloth tests title at least 4 times [https://github.com/troessner/reek/blob/master/docs/Repeated-Conditional.md]
228
+ TooManyMethods: RedCloth has at least 44 methods [https://github.com/troessner/reek/blob/master/docs/Too-Many-Methods.md]
229
+ TooManyStatements: RedCloth#block_markdown_bq has approx 6 statements [https://github.com/troessner/reek/blob/master/docs/Too-Many-Statements.md]
230
+ TooManyStatements: RedCloth#block_textile_lists has approx 21 statements [https://github.com/troessner/reek/blob/master/docs/Too-Many-Statements.md]
231
+ TooManyStatements: RedCloth#block_textile_table has approx 19 statements [https://github.com/troessner/reek/blob/master/docs/Too-Many-Statements.md]
232
+ TooManyStatements: RedCloth#blocks has approx 19 statements [https://github.com/troessner/reek/blob/master/docs/Too-Many-Statements.md]
233
+ TooManyStatements: RedCloth#clean_html has approx 15 statements [https://github.com/troessner/reek/blob/master/docs/Too-Many-Statements.md]
234
+ TooManyStatements: RedCloth#clean_white_space has approx 7 statements [https://github.com/troessner/reek/blob/master/docs/Too-Many-Statements.md]
235
+ TooManyStatements: RedCloth#glyphs_textile has approx 10 statements [https://github.com/troessner/reek/blob/master/docs/Too-Many-Statements.md]
236
+ TooManyStatements: RedCloth#inline_markdown_link has approx 6 statements [https://github.com/troessner/reek/blob/master/docs/Too-Many-Statements.md]
237
+ TooManyStatements: RedCloth#inline_markdown_reflink has approx 8 statements [https://github.com/troessner/reek/blob/master/docs/Too-Many-Statements.md]
238
+ TooManyStatements: RedCloth#inline_textile_image has approx 17 statements [https://github.com/troessner/reek/blob/master/docs/Too-Many-Statements.md]
239
+ TooManyStatements: RedCloth#inline_textile_link has approx 9 statements [https://github.com/troessner/reek/blob/master/docs/Too-Many-Statements.md]
240
+ TooManyStatements: RedCloth#inline_textile_span has approx 9 statements [https://github.com/troessner/reek/blob/master/docs/Too-Many-Statements.md]
241
+ TooManyStatements: RedCloth#pba has approx 21 statements [https://github.com/troessner/reek/blob/master/docs/Too-Many-Statements.md]
242
+ TooManyStatements: RedCloth#rip_offtags has approx 18 statements [https://github.com/troessner/reek/blob/master/docs/Too-Many-Statements.md]
243
+ TooManyStatements: RedCloth#to_html has approx 26 statements [https://github.com/troessner/reek/blob/master/docs/Too-Many-Statements.md]
244
+ UncommunicativeMethodName: RedCloth#lT has the name 'lT' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Method-Name.md]
245
+ UncommunicativeParameterName: RedCloth#textile_popup_help has the parameter name 'windowH' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Parameter-Name.md]
246
+ UncommunicativeParameterName: RedCloth#textile_popup_help has the parameter name 'windowW' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Parameter-Name.md]
247
+ UncommunicativeVariableName: RedCloth has the variable name 'a' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
248
+ UncommunicativeVariableName: RedCloth has the variable name 'b' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
249
+ UncommunicativeVariableName: RedCloth#block_textile_lists has the variable name 'i' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
250
+ UncommunicativeVariableName: RedCloth#block_textile_lists has the variable name 'v' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
251
+ UncommunicativeVariableName: RedCloth#block_textile_table has the variable name 'x' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
252
+ UncommunicativeVariableName: RedCloth#clean_html has the variable name 'q' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
253
+ UncommunicativeVariableName: RedCloth#clean_html has the variable name 'q2' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
254
+ UncommunicativeVariableName: RedCloth#initialize has the variable name 'r' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
255
+ UncommunicativeVariableName: RedCloth#inline_markdown_link has the variable name 'm' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
256
+ UncommunicativeVariableName: RedCloth#inline_markdown_reflink has the variable name 'm' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
257
+ UncommunicativeVariableName: RedCloth#inline_textile_code has the variable name 'm' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
258
+ UncommunicativeVariableName: RedCloth#inline_textile_image has the variable name 'href_a1' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
259
+ UncommunicativeVariableName: RedCloth#inline_textile_image has the variable name 'href_a2' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
260
+ UncommunicativeVariableName: RedCloth#inline_textile_image has the variable name 'm' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
261
+ UncommunicativeVariableName: RedCloth#inline_textile_link has the variable name 'm' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
262
+ UncommunicativeVariableName: RedCloth#inline_textile_span has the variable name 'm' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
263
+ UncommunicativeVariableName: RedCloth#refs_markdown has the variable name 'm' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
264
+ UncommunicativeVariableName: RedCloth#refs_textile has the variable name 'm' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
265
+ UncommunicativeVariableName: RedCloth#retrieve has the variable name 'i' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
266
+ UncommunicativeVariableName: RedCloth#retrieve has the variable name 'r' [https://github.com/troessner/reek/blob/master/docs/Uncommunicative-Variable-Name.md]
267
+ UnusedParameters: RedCloth#block_markdown_lists has unused parameter 'text' [https://github.com/troessner/reek/blob/master/docs/Unused-Parameters.md]
268
+ UnusedParameters: RedCloth#textile_bq has unused parameter 'tag' [https://github.com/troessner/reek/blob/master/docs/Unused-Parameters.md]
269
+ UnusedParameters: RedCloth#textile_fn_ has unused parameter 'cite' [https://github.com/troessner/reek/blob/master/docs/Unused-Parameters.md]
270
+ UnusedParameters: RedCloth#textile_fn_ has unused parameter 'tag' [https://github.com/troessner/reek/blob/master/docs/Unused-Parameters.md]
271
+ UnusedParameters: RedCloth#textile_p has unused parameter 'cite' [https://github.com/troessner/reek/blob/master/docs/Unused-Parameters.md]
272
+ UtilityFunction: RedCloth#block_markdown_rule doesn't depend on instance state (maybe move it to another class?) [https://github.com/troessner/reek/blob/master/docs/Utility-Function.md]
273
+ UtilityFunction: RedCloth#clean_html doesn't depend on instance state (maybe move it to another class?) [https://github.com/troessner/reek/blob/master/docs/Utility-Function.md]
274
+ UtilityFunction: RedCloth#flush_left doesn't depend on instance state (maybe move it to another class?) [https://github.com/troessner/reek/blob/master/docs/Utility-Function.md]
275
+ UtilityFunction: RedCloth#footnote_ref doesn't depend on instance state (maybe move it to another class?) [https://github.com/troessner/reek/blob/master/docs/Utility-Function.md]
276
+ UtilityFunction: RedCloth#h_align doesn't depend on instance state (maybe move it to another class?) [https://github.com/troessner/reek/blob/master/docs/Utility-Function.md]
277
+ UtilityFunction: RedCloth#htmlesc doesn't depend on instance state (maybe move it to another class?) [https://github.com/troessner/reek/blob/master/docs/Utility-Function.md]
278
+ UtilityFunction: RedCloth#incoming_entities doesn't depend on instance state (maybe move it to another class?) [https://github.com/troessner/reek/blob/master/docs/Utility-Function.md]
279
+ UtilityFunction: RedCloth#lT doesn't depend on instance state (maybe move it to another class?) [https://github.com/troessner/reek/blob/master/docs/Utility-Function.md]
280
+ UtilityFunction: RedCloth#no_textile doesn't depend on instance state (maybe move it to another class?) [https://github.com/troessner/reek/blob/master/docs/Utility-Function.md]
281
+ UtilityFunction: RedCloth#v_align doesn't depend on instance state (maybe move it to another class?) [https://github.com/troessner/reek/blob/master/docs/Utility-Function.md]
282
282
  265 total warnings
283
283
  """