code_poetry-html 0.1.0 → 0.2.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.
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: