diff options
author | Johan Sørensen <johan@johansorensen.com> | 2008-03-17 14:10:16 +0100 |
---|---|---|
committer | Johan Sørensen <johan@johansorensen.com> | 2008-03-17 14:14:13 +0100 |
commit | cb2612bf2fdafbb6016ea6402e3d1b86748a2603 (patch) | |
tree | 4027952e3ea0a517a94e0d2d1a6171c8c097a52a /app/helpers/blobs_helper.rb | |
parent | 1fe38d36cf3557a732f244c257d38d1efc44763a (diff) | |
download | gitorious-mainline-outdated-cb2612bf2fdafbb6016ea6402e3d1b86748a2603.zip gitorious-mainline-outdated-cb2612bf2fdafbb6016ea6402e3d1b86748a2603.tar.gz gitorious-mainline-outdated-cb2612bf2fdafbb6016ea6402e3d1b86748a2603.tar.bz2 |
Refactored BrowseController into several specific controllers
Grouped by responsibility Trees, Blobs, Commits and Logs
Diffstat (limited to 'app/helpers/blobs_helper.rb')
-rw-r--r-- | app/helpers/blobs_helper.rb | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/app/helpers/blobs_helper.rb b/app/helpers/blobs_helper.rb new file mode 100644 index 0000000..34e6c05 --- /dev/null +++ b/app/helpers/blobs_helper.rb @@ -0,0 +1,31 @@ +module BlobsHelper + include RepositoriesHelper + include TreesHelper + + def line_numbers_for(data, code_theme_class = nil) + out = [] + #yield.split("\n").each_with_index{ |s,i| out << "#{i+1}: #{s}" } + out << %Q{<table id="codeblob" class="highlighted">} + data.to_s.split("\n").each_with_index do |line, count| + lineno = count + 1 + out << %Q{<tr id="line#{lineno}">} + out << %Q{<td class="line-numbers"><a href="#line#{lineno}" name="line#{lineno}">#{lineno}</a></td>} + code_classes = "code" + code_classes << " #{code_theme_class}" if code_theme_class + out << %Q{<td class="#{code_classes}">#{line}</td>} + out << "</tr>" + end + out << "</table>" + out.join("\n") + end + + def render_highlighted(text, filename, theme = "idle") + syntax_name = Uv.syntax_names_for_data(filename, text).first #TODO: render a choice select box if > 1 + highlighted = Uv.parse(text, "xhtml", syntax_name, false, theme) + line_numbers_for(highlighted, theme) + end + + def too_big_to_render?(size) + size > 150.kilobytes + end +end |