code_poetry-html 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/assets/stylesheets/screen.css.scss +2 -0
- data/lib/code_poetry-html/version.rb +1 -1
- data/lib/code_poetry-html.rb +12 -8
- data/public/application.css +2 -0
- data/views/file_list.erb +2 -0
- data/views/smells/complex_class.erb +4 -0
- data/views/smells/complex_class_definition.erb +5 -0
- data/views/smells/complex_method.erb +5 -0
- data/views/smells/duplication.erb +10 -0
- data/views/source_file.erb +1 -18
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a59640d523afcdcd22294bf2fff32d8f957ec747
|
4
|
+
data.tar.gz: c3cdeedd0d6fdb0aafc9e556f20c6d9f0a6ec540
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a14d366c0dc71769896451bfb614cd6c84d634a8b11ded62a529149229a8d46e258181f3877e75ba7efc4b3fbaec13982a477cd5616c6a046d8538a2edfc863b
|
7
|
+
data.tar.gz: bca34bc40ddfce47b8021d230669a53aabc121be6dc2aa6c5c07dd435738db1a6f48a06e2237f374aece1bb2418fa07641f2a8cd490df2d004d5b0ffc4955934
|
data/lib/code_poetry-html.rb
CHANGED
@@ -11,7 +11,7 @@ class CodePoetry::Formatter::HTMLFormatter
|
|
11
11
|
end
|
12
12
|
|
13
13
|
File.open(File.join(output_path, "index.html"), "w+") do |file|
|
14
|
-
file.puts template('layout').result(binding)
|
14
|
+
file.puts template('views', 'layout').result(binding)
|
15
15
|
end
|
16
16
|
|
17
17
|
puts "Code Poetry report generated to #{output_path}."
|
@@ -19,8 +19,8 @@ class CodePoetry::Formatter::HTMLFormatter
|
|
19
19
|
|
20
20
|
private
|
21
21
|
|
22
|
-
def template(name)
|
23
|
-
ERB.new(File.read(File.join(File.dirname(__FILE__),
|
22
|
+
def template(path, name)
|
23
|
+
ERB.new(File.read(File.join(File.dirname(__FILE__), "../#{path}/", "#{name}.erb")))
|
24
24
|
end
|
25
25
|
|
26
26
|
def output_path
|
@@ -35,11 +35,15 @@ private
|
|
35
35
|
end
|
36
36
|
|
37
37
|
def formatted_source_file(stat)
|
38
|
-
template('source_file').result(binding)
|
38
|
+
template('views', 'source_file').result(binding)
|
39
39
|
end
|
40
40
|
|
41
41
|
def formatted_file_list(stats)
|
42
|
-
template('file_list').result(binding)
|
42
|
+
template('views', 'file_list').result(binding)
|
43
|
+
end
|
44
|
+
|
45
|
+
def formatted_smell(stat, smell)
|
46
|
+
template('views/smells', smell.type).result(binding)
|
43
47
|
end
|
44
48
|
|
45
49
|
def id(stat)
|
@@ -47,18 +51,18 @@ private
|
|
47
51
|
end
|
48
52
|
|
49
53
|
def timeago(time)
|
50
|
-
%
|
54
|
+
%(<abbr class="timeago" title="#{time.iso8601}">#{time.iso8601}</abbr>)
|
51
55
|
end
|
52
56
|
|
53
57
|
def link_to_source_file(stat)
|
54
|
-
%
|
58
|
+
%(<a href="##{id(stat)}" class="src_link" title="#{stat.name}">#{stat.name}</a>)
|
55
59
|
end
|
56
60
|
|
57
61
|
def line_status(stat, line_number)
|
58
62
|
method = stat.get_method_at_line(line_number)
|
59
63
|
|
60
64
|
unless method.nil?
|
61
|
-
'smelly' if method.smelly?
|
65
|
+
'smelly' if method.smelly? || method.duplicated?
|
62
66
|
end
|
63
67
|
end
|
64
68
|
end
|
data/public/application.css
CHANGED
data/views/file_list.erb
CHANGED
@@ -7,6 +7,7 @@
|
|
7
7
|
<th>Lines of Code</th>
|
8
8
|
<th>Churns</th>
|
9
9
|
<th>Smells</th>
|
10
|
+
<th>Duplication</th>
|
10
11
|
<th>Complexity</th>
|
11
12
|
<th>Complexity/Method</th>
|
12
13
|
</tr>
|
@@ -19,6 +20,7 @@
|
|
19
20
|
<td><%= stat.lines_of_code %></td>
|
20
21
|
<td><%= stat.churns %></td>
|
21
22
|
<td><%= stat.smells.count %></td>
|
23
|
+
<td><%= stat.duplication %></td>
|
22
24
|
<td><%= stat.complexity %></td>
|
23
25
|
<td><%= stat.complexity_per_method %></td>
|
24
26
|
</tr>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<li>
|
2
|
+
<span class="smell"><%= smell.object.severity %> Code</span> found in
|
3
|
+
<span class="smell-name">:<%= smell.object.node %></span> nodes
|
4
|
+
<span class="smell-complexity">(mass = <%= smell.object.mass %>)</span>
|
5
|
+
<ul class="duplications">
|
6
|
+
<% smell.object.methods.each do |method| %>
|
7
|
+
<li><%= method.pretty_location %></li>
|
8
|
+
<% end %>
|
9
|
+
</ul>
|
10
|
+
</li>
|
data/views/source_file.erb
CHANGED
@@ -17,24 +17,7 @@
|
|
17
17
|
<% end %>
|
18
18
|
|
19
19
|
<% stat.smells.each do |smell| %>
|
20
|
-
|
21
|
-
<li>
|
22
|
-
<span class="smell">Complex class</span>
|
23
|
-
<span class="smell-complexity">(complexity <%= stat.complexity %>)</span>
|
24
|
-
</li>
|
25
|
-
<% elsif smell.complex_class_definition? %>
|
26
|
-
<li>
|
27
|
-
<span class="smell">Complex</span> code in
|
28
|
-
<span class="smell-name"><%= stat.name %></span> definition outside of methods
|
29
|
-
<span class="smell-complexity">(complexity <%= stat.definition_complexity %>)</span>
|
30
|
-
</li>
|
31
|
-
<% elsif smell.complex_method? %>
|
32
|
-
<li>
|
33
|
-
<span class="smell">Complex method</span>
|
34
|
-
<span class="smell-name"><%= smell.method.pretty_name %></span>
|
35
|
-
<span class="smell-complexity">(complexity <%= smell.method.complexity %>)</span>
|
36
|
-
</li>
|
37
|
-
<% end %>
|
20
|
+
<%= formatted_smell(stat, smell) %>
|
38
21
|
<% end %>
|
39
22
|
</ul>
|
40
23
|
</div>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: code_poetry-html
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bastian Bartmann
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-02-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -103,6 +103,10 @@ files:
|
|
103
103
|
- public/magnify.png
|
104
104
|
- views/file_list.erb
|
105
105
|
- views/layout.erb
|
106
|
+
- views/smells/complex_class.erb
|
107
|
+
- views/smells/complex_class_definition.erb
|
108
|
+
- views/smells/complex_method.erb
|
109
|
+
- views/smells/duplication.erb
|
106
110
|
- views/source_file.erb
|
107
111
|
homepage: https://github.com/coding-chimp/code_poetry-html
|
108
112
|
licenses:
|