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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e087e52851d0634e55520992d52db1f94e7b4503
4
- data.tar.gz: b44b8cdec5026513fb24acc3828e91f4feca7791
3
+ metadata.gz: a59640d523afcdcd22294bf2fff32d8f957ec747
4
+ data.tar.gz: c3cdeedd0d6fdb0aafc9e556f20c6d9f0a6ec540
5
5
  SHA512:
6
- metadata.gz: b7a21c7dc1562c5675408136d6facc59b924eb8ebe57777587d24de748c831cb2be9a9ba7b08e5fa917a77beea441edfc86ccb8ea8404d3aa55649b5e2ab8b00
7
- data.tar.gz: 8c36170ff81289cb102d30e8fe8ab4a282de05b0b3a2fbfb949bd983b6a1a288c9c203ab7e59ba1eae7e95990556eadaba0b1965fce7256edac903cd74d2bbd7
6
+ metadata.gz: a14d366c0dc71769896451bfb614cd6c84d634a8b11ded62a529149229a8d46e258181f3877e75ba7efc4b3fbaec13982a477cd5616c6a046d8538a2edfc863b
7
+ data.tar.gz: bca34bc40ddfce47b8021d230669a53aabc121be6dc2aa6c5c07dd435738db1a6f48a06e2237f374aece1bb2418fa07641f2a8cd490df2d004d5b0ffc4955934
@@ -70,6 +70,8 @@ th {
70
70
  .smell { color: #000 }
71
71
  .smell-name { font-size: 18px }
72
72
  .smell-complexity { font-size: 14px }
73
+
74
+ ul.duplications { margin-top: 10px }
73
75
  }
74
76
 
75
77
  pre {
@@ -1,7 +1,7 @@
1
1
  module CodePoetry
2
2
  module Formatter
3
3
  class HTMLFormatter
4
- VERSION = "0.1.0"
4
+ VERSION = "0.2.0"
5
5
  end
6
6
  end
7
7
  end
@@ -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__), '../views/', "#{name}.erb")))
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
- %Q(<abbr class="timeago" title="#{time.iso8601}">#{time.iso8601}</abbr>)
54
+ %(<abbr class="timeago" title="#{time.iso8601}">#{time.iso8601}</abbr>)
51
55
  end
52
56
 
53
57
  def link_to_source_file(stat)
54
- %Q(<a href="##{id(stat)}" class="src_link" title="#{stat.name}">#{stat.name}</a>)
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
@@ -480,6 +480,8 @@ th {
480
480
  font-size: 18px; }
481
481
  .source_table .smell-view .smell-complexity {
482
482
  font-size: 14px; }
483
+ .source_table .smell-view ul.duplications {
484
+ margin-top: 10px; }
483
485
  .source_table pre {
484
486
  margin: 0;
485
487
  padding: 0;
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,4 @@
1
+ <li>
2
+ <span class="smell">Complex class</span>
3
+ <span class="smell-complexity">(complexity <%= stat.complexity %>)</span>
4
+ </li>
@@ -0,0 +1,5 @@
1
+ <li>
2
+ <span class="smell">Complex</span> code in
3
+ <span class="smell-name"><%= stat.name %></span> definition outside of methods
4
+ <span class="smell-complexity">(complexity <%= stat.definition_complexity %>)</span>
5
+ </li>
@@ -0,0 +1,5 @@
1
+ <li>
2
+ <span class="smell">Complex method</span>
3
+ <span class="smell-name"><%= smell.object.pretty_name %></span>
4
+ <span class="smell-complexity">(complexity <%= smell.object.complexity %>)</span>
5
+ </li>
@@ -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>
@@ -17,24 +17,7 @@
17
17
  <% end %>
18
18
 
19
19
  <% stat.smells.each do |smell| %>
20
- <% if smell.complex_class? %>
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.1.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: 2013-12-01 00:00:00.000000000 Z
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: