More Related Content
Similar to Serving Code Samples (20)
More from Lachlan Hardy (11)
Serving Code Samples
- 18. The Helper
def code_sample(filename)
@filename = filename
file = "#{options.views}/#{@category}/#{@name}/
files/#{filename}.txt"
if File.exist? file
@code_snippet= preserve(
escape_once(File.read(file))
)
extension = filename.split('.')[1]
@code_class = (
extension == "js" ? "javascript" : extension
)
end
haml(:"_code_sample", :layout => false)
end
- 19. The Partial
.code
%pre
%code{:class => @code_class}= @code_snippet
%span.download
Download file:
%a{:href => "files/#{@filename}"}= @filename
- 20. The Browser
<h2>HTML</h2>
<div class="code">
<pre> <code class="html"><a href="/
feeds/articles/" id="feed-
button">

<span>Subscribe</span>
</
a></code></pre>
<span class="download">
Download file:
<a href="files/anchor.html">
anchor.html
</a>
</span>
</div>
- 21. The Controller
get '/*/files/:filename.:filetype' do
filetype = params[:filetype] == "zip" ? "zip" :
"#{params[:filetype]}.txt"
file = "#{options.views}/#{params[:splat]}/files/
#{params[:filename]}.#{filetype}"
if File.exists? file
content_type 'text/plain', :charset => 'utf-8'
send_file(file)
else
raise not_found
end
end