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