guard-rails-assets/README.md

104 lines
3.2 KiB
Markdown
Raw Normal View History

2011-06-17 13:23:04 +00:00
# Guard::RailsAssets
2011-07-16 09:06:12 +00:00
Guard::RailsAssets compiles the assets in Rails 3.1 application automatically when files are modified.
2011-06-17 13:23:04 +00:00
Tested on MRI Ruby 1.9.2 (please report if it works on your platform).
If you have any questions please contact me [@dnagir](http://www.ApproachE.com).
## Install
Please be sure to have [Guard](https://github.com/guard/guard) installed.
Install the gem:
Add it to your `Gemfile`, preferably inside the test and development group:
```ruby
gem 'guard-rails-assets'
```
Add guard definition to your `Guardfile` by running:
```bash
$ guard init rails-assets
```
## Rails 3.1
2011-09-04 07:57:57 +00:00
The assets can be compiled using following "runners":
2011-06-17 13:23:04 +00:00
1. rake command (CLI);
2. loading the actual Rails environment.
In the 1st case - this Guard is not actually using Rails directly while in the 2nd - it loads it explicitly.
2011-06-17 13:23:04 +00:00
Good thing about the 1st approach is that assets will always be same as produced by Rails.
Bad thing is that it is pretty slow (~10 seconds) because it starts Rails from ground zero.
2011-06-17 13:23:04 +00:00
The 2nd approach is good because it is much faster, but does not reload Rails environment (so you have to restart guard).
2011-09-04 07:57:57 +00:00
Additionally it relies on a single instance of your app to be loaded, so you can't have multiple guards with different reails configurations.
2011-06-17 13:23:04 +00:00
## Guardfile and Options
2011-09-04 07:57:57 +00:00
In addition to the guard configuration, `guard-rails-assets` has options to specify when exacly to precompile assets.
2011-06-17 13:23:04 +00:00
2011-07-16 09:06:12 +00:00
- `:start` - compile assets when the guard starts (enabled by default)
- `:change` - compile assets when watched files change (enabled by default)
- `:reload` - compile assets when the guard quites (Ctrl-C) (not enabled by default)
- `:all` - compile assets when running all the guards (Ctrl-/) (not enabled by default)
2011-06-17 13:23:04 +00:00
Also you can set the `:runner` option:
- `:cli` - compile assets using the rake task - the most correct method, but slow.
- `:rails` - compile assets by loading rails environment (default) - fast, but does not pick up changes.
2011-09-04 07:57:57 +00:00
You can also use `:rails_env` option to specify what Rails environment to use (defaults to 'test').
2011-06-17 13:23:04 +00:00
For example:
```ruby
# This is the default behaviour
2011-09-04 07:57:57 +00:00
guard 'rails-assets', :run_on => [:start, :change], :runner => :rails, :rails_env => 'test' do
2011-06-17 13:23:04 +00:00
watch(%r{^app/assets/.+$})
end
# compile ONLY when something changes
guard 'rails-assets', :run_on => :change do
2011-06-17 13:23:04 +00:00
watch(%r{^app/assets/.+$})
end
# compile when something changes and when starting
2011-07-08 03:50:12 +00:00
guard 'rails-assets', :run_on => [:start, :change] do
2011-06-17 13:23:04 +00:00
watch(%r{^app/assets/.+$})
end
```
## Development
- Source hosted at [GitHub](https://github.com/dnagir/guard-rails-assets)
- Report issues and feature requests to [GitHub Issues](https://github.com/dnagir/guard-rails-assets/issues)
Pull requests are very welcome!
2011-07-08 03:50:12 +00:00
## Licensed under WTFPL
```
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004
Copyright (C) 2011 Dmytrii Nagirniak <dnagir@gmail.com>
Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. You just DO WHAT THE FUCK YOU WANT TO.
```