rubycritic 0.0.12 → 0.0.13
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.
- checksums.yaml +4 -4
- data/lib/rubycritic.rb +3 -22
- data/lib/rubycritic/adapters/complexity/flog.rb +1 -1
- data/lib/rubycritic/adapters/smell/flay.rb +1 -1
- data/lib/rubycritic/adapters/smell/flog.rb +1 -1
- data/lib/rubycritic/adapters/smell/reek.rb +1 -1
- data/lib/rubycritic/analysed_files_builder.rb +36 -0
- data/lib/rubycritic/analysers/config.reek +6 -2
- data/lib/rubycritic/analysers_runner.rb +2 -2
- data/lib/rubycritic/cli.rb +2 -1
- data/lib/rubycritic/core/analysed_file.rb +22 -0
- data/lib/rubycritic/{location.rb → core/location.rb} +0 -0
- data/lib/rubycritic/{smell.rb → core/smell.rb} +10 -4
- data/lib/rubycritic/orchestrators/base.rb +27 -0
- data/lib/rubycritic/orchestrators/main.rb +14 -0
- data/lib/rubycritic/orchestrators/mini.rb +14 -0
- data/lib/rubycritic/report_generators/assets/javascripts/application.js +2 -9
- data/lib/rubycritic/report_generators/base.rb +43 -0
- data/lib/rubycritic/report_generators/code_file.rb +40 -0
- data/lib/rubycritic/report_generators/code_index.rb +29 -0
- data/lib/rubycritic/report_generators/line.rb +29 -0
- data/lib/rubycritic/report_generators/overview.rb +26 -0
- data/lib/rubycritic/report_generators/smells_index.rb +25 -0
- data/lib/rubycritic/report_generators/templates/{file.html.erb → code_file.html.erb} +2 -2
- data/lib/rubycritic/report_generators/templates/code_index.html.erb +3 -3
- data/lib/rubycritic/report_generators/templates/smells_index.html.erb +1 -1
- data/lib/rubycritic/report_generators/view_helpers.rb +0 -4
- data/lib/rubycritic/reporters/main.rb +55 -0
- data/lib/rubycritic/reporters/mini.rb +26 -0
- data/lib/rubycritic/revision_comparator.rb +1 -1
- data/lib/rubycritic/source_locator.rb +4 -4
- data/lib/rubycritic/turbulence.rb +8 -18
- data/lib/rubycritic/version.rb +1 -1
- data/test/lib/rubycritic/{quality_adapters → adapters/complexity}/flog_test.rb +2 -2
- data/test/lib/rubycritic/{smell_adapters → adapters/smell}/flay_test.rb +2 -2
- data/test/lib/rubycritic/{smell_adapters → adapters/smell}/flog_test.rb +0 -0
- data/test/lib/rubycritic/{smell_adapters → adapters/smell}/reek_test.rb +0 -0
- data/test/lib/rubycritic/analysed_files_builder_test.rb +36 -0
- data/test/lib/rubycritic/analysers_runner_test.rb +2 -2
- data/test/lib/rubycritic/core/analysed_file_test.rb +51 -0
- data/test/lib/rubycritic/{location_test.rb → core/location_test.rb} +1 -1
- data/test/lib/rubycritic/core/smell_test.rb +80 -0
- data/test/lib/rubycritic/{smells_array_test.rb → core/smells_array_test.rb} +1 -1
- data/test/lib/rubycritic/smells_status_setter_test.rb +1 -1
- data/test/lib/rubycritic/turbulence_test.rb +9 -18
- data/test/samples/reek/not_smelly.rb +10 -1
- metadata +36 -26
- data/lib/rubycritic/report_generators/base_generator.rb +0 -41
- data/lib/rubycritic/report_generators/code_index_generator.rb +0 -32
- data/lib/rubycritic/report_generators/file_generator.rb +0 -41
- data/lib/rubycritic/report_generators/line_generator.rb +0 -27
- data/lib/rubycritic/report_generators/overview_generator.rb +0 -24
- data/lib/rubycritic/report_generators/reporter.rb +0 -67
- data/lib/rubycritic/report_generators/smells_index_generator.rb +0 -23
- data/test/lib/rubycritic/smell_test.rb +0 -71
@@ -1,27 +1,18 @@
|
|
1
1
|
require "test_helper"
|
2
2
|
require "rubycritic/turbulence"
|
3
|
-
require "
|
3
|
+
require "ostruct"
|
4
4
|
|
5
5
|
describe Rubycritic::Turbulence do
|
6
|
-
before do
|
7
|
-
@sample_path = "test/samples/flog/smelly.rb"
|
8
|
-
@sample_paths = [@sample_path]
|
9
|
-
@source_control_system = SourceControlSystemDouble.new
|
10
|
-
end
|
11
|
-
|
12
6
|
describe "#data" do
|
13
|
-
it "returns
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
7
|
+
it "returns json data that maps pathname, churn and complexity to name, x and y" do
|
8
|
+
files = [AnalysedFileDouble.new(:pathname => "./foo.rb", :churn => 1, :complexity => 2)]
|
9
|
+
turbulence_data = Rubycritic::Turbulence.new(files).data
|
10
|
+
instance_parsed_json = JSON.parse(turbulence_data).first
|
11
|
+
instance_parsed_json["name"].must_equal "./foo.rb"
|
12
|
+
instance_parsed_json["x"].must_equal 1
|
13
|
+
instance_parsed_json["y"].must_equal 2
|
19
14
|
end
|
20
15
|
end
|
21
16
|
end
|
22
17
|
|
23
|
-
class
|
24
|
-
def revisions_count(file)
|
25
|
-
1 # churn
|
26
|
-
end
|
27
|
-
end
|
18
|
+
class AnalysedFileDouble < OpenStruct; end
|
@@ -5,10 +5,19 @@ class Perfume
|
|
5
5
|
oneVariable = oneParameter
|
6
6
|
end
|
7
7
|
|
8
|
-
def
|
8
|
+
def allow_nesting_iterators_two_levels_deep
|
9
9
|
loop do
|
10
10
|
loop do
|
11
11
|
end
|
12
12
|
end
|
13
13
|
end
|
14
|
+
|
15
|
+
def method_with_too_many_statements
|
16
|
+
do_something
|
17
|
+
do_something
|
18
|
+
do_something
|
19
|
+
do_something
|
20
|
+
do_something
|
21
|
+
do_something
|
22
|
+
end
|
14
23
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubycritic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Guilherme Simoes
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-05-
|
11
|
+
date: 2014-05-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: virtus
|
@@ -145,6 +145,7 @@ files:
|
|
145
145
|
- lib/rubycritic/adapters/smell/flay.rb
|
146
146
|
- lib/rubycritic/adapters/smell/flog.rb
|
147
147
|
- lib/rubycritic/adapters/smell/reek.rb
|
148
|
+
- lib/rubycritic/analysed_files_builder.rb
|
148
149
|
- lib/rubycritic/analysers/churn.rb
|
149
150
|
- lib/rubycritic/analysers/config.reek
|
150
151
|
- lib/rubycritic/analysers/flay.rb
|
@@ -153,7 +154,12 @@ files:
|
|
153
154
|
- lib/rubycritic/analysers_runner.rb
|
154
155
|
- lib/rubycritic/cli.rb
|
155
156
|
- lib/rubycritic/configuration.rb
|
156
|
-
- lib/rubycritic/
|
157
|
+
- lib/rubycritic/core/analysed_file.rb
|
158
|
+
- lib/rubycritic/core/location.rb
|
159
|
+
- lib/rubycritic/core/smell.rb
|
160
|
+
- lib/rubycritic/orchestrators/base.rb
|
161
|
+
- lib/rubycritic/orchestrators/main.rb
|
162
|
+
- lib/rubycritic/orchestrators/mini.rb
|
157
163
|
- lib/rubycritic/report_generators/assets/javascripts/application.js
|
158
164
|
- lib/rubycritic/report_generators/assets/javascripts/highcharts.src-4.0.1.js
|
159
165
|
- lib/rubycritic/report_generators/assets/javascripts/jquery-2.1.0.js
|
@@ -162,23 +168,23 @@ files:
|
|
162
168
|
- lib/rubycritic/report_generators/assets/javascripts/prettify-4-Mar-2013.js
|
163
169
|
- lib/rubycritic/report_generators/assets/stylesheets/application.css
|
164
170
|
- lib/rubycritic/report_generators/assets/stylesheets/prettify.custom_theme.css
|
165
|
-
- lib/rubycritic/report_generators/
|
166
|
-
- lib/rubycritic/report_generators/
|
167
|
-
- lib/rubycritic/report_generators/
|
168
|
-
- lib/rubycritic/report_generators/
|
169
|
-
- lib/rubycritic/report_generators/
|
170
|
-
- lib/rubycritic/report_generators/
|
171
|
-
- lib/rubycritic/report_generators/
|
171
|
+
- lib/rubycritic/report_generators/base.rb
|
172
|
+
- lib/rubycritic/report_generators/code_file.rb
|
173
|
+
- lib/rubycritic/report_generators/code_index.rb
|
174
|
+
- lib/rubycritic/report_generators/line.rb
|
175
|
+
- lib/rubycritic/report_generators/overview.rb
|
176
|
+
- lib/rubycritic/report_generators/smells_index.rb
|
177
|
+
- lib/rubycritic/report_generators/templates/code_file.html.erb
|
172
178
|
- lib/rubycritic/report_generators/templates/code_index.html.erb
|
173
|
-
- lib/rubycritic/report_generators/templates/file.html.erb
|
174
179
|
- lib/rubycritic/report_generators/templates/layouts/application.html.erb
|
175
180
|
- lib/rubycritic/report_generators/templates/line.html.erb
|
176
181
|
- lib/rubycritic/report_generators/templates/overview.html.erb
|
177
182
|
- lib/rubycritic/report_generators/templates/smells_index.html.erb
|
178
183
|
- lib/rubycritic/report_generators/templates/smelly_line.html.erb
|
179
184
|
- lib/rubycritic/report_generators/view_helpers.rb
|
185
|
+
- lib/rubycritic/reporters/main.rb
|
186
|
+
- lib/rubycritic/reporters/mini.rb
|
180
187
|
- lib/rubycritic/revision_comparator.rb
|
181
|
-
- lib/rubycritic/smell.rb
|
182
188
|
- lib/rubycritic/smells_serializer.rb
|
183
189
|
- lib/rubycritic/smells_status_setter.rb
|
184
190
|
- lib/rubycritic/source_control_systems/git.rb
|
@@ -187,16 +193,18 @@ files:
|
|
187
193
|
- lib/rubycritic/turbulence.rb
|
188
194
|
- lib/rubycritic/version.rb
|
189
195
|
- rubycritic.gemspec
|
196
|
+
- test/lib/rubycritic/adapters/complexity/flog_test.rb
|
197
|
+
- test/lib/rubycritic/adapters/smell/flay_test.rb
|
198
|
+
- test/lib/rubycritic/adapters/smell/flog_test.rb
|
199
|
+
- test/lib/rubycritic/adapters/smell/reek_test.rb
|
200
|
+
- test/lib/rubycritic/analysed_files_builder_test.rb
|
190
201
|
- test/lib/rubycritic/analysers/churn_test.rb
|
191
202
|
- test/lib/rubycritic/analysers_runner_test.rb
|
192
203
|
- test/lib/rubycritic/configuration_test.rb
|
193
|
-
- test/lib/rubycritic/
|
194
|
-
- test/lib/rubycritic/
|
195
|
-
- test/lib/rubycritic/
|
196
|
-
- test/lib/rubycritic/
|
197
|
-
- test/lib/rubycritic/smell_adapters/reek_test.rb
|
198
|
-
- test/lib/rubycritic/smell_test.rb
|
199
|
-
- test/lib/rubycritic/smells_array_test.rb
|
204
|
+
- test/lib/rubycritic/core/analysed_file_test.rb
|
205
|
+
- test/lib/rubycritic/core/location_test.rb
|
206
|
+
- test/lib/rubycritic/core/smell_test.rb
|
207
|
+
- test/lib/rubycritic/core/smells_array_test.rb
|
200
208
|
- test/lib/rubycritic/smells_status_setter_test.rb
|
201
209
|
- test/lib/rubycritic/source_control_systems/source_control_system_test.rb
|
202
210
|
- test/lib/rubycritic/source_locator_test.rb
|
@@ -238,16 +246,18 @@ signing_key:
|
|
238
246
|
specification_version: 4
|
239
247
|
summary: Ruby code smell detector
|
240
248
|
test_files:
|
249
|
+
- test/lib/rubycritic/adapters/complexity/flog_test.rb
|
250
|
+
- test/lib/rubycritic/adapters/smell/flay_test.rb
|
251
|
+
- test/lib/rubycritic/adapters/smell/flog_test.rb
|
252
|
+
- test/lib/rubycritic/adapters/smell/reek_test.rb
|
253
|
+
- test/lib/rubycritic/analysed_files_builder_test.rb
|
241
254
|
- test/lib/rubycritic/analysers/churn_test.rb
|
242
255
|
- test/lib/rubycritic/analysers_runner_test.rb
|
243
256
|
- test/lib/rubycritic/configuration_test.rb
|
244
|
-
- test/lib/rubycritic/
|
245
|
-
- test/lib/rubycritic/
|
246
|
-
- test/lib/rubycritic/
|
247
|
-
- test/lib/rubycritic/
|
248
|
-
- test/lib/rubycritic/smell_adapters/reek_test.rb
|
249
|
-
- test/lib/rubycritic/smell_test.rb
|
250
|
-
- test/lib/rubycritic/smells_array_test.rb
|
257
|
+
- test/lib/rubycritic/core/analysed_file_test.rb
|
258
|
+
- test/lib/rubycritic/core/location_test.rb
|
259
|
+
- test/lib/rubycritic/core/smell_test.rb
|
260
|
+
- test/lib/rubycritic/core/smells_array_test.rb
|
251
261
|
- test/lib/rubycritic/smells_status_setter_test.rb
|
252
262
|
- test/lib/rubycritic/source_control_systems/source_control_system_test.rb
|
253
263
|
- test/lib/rubycritic/source_locator_test.rb
|
@@ -1,41 +0,0 @@
|
|
1
|
-
require "erb"
|
2
|
-
require "rubycritic/report_generators/view_helpers"
|
3
|
-
|
4
|
-
module Rubycritic
|
5
|
-
|
6
|
-
class BaseGenerator
|
7
|
-
def self.erb_template(template_path)
|
8
|
-
ERB.new(File.read(File.join(TEMPLATES_DIR, template_path)))
|
9
|
-
end
|
10
|
-
|
11
|
-
TEMPLATES_DIR = File.expand_path("../templates", __FILE__)
|
12
|
-
LAYOUT_TEMPLATE = erb_template(File.join("layouts", "application.html.erb"))
|
13
|
-
|
14
|
-
include ViewHelpers
|
15
|
-
|
16
|
-
def file_href
|
17
|
-
"file://#{file_pathname}"
|
18
|
-
end
|
19
|
-
|
20
|
-
def file_pathname
|
21
|
-
File.join(file_directory, file_name)
|
22
|
-
end
|
23
|
-
|
24
|
-
def file_directory
|
25
|
-
root_directory
|
26
|
-
end
|
27
|
-
|
28
|
-
def file_name
|
29
|
-
raise NotImplementedError.new("The #{self.class} class must implement the #{__method__} method.")
|
30
|
-
end
|
31
|
-
|
32
|
-
def render
|
33
|
-
raise NotImplementedError.new("The #{self.class} class must implement the #{__method__} method.")
|
34
|
-
end
|
35
|
-
|
36
|
-
def get_binding
|
37
|
-
binding
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
end
|
@@ -1,32 +0,0 @@
|
|
1
|
-
require "erb"
|
2
|
-
require "rubycritic/report_generators/base_generator"
|
3
|
-
|
4
|
-
module Rubycritic
|
5
|
-
|
6
|
-
class CodeIndexGenerator < BaseGenerator
|
7
|
-
TEMPLATE = erb_template("code_index.html.erb")
|
8
|
-
|
9
|
-
def initialize(source_pathnames, smelly_pathnames)
|
10
|
-
@source_pathnames = source_pathnames
|
11
|
-
@smelly_pathnames = smelly_pathnames
|
12
|
-
end
|
13
|
-
|
14
|
-
def file_name
|
15
|
-
"code_index.html"
|
16
|
-
end
|
17
|
-
|
18
|
-
def render
|
19
|
-
index_body = TEMPLATE.result(get_binding)
|
20
|
-
LAYOUT_TEMPLATE.result(get_binding { index_body })
|
21
|
-
end
|
22
|
-
|
23
|
-
def file_path(path)
|
24
|
-
File.join(root_directory, path.sub_ext(".html"))
|
25
|
-
end
|
26
|
-
|
27
|
-
def smells_count(pathname)
|
28
|
-
(@smelly_pathnames[pathname] || []).length
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
end
|
@@ -1,41 +0,0 @@
|
|
1
|
-
require "erb"
|
2
|
-
require "rubycritic/report_generators/base_generator"
|
3
|
-
require "rubycritic/report_generators/line_generator"
|
4
|
-
|
5
|
-
module Rubycritic
|
6
|
-
|
7
|
-
class FileGenerator < BaseGenerator
|
8
|
-
LINE_NUMBER_OFFSET = 1
|
9
|
-
TEMPLATE = erb_template("file.html.erb")
|
10
|
-
|
11
|
-
def initialize(pathname, smells)
|
12
|
-
@pathname = pathname
|
13
|
-
@smells = smells
|
14
|
-
end
|
15
|
-
|
16
|
-
def file_directory
|
17
|
-
File.join(root_directory, @pathname.dirname)
|
18
|
-
end
|
19
|
-
|
20
|
-
def file_name
|
21
|
-
@pathname.basename.sub_ext(".html")
|
22
|
-
end
|
23
|
-
|
24
|
-
def render
|
25
|
-
file_code = ""
|
26
|
-
File.readlines(@pathname).each.with_index(LINE_NUMBER_OFFSET) do |line_text, line_number|
|
27
|
-
location = Location.new(@pathname, line_number)
|
28
|
-
line_smells = @smells.select { |smell| smell.located_in?(location) }
|
29
|
-
file_code << LineGenerator.new(line_text, line_smells).render
|
30
|
-
end
|
31
|
-
|
32
|
-
file_body = TEMPLATE.result(get_binding { file_code })
|
33
|
-
LAYOUT_TEMPLATE.result(get_binding { file_body })
|
34
|
-
end
|
35
|
-
|
36
|
-
def file_has_smells?
|
37
|
-
!@smells.empty?
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
require "erb"
|
2
|
-
require "rubycritic/report_generators/base_generator"
|
3
|
-
require "cgi"
|
4
|
-
|
5
|
-
module Rubycritic
|
6
|
-
|
7
|
-
class LineGenerator < BaseGenerator
|
8
|
-
NORMAL_TEMPLATE = erb_template("line.html.erb")
|
9
|
-
SMELLY_TEMPLATE = erb_template("smelly_line.html.erb")
|
10
|
-
|
11
|
-
def initialize(text, smells)
|
12
|
-
@text = CGI::escapeHTML(text.chomp)
|
13
|
-
@smells = smells
|
14
|
-
@template =
|
15
|
-
if @smells.empty?
|
16
|
-
NORMAL_TEMPLATE
|
17
|
-
else
|
18
|
-
SMELLY_TEMPLATE
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
def render
|
23
|
-
@template.result(binding).delete("\n") + "\n"
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
end
|
@@ -1,24 +0,0 @@
|
|
1
|
-
require "erb"
|
2
|
-
require "rubycritic/report_generators/base_generator"
|
3
|
-
require "json"
|
4
|
-
|
5
|
-
module Rubycritic
|
6
|
-
|
7
|
-
class OverviewGenerator < BaseGenerator
|
8
|
-
TEMPLATE = erb_template("overview.html.erb")
|
9
|
-
|
10
|
-
def initialize(turbulence_data)
|
11
|
-
@turbulence_data = turbulence_data.to_json
|
12
|
-
end
|
13
|
-
|
14
|
-
def file_name
|
15
|
-
"overview.html"
|
16
|
-
end
|
17
|
-
|
18
|
-
def render
|
19
|
-
index_body = TEMPLATE.result(get_binding)
|
20
|
-
LAYOUT_TEMPLATE.result(get_binding { index_body })
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
end
|
@@ -1,67 +0,0 @@
|
|
1
|
-
require "rubycritic/report_generators/base_generator"
|
2
|
-
require "rubycritic/report_generators/file_generator"
|
3
|
-
require "rubycritic/report_generators/overview_generator"
|
4
|
-
require "rubycritic/report_generators/code_index_generator"
|
5
|
-
require "rubycritic/report_generators/smells_index_generator"
|
6
|
-
require "fileutils"
|
7
|
-
|
8
|
-
module Rubycritic
|
9
|
-
|
10
|
-
class Reporter
|
11
|
-
ASSETS_DIR = File.expand_path("../assets", __FILE__)
|
12
|
-
|
13
|
-
def initialize(source_pathnames, smells, turbulence_data)
|
14
|
-
@source_pathnames = source_pathnames
|
15
|
-
@smells = smells
|
16
|
-
@turbulence_data = turbulence_data
|
17
|
-
@smelly_pathnames = pathnames_to_files_with_smells
|
18
|
-
end
|
19
|
-
|
20
|
-
def generate_report
|
21
|
-
generators.each do |generator|
|
22
|
-
FileUtils.mkdir_p(generator.file_directory)
|
23
|
-
File.open(generator.file_pathname, "w+") do |file|
|
24
|
-
file.write(generator.render)
|
25
|
-
end
|
26
|
-
end
|
27
|
-
FileUtils.cp_r(ASSETS_DIR, ::Rubycritic.configuration.root)
|
28
|
-
overview_generator.file_href
|
29
|
-
end
|
30
|
-
|
31
|
-
private
|
32
|
-
|
33
|
-
def generators
|
34
|
-
[overview_generator, code_index_generator, smells_index_generator] + file_generators
|
35
|
-
end
|
36
|
-
|
37
|
-
def overview_generator
|
38
|
-
@overview_generator ||= OverviewGenerator.new(@turbulence_data)
|
39
|
-
end
|
40
|
-
|
41
|
-
def code_index_generator
|
42
|
-
@code_index_generator ||= CodeIndexGenerator.new(@source_pathnames, @smelly_pathnames)
|
43
|
-
end
|
44
|
-
|
45
|
-
def smells_index_generator
|
46
|
-
@smells_index_generator ||= SmellsIndexGenerator.new(@smells)
|
47
|
-
end
|
48
|
-
|
49
|
-
def file_generators
|
50
|
-
@file_generators ||= @source_pathnames.map do |file_pathname|
|
51
|
-
file_smells = @smelly_pathnames[file_pathname]
|
52
|
-
FileGenerator.new(file_pathname, file_smells)
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
def pathnames_to_files_with_smells
|
57
|
-
pathnames = Hash.new { |hash, key| hash[key] = [] }
|
58
|
-
@smells.each do |smell|
|
59
|
-
smell.pathnames.each do |pathname|
|
60
|
-
pathnames[pathname] << smell
|
61
|
-
end
|
62
|
-
end
|
63
|
-
pathnames
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
require "erb"
|
2
|
-
require "rubycritic/report_generators/base_generator"
|
3
|
-
|
4
|
-
module Rubycritic
|
5
|
-
|
6
|
-
class SmellsIndexGenerator < BaseGenerator
|
7
|
-
TEMPLATE = erb_template("smells_index.html.erb")
|
8
|
-
|
9
|
-
def initialize(smells)
|
10
|
-
@smells = smells.sort { |a, b| a.type <=> b.type }
|
11
|
-
end
|
12
|
-
|
13
|
-
def file_name
|
14
|
-
"smells_index.html"
|
15
|
-
end
|
16
|
-
|
17
|
-
def render
|
18
|
-
index_body = TEMPLATE.result(get_binding)
|
19
|
-
LAYOUT_TEMPLATE.result(get_binding { index_body })
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
end
|