{"action":"created","issue":{"url":"https://api.github.com/repos/redding/dassets/issues/73","labels_url":"https://api.github.com/repos/redding/dassets/issues/73/labels{/name}","comments_url":"https://api.github.com/repos/redding/dassets/issues/73/comments","events_url":"https://api.github.com/repos/redding/dassets/issues/73/events","html_url":"https://github.com/redding/dassets/pull/73","id":116675589,"number":73,"title":"server response: handle partial content requests; send body in chunks","user":{"login":"kellyredding","id":82110,"avatar_url":"https://avatars.githubusercontent.com/u/82110?v=3","gravatar_id":"","url":"https://api.github.com/users/kellyredding","html_url":"https://github.com/kellyredding","followers_url":"https://api.github.com/users/kellyredding/followers","following_url":"https://api.github.com/users/kellyredding/following{/other_user}","gists_url":"https://api.github.com/users/kellyredding/gists{/gist_id}","starred_url":"https://api.github.com/users/kellyredding/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kellyredding/subscriptions","organizations_url":"https://api.github.com/users/kellyredding/orgs","repos_url":"https://api.github.com/users/kellyredding/repos","events_url":"https://api.github.com/users/kellyredding/events{/privacy}","received_events_url":"https://api.github.com/users/kellyredding/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-11-13T00:46:36Z","updated_at":"2015-11-13T04:52:31Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/redding/dassets/pulls/73","html_url":"https://github.com/redding/dassets/pull/73","diff_url":"https://github.com/redding/dassets/pull/73.diff","patch_url":"https://github.com/redding/dassets/pull/73.patch"},"body":"This updates the server middle ware to more properly handle requests.\r\nFirst, this adds support for partial content requests.  The response\r\nwill build its body honoring any single, valid range request headers.\r\nSecond, this switches to iterating over the body content in 8k chunks.\r\nThis is consistent with the implementation used by `Rack::File`.\r\n\r\nNote too: this also adds the `Last-Modified` header to not modified\r\nresponses.  This should have been done originally but was missed.\r\n\r\nAll of this logic is adapted from `Rack::File`'s logic but adapted\r\nto work with asset files.\r\n\r\n@jcredding ready for review.  FYI, I'll use this as a basis for doing similar things in deas' coming `send_file` helper.  I'll be doing that as part of the effort to remove sinatra from deas."},"comment":{"url":"https://api.github.com/repos/redding/dassets/issues/comments/156321067","html_url":"https://github.com/redding/dassets/pull/73#issuecomment-156321067","issue_url":"https://api.github.com/repos/redding/dassets/issues/73","id":156321067,"user":{"login":"jcredding","id":85966,"avatar_url":"https://avatars.githubusercontent.com/u/85966?v=3","gravatar_id":"","url":"https://api.github.com/users/jcredding","html_url":"https://github.com/jcredding","followers_url":"https://api.github.com/users/jcredding/followers","following_url":"https://api.github.com/users/jcredding/following{/other_user}","gists_url":"https://api.github.com/users/jcredding/gists{/gist_id}","starred_url":"https://api.github.com/users/jcredding/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jcredding/subscriptions","organizations_url":"https://api.github.com/users/jcredding/orgs","repos_url":"https://api.github.com/users/jcredding/repos","events_url":"https://api.github.com/users/jcredding/events{/privacy}","received_events_url":"https://api.github.com/users/jcredding/received_events","type":"User","site_admin":false},"created_at":"2015-11-13T04:52:31Z","updated_at":"2015-11-13T04:52:31Z","body":"@kellyredding - Looks good :boom:"}}