lib/request_log_analyzer/output/html.rb in request-log-analyzer-1.2.0 vs lib/request_log_analyzer/output/html.rb in request-log-analyzer-1.2.1

- old
+ new

@@ -5,33 +5,44 @@ # def initialize(io, options = {}) # super(io, options) # end + # Print a string to the io object. def print(str) @io << str end alias :<< :print + # Put a string with newline def puts(str = '') @io << str << "<br/>\n" end + # Place a title def title(title) @io.puts(tag(:h2, title)) end + # Render a single line + # <tt>*font</tt> The font. def line(*font) @io.puts(tag(:hr)) end - + + # Write a link + # <tt>text</tt> The text in the link + # <tt>url</tt> The url to link to. def link(text, url = nil) url = text if url.nil? tag(:a, text, :href => url) end + # Generate a report table in HTML and push it into the output object. + # <tt>*colums<tt> Columns hash + # <tt>&block</tt>: A block yeilding the rows. def table(*columns, &block) rows = Array.new yield(rows) @io << tag(:table, {:id => 'mytable', :cellspacing => 0}) do |content| @@ -54,10 +65,11 @@ end end end + # Genrate HTML header and associated stylesheet def header @io << "<html>" @io << tag(:head) do |headers| headers << tag(:title, 'Request-log-analyzer report') headers << tag(:style, ' @@ -125,17 +137,23 @@ @io << '<body>' @io << tag(:h1, 'Request-log-analyzer summary report') @io << tag(:p, "Version #{RequestLogAnalyzer::VERSION} - written by Willem van Bergen and Bart ten Brinke") end + # Generate a footer for a report def footer @io << tag(:hr) << tag(:h2, 'Thanks for using request-log-analyzer') - @io << tag(:p, 'Please visit the ' + link('Request-log-analyzer website', 'http://github.com/wvanbergen/request-log-analyzer')) + @io << tag(:p, 'For more information please visit the ' + link('Request-log-analyzer website', 'http://github.com/wvanbergen/request-log-analyzer')) + @io << tag(:p, 'If you need an expert who can analyze your application, mail to ' + link('contact@railsdoctors.com', 'mailto:contact@railsdoctors.com') + ' or visit us at ' + link('http://railsdoctors.com', 'http://railsdoctors.com') + '.') @io << "</body></html>\n" end protected + # HTML tag writer helper + # <tt>tag</tt> The tag to generate + # <tt>content</tt> The content inside the tag + # <tt>attributes</tt> Attributes to write in the tag def tag(tag, content = nil, attributes = nil) if block_given? attributes = content.nil? ? '' : ' ' + content.map { |(key, value)| "#{key}=\"#{value}\"" }.join(' ') content_string = '' content = yield(content_string) \ No newline at end of file