lib/malm/web.rb in malm-0.0.6 vs lib/malm/web.rb in malm-0.1.0

- old
+ new

@@ -1,43 +1,39 @@ require 'thin' require 'sinatra/base' require 'json' -require 'v8' -require 'execjs' -require 'coffee_script' require 'mail' -class Malm +module Malm class Web < Sinatra::Base - set :public, File.join(File.dirname(__FILE__), "..", "..", "web", "static") + set :public, File.join(File.dirname(__FILE__), "..", "..", "web", "public") set :views, File.join(File.dirname(__FILE__), "..", "..", "web", "views") - get "/messages.json" do + get "/" do + erb :'index.html' + end + + get "/messages" do content_type :json settings.message_db.find_all.map{|m| m = m.dup m.delete(:body) m[:body_urls] = {:html => url("/messages/#{m[:id]}/body.html"), :text => url("/messages/#{m[:id]}/body.text")} m }.to_json end - get "/messages/:id.json" do + get "/messages/:id" do content_type :json find_message(params[:id]).to_json end get "/messages/:id/body.:type" do render_message(params[:id], params[:type]) end - - get "/coffee/:script.coffee" do - content_type "text/javascript" - coffee params[:script].to_sym - end - + private def find_message(id) id = Integer(id) settings.message_db.find(id) end @@ -51,10 +47,11 @@ return end msg_obj = find_message(id) if msg_obj - Mail::Message.new(msg_obj[:body]).send("#{type}_part".to_sym).body.to_s + content_type_body = Mail::Message.new(msg_obj[:body]).send("#{type}_part".to_sym) + content_type_body ? content_type_body.body.to_s : msg_obj[:body] else status 404 "don't know about message #{id}" end end \ No newline at end of file