Changeset 226
- Timestamp:
- 05/01/07 11:51:13 (2 years ago)
- Files:
-
- trunk/README (modified) (1 diff)
- trunk/Rakefile (modified) (1 diff)
- trunk/lib/merb.rb (modified) (1 diff)
- trunk/lib/merb/mixins/controller_mixin.rb (modified) (4 diffs)
- trunk/lib/merb/mixins/view_context_mixin.rb (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/README
r216 r226 9 9 mongrel 10 10 erubis 11 json or fjson11 json 12 12 mime-types 13 13 archive-tar-minitar trunk/Rakefile
r225 r226 67 67 s.add_dependency('erubis') 68 68 s.add_dependency('json') 69 s.add_dependency('mime-types') 70 s.add_dependency('archive-tar-minitar') 69 71 s.required_ruby_version = '>= 1.8.4' 70 72 trunk/lib/merb.rb
r225 r226 12 12 require 'erubis' 13 13 require 'logger' 14 15 begin 16 require 'fjson' 17 rescue LoadError 18 require 'json' 19 end 14 require 'json' 20 15 21 16 trunk/lib/merb/mixins/controller_mixin.rb
r216 r226 19 19 raise EOFError, "bad content body" unless status == boundary + EOL 20 20 rx = /(?:#{EOL})?#{Regexp.quote(boundary,'n')}(#{EOL}|--)/ 21 22 21 loop { 23 22 head = nil 24 23 body = '' 25 24 filename = content_type = name = nil 26 25 read_size = 0 27 26 until head && buf =~ rx 28 if !head && i = buf.index("\r\n\r\n") 27 i = buf.index("\r\n\r\n") 28 if( i == nil && read_size == 0 && content_length == 0 ) 29 content_length = -1 30 break 31 end 32 if !head && i 29 33 head = buf.slice!(0, i+2) # First \r\n 30 34 buf.slice!(0, 2) # Second \r\n 31 32 35 filename = head[FILENAME_REGEX, 1] 33 36 content_type = head[CONTENT_TYPE_REGEX, 1] 34 37 name = head[NAME_REGEX, 1] 35 38 36 if filename && !filename.empty? 39 if filename && !filename.empty? 37 40 body = Tempfile.new(:Merb) 38 41 body.binmode if defined? body.binmode … … 40 43 next 41 44 end 42 45 46 43 47 # Save the read body part. 44 48 if head && (boundary_size+4 < buf.size) … … 46 50 end 47 51 48 c = input.read(bufsize < content_length ? bufsize : content_length) 49 raise EOFError, "bad content body" if c.nil? || c.empty? 50 buf << c 51 content_length -= c.size 52 read_size = bufsize < content_length ? bufsize : content_length 53 if( read_size > 0 ) 54 c = input.read(read_size) 55 raise EOFError, "bad content body" if c.nil? || c.empty? 56 buf << c 57 content_length -= c.size 58 end 52 59 end 53 60 54 61 # Save the rest. 55 62 if i = buf.index(rx) … … 59 66 content_length = -1 if $1 == "--" 60 67 end 61 68 62 69 if filename && !filename.empty? 63 70 body.rewind trunk/lib/merb/mixins/view_context_mixin.rb
r221 r226 33 33 end 34 34 35 # calls .to_json on data. This will use fjson if installed35 # calls .to_json on data. 36 36 # so it can be faster than escape_js 37 37 def js(data)
