{"shas":[["72435e01c88a51fa45202827b27c91f4b08f42ed","40f924d802a754f24560958c585b751e7efea1f7@infochimps.org","Refactoring async_aroundware, Part I. in ResponseReceiver, the default 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"],["8df93be7e62ab3d20df25ba4dddad985e8032632","40f924d802a754f24560958c585b751e7efea1f7@infochimps.org","mongo aroundware must be 0.3.x version with current setup","Philip (flip) Kromer"],["80fc1d12ebc1ade2c1f7f511a1f4ac69f62e9d03","40f924d802a754f24560958c585b751e7efea1f7@infochimps.org","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"],["0f6ed2aa45802c0d419ed529051dbde74aa833ea","40f924d802a754f24560958c585b751e7efea1f7@infochimps.org","Refactoring aroundware, Part III: added new SimpleAroundware and BarrierAroundware, to replace the soon-deprecated (but still functional) AsyncAroundware and cronies.\n* 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.\n* 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.\n* BarrierAroundware and BarrierAroundwareFactory respect the same interface, but add equivalent functionality to EM::Multi.\n  - 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.\n  - The BarrierAroundware's post_process method will not resume until all pending_requests (the aroundware's and the downstream response) have completed.\n  - You're free to at any time also call #perform!, which concurrently waits for the pending pool to clear and then resume.\n  - 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).\nIn a following commit, I'll move AsyncAroundware, ResponseReceiver, MongoReciever to a deprecated/ directory and explain the differences","Philip (flip) Kromer"],["88e67488180e6a4ffad3799ac70359994b4ee79b","40f924d802a754f24560958c585b751e7efea1f7@infochimps.org","Refactoring aroundware, Part IV: Deprecated old AsyncAroundware, ResponseReceiver, MultiReceiver, MongoReceiver. Examples still work with the old aroundwarez.","Philip (flip) Kromer"],["63953707f339eb5961d8d063902233afd533d0a0","40f924d802a754f24560958c585b751e7efea1f7@infochimps.org","Added a favicon interceptor to the examples, and used it in the rasterizer examples","Philip (flip) Kromer"],["20122fb36ccb76fc7a61ae3ca8c4457ca3640350","40f924d802a754f24560958c585b751e7efea1f7@infochimps.org","Refactoring aroundware, Part V: Moved all the aroundware examples over to use the new aroundware, doing necessary cleanup along the way.\n* BarrierAroundware now store [req, resp] in the successes / failures hashes\n* mongo things now work with both old and future em-mongo gems, at the cost of a big conditional 'if' statement in the file\n* Added enqueue_acceptor to let you enqueue activities that take a block without yielding a deferrable","Philip (flip) Kromer"],["7295f1766d43f23411176bbb3fdd265e13e3d7c7","40f924d802a754f24560958c585b751e7efea1f7@infochimps.org","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","Philip (flip) Kromer"],["a91b4f7bc00f295cb54f42ee23d912df220d0906","40f924d802a754f24560958c585b751e7efea1f7@infochimps.org","Merge pull request #74 from postrank-labs/new_aroundware\n\nRefactored aroundware","Philip (flip) Kromer"]],"ref":"refs/heads/master","size":9,"head":"a91b4f7bc00f295cb54f42ee23d912df220d0906","push_id":38956685}