forked from showell/CoffeeScriptLineMatcher
-
Notifications
You must be signed in to change notification settings - Fork 0
/
render_file_list.coffee
50 lines (44 loc) · 1.24 KB
/
render_file_list.coffee
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# This code renders the main part of the main page, where you list all
# the coffeescript files, broken out by directory.
render = (dirs) ->
# Uncomment the next line if you want to see a raw view of the data.
# return "<pre>#{JSON.stringify dirs, null, ' '}</pre>"
html = ''
for dir in dirs
html += dir_header dir.path
rows = (row_for_file data for data in dir.rows)
html += render_dir_files rows
html
row_for_file = (data) ->
view_link = "<a href='#{data.cs_href}'>#{data.cs_root}</a>"
row = [data.cs_num_lines, view_link]
if data.js_path
row.push data.js_path
row
dir_header = (path) ->
"""
<hr>
<h3>#{path}</h3>
"""
render_dir_files = (rows) ->
headers = ['line count for CS', 'coffee', 'JS file']
table headers, rows
table = (headers, rows) ->
html = '<table>'
html += '<tr>'
ths = ("<th>#{th}</th>" for th in headers)
html += ths.join ''
html += '</tr>'
for row in rows
html += '<tr>'
td = (cell) ->
if cell.toString().match /^\d+$/
align = "center"
else
align = "left"
"<td align='#{align}' class='view_files'>#{cell}</td>"
html += (td cell for cell in row).join ''
html += '</tr>'
html += '</table>'
html
exports.render = render