summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDavid Underwood <davefp@gmail.com>2013-06-21 08:13:02 -0700
committerDavid Underwood <davefp@gmail.com>2013-06-21 08:13:02 -0700
commita0f4d31775fde6ceac7017e592ba72f85706b831 (patch)
tree73bce54289278050439001d845853e2ce7a626a4 /lib
parent2e1c714cc6cb957bbd23b248dd0945ce21757f4f (diff)
parenta6eea61f2a7cfbf67175583dd7dcb49a4c09da75 (diff)
Merge pull request #123 from apeckham/haml
Use any Tilt-supported view language: Haml, Slim, ERB, Liquid, etc.
Diffstat (limited to 'lib')
-rw-r--r--lib/dashing.rb24
1 files changed, 17 insertions, 7 deletions
diff --git a/lib/dashing.rb b/lib/dashing.rb
index 952b614..04921fe 100644
--- a/lib/dashing.rb
+++ b/lib/dashing.rb
@@ -50,17 +50,20 @@ end
get '/:dashboard' do
protected!
- if File.exist? File.join(settings.views, "#{params[:dashboard]}.erb")
- erb params[:dashboard].to_sym
- else
- halt 404
+ tilt_html_engines.each do |suffix, _|
+ file = File.join(settings.views, "#{params[:dashboard]}.#{suffix}")
+ return render(suffix.to_sym, params[:dashboard].to_sym) if File.exist? file
end
+
+ halt 404
end
get '/views/:widget?.html' do
protected!
- widget = params[:widget]
- send_file File.join(settings.root, 'widgets', widget, "#{widget}.html")
+ tilt_html_engines.each do |suffix, engines|
+ file = File.join(settings.root, "widgets", params[:widget], "#{params[:widget]}.#{suffix}")
+ return engines.first.new(file).render if File.exist? file
+ end
end
post '/widgets/:id' do
@@ -107,11 +110,18 @@ def latest_events
end
def first_dashboard
- files = Dir[File.join(settings.views, '*.erb')].collect { |f| f.match(/(\w*).erb/)[1] }
+ files = Dir[File.join(settings.views, '*')].collect { |f| File.basename(f, '.*') }
files -= ['layout']
files.first
end
+def tilt_html_engines
+ Tilt.mappings.select do |_, engines|
+ default_mime_type = engines.first.default_mime_type
+ default_mime_type.nil? || default_mime_type == 'text/html'
+ end
+end
+
Dir[File.join(settings.root, 'lib', '**', '*.rb')].each {|file| require file }
{}.to_json # Forces your json codec to initialize (in the event that it is lazily loaded). Does this before job threads start.