clean stuff up
This commit is contained in:
parent
832e320edd
commit
bccee388db
47
README.md
47
README.md
@ -1,29 +1,42 @@
|
|||||||
# Rack::Emstream
|
# Super-simple Rack streaming with Thin and other EventMachine-based servers
|
||||||
|
|
||||||
TODO: Write a gem description
|
This is the absolute simplest way to turn any Rack app into a streaming- and deferrable-capable service using Thin.
|
||||||
|
It handles the necessary async calls to make Thin start streaming, then delivers your
|
||||||
|
response body on each next tick until sent. If you're sending something big, make sure it responds to `each`
|
||||||
|
in chunks:
|
||||||
|
|
||||||
## Installation
|
``` ruby
|
||||||
|
class FileStreamer
|
||||||
|
def initialize(file)
|
||||||
|
@file = file
|
||||||
|
end
|
||||||
|
|
||||||
Add this line to your application's Gemfile:
|
def each
|
||||||
|
while !@file.eof?
|
||||||
|
yield @file.read(8192)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
gem 'rack-emstream'
|
# then respond with a FileStreamer
|
||||||
|
|
||||||
And then execute:
|
def call(env)
|
||||||
|
# ... do stuff ...
|
||||||
|
|
||||||
$ bundle
|
[ 200, {}, FileStreamer.new(File.open('big-file.mpg')) ]
|
||||||
|
end
|
||||||
|
```
|
||||||
|
|
||||||
Or install it yourself as:
|
Nothing to configure, just drop it in to your Rack middleware stack and
|
||||||
|
use Thin as your server:
|
||||||
|
|
||||||
$ gem install rack-emstream
|
``` ruby
|
||||||
|
# for Rails:
|
||||||
|
|
||||||
## Usage
|
config.middleware.insert_before(::Rack::Lock, ::Rack::EMStream)
|
||||||
|
|
||||||
TODO: Write usage instructions here
|
# for Rack::Builder and derivatives:
|
||||||
|
|
||||||
## Contributing
|
use Rack::EMStream
|
||||||
|
```
|
||||||
|
|
||||||
1. Fork it
|
|
||||||
2. Create your feature branch (`git checkout -b my-new-feature`)
|
|
||||||
3. Commit your changes (`git commit -am 'Added some feature'`)
|
|
||||||
4. Push to the branch (`git push origin my-new-feature`)
|
|
||||||
5. Create new Pull Request
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
module Rack
|
module Rack
|
||||||
module Emstream
|
module EMStream
|
||||||
VERSION = "0.0.1"
|
VERSION = "0.1.0"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
1
lib/rack/emstream.rb
Normal file
1
lib/rack/emstream.rb
Normal file
@ -0,0 +1 @@
|
|||||||
|
require 'rack-emstream'
|
@ -13,7 +13,7 @@ Gem::Specification.new do |gem|
|
|||||||
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
||||||
gem.name = "rack-emstream"
|
gem.name = "rack-emstream"
|
||||||
gem.require_paths = ["lib"]
|
gem.require_paths = ["lib"]
|
||||||
gem.version = Rack::Emstream::VERSION
|
gem.version = Rack::EMStream::VERSION
|
||||||
|
|
||||||
gem.add_dependency 'eventmachine'
|
gem.add_dependency 'eventmachine'
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user