Sha256: fa92b08362d559f340c872d7dca56e3eb8e2e5921786e131a0467a19a14b9477
Contents?: true
Size: 1.97 KB
Versions: 4
Compression:
Stored size: 1.97 KB
Contents
require 'sinatra/base' require 'sass' require 'maruku' module Sinatra module MercuryHelpers SASS = 'sass' JS = 'js' MDOWN = 'md' COFFEE = 'coffee' CSS = 'css' SCSS = 'scss' RUBY = 'rb' # parses and evals ruby partials def ruby(rubyfile) instance_eval(open_file(find_file(rubyfile, RUBY))) end # renders css files def css(cssfile, mediatype="all") render_style open_file(find_file(cssfile, CSS)), mediatype end # renders sass files def sass(sassfile, mediatype="all") render_style Sass::Engine.new(open_file(find_file(sassfile, SASS))).render, mediatype end # renders scss files def scss(scssfile, mediatype="all") render_style Sass::Engine.new(open_file(find_file(scssfile, SCSS)), :syntax => :scss).render, mediatype end # renders javascript files def javascript(jsfile) render_script open_file(find_file(jsfile, JS)), 'javascript' end # renders markdown files def markdown(mdfile) Maruku.new(open_file(find_file(mdfile, MDOWN))).to_html end # renders coffee files def coffee(coffeefile) render_script open_file(find_file(coffeefile, COFFEE)), 'coffeescript' end #private # renders script tag based on file type def render_script(text, file_type) ["<script type='text/#{file_type}'>", text, "</script>\n"].join("\n") end # renders style tag based on media type def render_style(text, mediatype="all") ["<style type='text/css' media='#{mediatype}' >", text, "</style>\n"].join("\n") end # finds file def find_file(filename, ext) Dir.glob(File.join(options.views, "**/*.#{ext}")).select { |extfile| extfile.downcase =~ /\/#{filename.to_s.downcase}.#{ext}$/ }.first end def open_file(full_path_and_filename) open(full_path_and_filename,'r') { |file| file.read } end end helpers MercuryHelpers end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
mercury-1.0.1 | lib/mercury/helpers.rb |
mercury-1.0.0 | lib/mercury/helpers.rb |
mercury-0.9.15 | lib/mercury/helpers.rb |
mercury-0.9.14 | lib/mercury/helpers.rb |