Class: DontRepeatYourself::HTMLFormatter

Inherits:
DefaultFormatter show all
Defined in:
lib/dont_repeat_yourself/formatter.rb

Direct Known Subclasses

TextMateFormatter

Instance Attribute Summary

Attributes inherited from DefaultFormatter

#simian_results

Instance Method Summary collapse

Methods inherited from DefaultFormatter

#format_sentence_between_lines_x_and_y_in_filepath, #initialize, #report_body

Constructor Details

This class inherits a constructor from DontRepeatYourself::DefaultFormatter

Instance Method Details

#format_duplicate_lines_snippet(block) ⇒ Object



74
75
76
77
78
79
80
81
82
83
# File 'lib/dont_repeat_yourself/formatter.rb', line 74

def format_duplicate_lines_snippet(block)
  starts = block.line_number_of_first_duplicate_line
  ends = block.line_number_of_last_duplicate_line
  file_path = block.file_path      
  html_source_code = @snippet_extractor.snippet(starts, ends, file_path)
    
  source_id = "#{File.basename(file_path)}_#{starts}_#{ends}"
  source_code_div  = "        <div>&nbsp;&nbsp;[<a id=\"l_#{source_id}\" href=\"javascript:toggleSource('#{source_id}')\">Show duplicate lines source code</a>]</div>"
  source_code_div << "        <div id=\"#{source_id}\" class=\"dyn-source\"><pre class=\"ruby\"><code>#{html_source_code}</code></pre></div>"     
end

#get_asset(asset) ⇒ Object

TODO use erb to generate the report?



86
87
88
# File 'lib/dont_repeat_yourself/formatter.rb', line 86

def get_asset(asset)
  IO.read(File.dirname(__FILE__) + '/../assets/' + asset)
end

#reportObject



68
69
70
71
72
# File 'lib/dont_repeat_yourself/formatter.rb', line 68

def report
  report = report_header          
  report << report_body.gsub(/TWO_SPACE_CHARS/, "&nbsp;&nbsp;").gsub(/\n/, "</br>\n")           
  report << report_footer
end


118
119
120
121
122
123
124
125
# File 'lib/dont_repeat_yourself/formatter.rb', line 118

def report_footer
  <<-EOF
      </div>
    </div>
  </body>
</html>
  EOF
end

#report_headerObject



90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
# File 'lib/dont_repeat_yourself/formatter.rb', line 90

def report_header
  global_scripts = get_asset('dry.js')
  global_styles = get_asset('/dry.css')
  # TODO use erb.html ;-)  
  <<-EOF
<html>
<head>
<script type="text/javascript">
// <![CDATA[
#{global_scripts}
// ]]>
  </script>
  <style type="text/css">
#{global_styles}
  </style>
</head>

<body>
<div class="rspec-report">
  
<div id="rspec-header">
  <h1>Don't Repeat Yourself report Result</h1>  
</div>

<div class="results">
  EOF
end