lib/capcode/render/static.rb in capcode-render-static-0.2.0 vs lib/capcode/render/static.rb in capcode-render-static-0.3.0
- old
+ new
@@ -1,19 +1,25 @@
+require 'rubygems'
+require 'mime/types'
+
module Capcode
module Helpers
def render_static( f, opts = {} ) #:nodoc:
# Update options
opts = { :exact_path => true }.merge(opts)
opts = (Capcode::Configuration.options[:static] || {}).merge(opts)
- # Update Content-Type
- @response['Content-Type'] = opts[:content_type] if opts.keys.include?(:content_type)
-
# Path with ".." not allowed
if Capcode.static.nil? or f.include? '..'
return [403, {}, '403 - Invalid path']
end
+ # Update Content-Type
+ if opts.keys.include?(:content_type)
+ @response['Content-Type'] = opts[:content_type]
+ else
+ @response['Content-Type'] = MIME::Types.type_for(File.join( static[:path], f ))[0].content_type
+ end
if !opts.keys.include?(:exact_path) or opts[:exact_path] == true
redirect File.join( static[:uri], f )
else
File.read( File.join( static[:path], f ) ).to_s
\ No newline at end of file