summary refs log tree commit
DateCommit message (Collapse)
2015-02-19Use default bundle install command.
http://docs.travis-ci.com/user/languages/ruby/#Default-Test-Script.
2015-02-19Fix spec versions in all handler files
2015-02-19Run all the tests on ci, we have the pkgs
2015-02-19Oh look, no one has run fulltest for so long
2015-02-19did you know you could use turtles to shave yaks?
2015-02-19Update travis.yml since we added bundler and stuff
2015-02-19Update to reflect changes in #514
2015-02-19Fix #773: Rack.release must match value in gemspec.
2015-02-19Remove Markdown backticks for inline code in Readme
2015-02-19Remove markdown from RDoc readme
2015-02-19Fix lint header regex
2015-02-19Use a monotonic time for Rack::Runtime, if available
Time.now is prone to inaccuracies if the system time changes during the request. This could be due to DST, NTP, etc. Using a monotonic clock (available in Ruby 2.1+ on certain platforms) avoids this problem.
2014-12-23Fix RACK_MULTIPART_LIMIT removal wording
2014-12-23RACK_MULTIPART_LIMIT should've been RACK_MULTIPART_PART_LIMIT
2014-12-18use shasum 1.6.0
2014-12-18bumping version
2014-11-27Merge pull request #763 from byroot/multipart-limit-doc
Document the multipart_part_limit configuration in the README
2014-11-27Document the multipart_part_limit configuration in the README
2014-11-27Header specification change increments SPEC
2014-11-27Rack::Lint and SPEC align with RFC7230 headers
2014-11-27Bump to 1.6.0.beta2 1.6.0.beta2
2014-11-27Merge pull request #399 from EqualMedia/rfc2616-compat
Validate header names according to RFC 2616
2014-11-27Extract several methods from Rack::File#serving
Extracted methods: - mime_type - filesize - response_body Closes #570 Signed-off-by: Santiago Pastorino <santiago@wyeworks.com>
2014-11-27Fix #639 wrong merge
2014-11-27Merge branch 'codekitchen-streaming-multipart'
Closes #639
2014-11-27add rack.multipart options to lint and SPEC
2014-11-27allow overriding the rack multipart parser tempfile class
This allows for more flexibility in how to buffer (or stream) multipart file uploads, rather than always using Tempfile and buffering to local TMPDIR.
2014-11-26MultipartLimitError => MultipartPartLimitError
2014-11-26RACK_MULTIPART_LIMIT is a better name
2014-11-26Explicitly fail when hitting the multipart limit
Signed-off-by: Santiago Pastorino <santiago@wyeworks.com>
2014-11-21Merge pull request #760 from igas/remove-require-from-deflater
Remove unused dependency from Deflater
2014-11-21Remove unused dependency from Deflater
2014-11-15Merge pull request #753 from vais/master
Avoid WEBrick handler buffering the entire response in RAM
2014-11-15Use to_path API per rack SPEC to serve files
2014-11-07Merge pull request #754 from tonyta/http-status-codes-update
Update HTTP Status Codes
2014-11-06update HTTP status codes to IETF RFC 7231
IANA Source: https://www.iana.org/assignments/http-status-codes IETF RFC 7231: https://tools.ietf.org/html/rfc7231
2014-11-06Ensure body is closed inside the proc. Follow existing monkey patch style.
* Serving the rack body is wrapped in begin/ensure/end so that body.close is guaranteed to be called per rack SPEC. When body iteration happens inside a proc, the proc has to have its own begin/ensure/end block to be able to make the same guarantee. * Made my monkey patch for WEBrick::HTTPResponse follow same style as the other monkey patch already present in the file and added a comment.
2014-11-04Revert "Ensure body is closed inside the proc just as it would be outside ↵
the proc" This reverts commit a0b8fe36d456b2dd339d65836a753ff4260dd8f6.
2014-11-04Ensure body is closed inside the proc just as it would be outside the proc
Serving the body is wrapped in begin/ensure/end so that body.close is always called if there are any problems. Now that looping over the body happens in a proc, the proc has to have its own begin/ensure/end block to guarantee the same behavior.
2014-11-03Avoid WEBrick handler buffering the entire response in RAM
2014-10-10Merge pull request #744 from createdbypete/fix-typo
Fix typo in comment
2014-10-10Fix typo in comment
2014-10-05conditionalget: avoid const lookup in case/when HEAD when-lit master
case/when dispatches already optimize away allocation of constant string literals in all C Ruby 1.9.x/2.x releases (ref: opt_case_dispatch in Ruby insns.def) Other Ruby implementations presumably have similar optimizations to encourage prettier code. The following code snippet does not cause GC.count to increase during the two loops, regardless of what `nr' is. Tested on Ruby 1.9.3, 2.1.3, and trunk r47786: GET = "GET" HEAD = "HEAD" REQUEST_METHOD = "REQUEST_METHOD" # unnecessary in 2.2.0+ env = { REQUEST_METHOD => "GET" } nr = 10000000 nr.times do |i| case env[REQUEST_METHOD] when GET, HEAD :foo else :bar end end a = GC.count nr.times do |i| case env[REQUEST_METHOD] when "GET", "HEAD" :foo else :bar end end b = GC.count p [ a, b ]
2014-10-02Merge pull request #739 from schneems/schneems/fix-respond_to
Fix: `respond_to?` takes 2 arguments
2014-10-02Fix: `respond_to?` takes 2 arguments
The `respond_to?` method was optimized for less object creation, unfortunately I also mangled the method signature. This commit reverts the changes introduced in #737 to `BodyProxy#respond_to?` and adds tests. See: https://github.com/rack/rack/pull/737/files#r18359323 cc/ @raggi
2014-10-02Merge pull request #737 from schneems/schneems/less-objects
Less allocated objects on each request
2014-10-02Less allocated objects on each request
How many? Using `memory_profiler` and a Rails app (codetriage.com), master uses: ``` rack/lib x 7318 ``` After this patch, the app uses: ``` rack/lib x 4598 ``` Or `(7318 - 4598) / 7318.0 * 100 # => 37.16` % fewer objects __PER REQUEST__. To do this, I extracted really commonly used strings into top level Rack constants. It makes for a bit of a big diff, but I believe the changes are worth it. Running benchmark/ips against the same app, I'm seeing a performance host of `2~4%` across the entire app response. This doesn't just make Rack faster, it will make your app faster. While we could certainly go overboard and pre-define ALL strings as constants, that would be pretty gnarly to work with. This patch goes after the largest of the low hanging fruit.
2014-09-06Merge pull request #730 from sodabrew/patch-1
Trivial change to use single quotes for consistency
2014-09-03Trivial change to use single quotes for consistency
2014-09-01Merge pull request #729 from jeremy/fixes/default-middleware-override-regression
Restore Rack::Server#middleware backward compatibility