Skip to content


Subversion checkout URL

You can clone with
Download ZIP

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also compare across forks.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also compare across forks.
base fork: postrank-labs/goliath
head fork: postrank-labs/goliath
Commits on Jul 23, 2011
@joshbuddy joshbuddy update to latest router d6af453
@joshbuddy joshbuddy Merge branch 'master' of 3beab0f
Commits on Jul 24, 2011
@igrigorik igrigorik add note to example to start with -e or set ENV 8ef850b
@igrigorik igrigorik add links to peepcode screencasts on EM & Goliath 5ff1e0c
Commits on Jul 28, 2011
Cyril Rohr Immediately set the deferred status to succeeded after receiving a se…
…rver exception.

This is needed so that the error is returned as soon as possible instead of having to wait until all the hooks (on_headers, on_body, response) have been executed (for nothing).
@dougal dougal Fixed typo. d34493b
@dj2 dj2 Merge pull request #73 from dougal/master
Fixed README typo
Commits on Jul 30, 2011
Philip (flip) Kromer minor misspelling in async_middleware 50fcd4d
Philip (flip) Kromer Refactoring async_aroundware, Part I. in ResponseReceiver, the defaul…
…t pre_process returns Goliath::Connection::AsyncResponse; env is an attr_reader not attr_accessor; in examples/async_aroundware_demo.rb added a missing include. Otherwise, this commit is largely cosmetic.
Philip (flip) Kromer mongo aroundware must be 0.3.x version with current setup 8df93be
Philip (flip) Kromer Refactoring async_aroundware, Part II. Refactored to make the control…
… flow clearer. This is mostly cosmetic, and sets the stage for a new interface that will reduce the distinction between AsyncAroundware and normal middleware.
Philip (flip) Kromer Refactoring aroundware, Part III: added new SimpleAroundware and Barr…
…ierAroundware, to replace the soon-deprecated (but still functional) AsyncAroundware and cronies.

* In AsyncMiddleware, moved callback hook into own method making it easier to follow; also, post_process executes in a safely{} block, avoiding a source of hung calls.
* Created two pairs of base modules for aroundware: SimpleAroundware and SimpleAroundwareFactory handle the case where you *may* want to share information across pre- and post-processing, but don't need to have a barrier to clear pending calls.
* BarrierAroundware and BarrierAroundwareFactory respect the same interface, but add equivalent functionality to EM::Multi.
  - Any deferrable you #enqueue goes into a pending_requests pool; once #pre_process returns, the downstream callback's response also goes in the pending_requests pool.
  - The BarrierAroundware's post_process method will not resume until all pending_requests (the aroundware's and the downstream response) have completed.
  - You're free to at any time also call #perform!, which concurrently waits for the pending pool to clear and then resume.
  - Completed requests are added to the succeses or failures hash as appropriate; and passed to the instance setter named for that handle if any (so, enqueue(:shortened_url, su_req) will eventually call self.shortened_url = su_req on completion).
In a following commit, I'll move AsyncAroundware, ResponseReceiver, MongoReciever to a deprecated/ directory and explain the differences
Philip (flip) Kromer Refactoring aroundware, Part IV: Deprecated old AsyncAroundware, Resp…
…onseReceiver, MultiReceiver, MongoReceiver. Examples still work with the old aroundwarez.
Commits on Jul 31, 2011
Philip (flip) Kromer Added a favicon interceptor to the examples, and used it in the raste…
…rizer examples
Philip (flip) Kromer Refactoring aroundware, Part V: Moved all the aroundware examples ove…
…r to use the new aroundware, doing necessary cleanup along the way.

* BarrierAroundware now store [req, resp] in the successes / failures hashes
* mongo things now work with both old and future em-mongo gems, at the cost of a big conditional 'if' statement in the file
* Added enqueue_acceptor to let you enqueue activities that take a block without yielding a deferrable
Philip (flip) Kromer Refactoring aroundware, Part VI (the last): documentation cleanup in …
…lib/; also, examples/auth_and_rate_limit now checks credentials beforehand (on non-GET/HEAD) or does so in parallel on idempotent requests
Commits on Aug 08, 2011
@sleeper sleeper rake test now works again
The environment was not correctly set before running
the 'template' spec. Now it is forced to 'test' before
actually running the specs
@sleeper sleeper Fix "rake test"
Sets back the environment to 'test' whenever a spec does
change it.
Commits on Aug 09, 2011
Philip (flip) Kromer Merge pull request #74 from postrank-labs/new_aroundware
Refactored aroundware
@dj2 dj2 Merge pull request #77 from sleeper/rake_test_fix
Rake test fix
Commits on Aug 10, 2011
@radsaq radsaq Allow a configurable port number for starting servers during tests, a…
…nd by default use a port other than the default for non-test usage. Also remove some of the repetition in test_helper.rb.
@dj2 dj2 Merge pull request #78 from radsaq/test_helper_fixes
Don't use the default server port number for running tests
Commits on Aug 12, 2011
@rafaelss rafaelss handling parameters that are multiline strings with empty lines inside afe3008
Commits on Aug 13, 2011
@igrigorik igrigorik Merge pull request #79 from rafaelss/fix_required_param_regexp
Improve the way RequiredParam validates a parameter
Commits on Aug 14, 2011
@igrigorik igrigorik remove 1.9.2 requirement in gemspec to make jruby friendly ff70c82
@igrigorik igrigorik minor gemspec cleanup c8008ef
Commits on Sep 02, 2011
@endel endel Update em-synchrony on gemspec. ef756fa
@endel endel Update em-mongo on gemspec. 4029b2c
@igrigorik igrigorik Merge pull request #82 from endel/master
Update em-synchrony and em-mongo on gemspec.
Commits on Sep 04, 2011
@joshbuddy joshbuddy add defer stack for handlers 740b601
@joshbuddy joshbuddy Merge branch 'master' of 294d9cf
@joshbuddy joshbuddy simpler solution for event dispatching. no more defer stack 92166b2
Commits on Sep 05, 2011
@joshbuddy joshbuddy Revert "simpler solution for event dispatching. no more defer stack"
This reverts commit 92166b2.
@joshbuddy joshbuddy proper eventhandler passing 815ecf9
@joshbuddy joshbuddy Merge branch 'new-api'
@joshbuddy joshbuddy remove dead code. add exception for double running 9e7c588
Commits on Sep 06, 2011
@joshbuddy joshbuddy integration test for api routing and on_headers 48be820
Commits on Sep 13, 2011
@subelsky subelsky add 3rd party API proxy example 78542ca
Commits on Sep 14, 2011
@igrigorik igrigorik Merge pull request #84 from subelsky/master
Add a small 3rd party API proxy example
Commits on Sep 17, 2011
@poffe poffe Added options to Goliath::Rack::Heartbeat which takes optional heartb…
…eat path endpoint and heartbeat response.
@igrigorik igrigorik Merge pull request #85 from poffe/heartbeat_options
Added options to Goliath::Rack::Heartbeat
Commits on Sep 20, 2011
@nviennot nviennot EM.epoll *must* be called before c48f009
@igrigorik igrigorik Merge pull request #86 from nviennot/master
EM.epoll *must* be called before
Commits on Sep 29, 2011
@igrigorik igrigorik pedantic, but consistent: multiline blocks should be do/end cc4ba94
@igrigorik igrigorik add ssl support to goliath, closes #24 28aac1e
@igrigorik igrigorik split / fix multiple tests 4d89db4
@igrigorik igrigorik link to sample haproxy config in readme def9123
@igrigorik igrigorik reverse if on start_tls ba6d5a7
@igrigorik igrigorik Merge branch 'close-connection-on-error' of git://…
…liath into fast_close
@igrigorik igrigorik cleanup docs + example api 8f7f6bc
@igrigorik igrigorik document set_event_handler 5853a65
Commits on Oct 01, 2011
@igrigorik igrigorik improve config file munging - closes #71 65675ec
Commits on Oct 04, 2011
Peter Kieltyka Add unix down socket support to runner be85035
@dj2 dj2 Merge pull request #89 from pkieltyka/master
Option in runner to bind to a unix domain socket
Commits on Oct 05, 2011
@joshbuddy joshbuddy only set event handler when there is an @api to be called 176066c
@joshbuddy joshbuddy Merge branch 'master' of c607676
Commits on Oct 06, 2011
Adam Watson Refactored to work with amqp 0.8.0. Using a queue-subscribe model ins…
…tead of long polling for new messages.
@dj2 dj2 Merge pull request #90 from adamlwatson/master
Refactor config for content_stream.rb to work with amqp 0.8.0
Commits on Oct 12, 2011
@marcoow marcoow reload config on HUP
trap the "HUP" signal and reload the
configuration when it is sent (allows
changing the config without restarting
the server similar as Nginx does it)
@igrigorik igrigorik Merge pull request #91 from scoreloop/master
reload configuration on HUP signal
Commits on Oct 13, 2011
@roidrage roidrage Fix typo that referred to an old variable. f979cca
@igrigorik igrigorik Merge pull request #92 from mattmatt/master
Fix a tiny typo that was leftover from the aroundware refactoring
Adam Watson Removing automatic inclusion of HEAD mapping with GET mappings in api…
… routes. These methods should be explicitly mapped instead of implicitly glommed and allowed.
Commits on Oct 14, 2011
@igrigorik igrigorik Merge git:// 9ea8efb
Commits on Oct 16, 2011
Adam Watson Fixing up specs for rack routes that were broken after commit a6d23db.…
… Moved HEAD request api for /hello_world to its own mapping.
@igrigorik igrigorik Merge git:// 1365df0
@igrigorik igrigorik bump to 0.9.3 f528fc2