summaryrefslogtreecommitdiff
path: root/file_upload.rb
diff options
context:
space:
mode:
authortbuehlmann <tobias.buehlmann@gmx.de>2010-12-03 19:07:53 +0100
committertbuehlmann <tobias.buehlmann@gmx.de>2010-12-03 19:07:53 +0100
commitda2d98e8d92e87b6fdd86b4cfe810c9fc7a44a13 (patch)
tree2ef6f12fb68280f21d18eae08a354ee833d8cf61 /file_upload.rb
parent50d95678730faa92f3893d75191b371e5e886c0f (diff)
1.9.2 ready
Diffstat (limited to 'file_upload.rb')
-rw-r--r--file_upload.rb31
1 files changed, 16 insertions, 15 deletions
diff --git a/file_upload.rb b/file_upload.rb
index aab6b4e..a23d6a1 100644
--- a/file_upload.rb
+++ b/file_upload.rb
@@ -2,38 +2,38 @@
require 'rubygems'
require 'haml'
-require 'pathname'
require 'sinatra/base'
class FileUpload < Sinatra::Base
configure do
enable :static
enable :sessions
-
- set :views, Pathname.new(__FILE__).dirname.join('views').expand_path
- set :public, Pathname.new(__FILE__).dirname.join('public').expand_path
+
+ set :views, File.join(File.dirname(__FILE__), 'views')
+ set :public, File.join(File.dirname(__FILE__), 'public')
+ set :files, File.join(public, 'files')
end
-
+
helpers do
def flash(message = '')
session[:flash] = message
end
end
-
+
not_found do
haml '404'
end
-
+
error do
haml "Error (#{request.env['sinatra.error']})"
end
-
+
get '/' do
- @files = settings.public.join('files').entries - [Pathname.new('.'), Pathname.new('..')]
-
+ @files = Dir.entries(settings.files) - ['.', '..']
+
@flash = session[:flash]
session[:flash] = nil
-
+
haml :index
end
@@ -41,14 +41,15 @@ class FileUpload < Sinatra::Base
if params[:file]
filename = params[:file][:filename]
file = params[:file][:tempfile]
-
- File.open(settings.public.join('files', filename), 'wb') {|f| f.write file.read }
-
+
+ File.open(File.join(settings.files, filename), 'wb') {|f| f.write file.read }
+
flash 'Uploaded successfully'
else
flash 'You have to choose a file'
end
-
+
redirect '/'
end
end
+