Sha256: cf859a23dd0c21d29478068da320f0716083a227c900e9467221a2eb36bf8f8c

Contents?: true

Size: 1.88 KB

Versions: 2

Compression:

Stored size: 1.88 KB

Contents

Hey, you've got [LiveReload](http://www.livereload.com/) in my [Rack](http://rack.rubyforge.org/)!
No need for browser extensions anymore! Just plug it in your middleware stack and go!

Use this with [guard-livereload](http://github.com/guard/guard-livereload) for maximum fun!

## Install

`gem install rack-livereload`

## Using in...

### Rails

In `config/environments/development.rb`:

``` ruby
MyApp::Application.configure do
  config.middleware.insert_before(Rack::Lock, Rack::LiveReload)

  # ...or, change some options...

  config.middleware.insert_before(
    Rack::Lock, Rack::LiveReload,
    :min_delay => 500,
    :max_delay => 10000,
    :port => 56789,
    :host => 'myhost.cool.wow'
  )
end
```

### config.ru/Sinatra

``` ruby
require 'rack-livereload'

use Rack::LiveReload
# ...or...
use Rack::LiveReload, :min_delay => 500, ...
```

## How it works

The necessary `script` tag to bring in a copy of [livereload.js](https://github.com/livereload/livereload-js) is
injected right before the closing `head` tag in any `text/html` pages that come through. The `script` tag is built in
such a way that the `HTTP_HOST` is used as the LiveReload host, so you can connect from external machines (say, to
`mycomputer:3000` instead of `localhost:3000`) and as long as the LiveReload port is accessible from the external machine,
you'll connect and be LiveReloading away!

### Which LiveReload script does it use?

* If you've got a LiveReload watcher running on the same machine as the app that responds
  to `http://localhost:35729/livereload.js`, that gets used, with the hostname being changed when
  injected into the HTML page.
* If you don't, the copy vendored with rack-livereload is used.
* You can force the use of either one (and save on the cost of checking to see if that file
  is available) with the middleware option `:source => :vendored` or `:source => :livereload`.

As usual, super-alpha!

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rack-livereload-0.2.1 README.md
rack-livereload-0.2.0 README.md