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
|
|
|
|
2011-08-02 12:22:03 +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
|
|
|
|
2011-08-02 12:22:03 +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
|
|
|
|
2011-08-02 12:22:03 +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
|
|
|
|
2011-08-02 12:22:03 +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-08-02 12:22:03 +00:00
|
|
|
|
|
|
|
|
2011-06-17 13:23:04 +00:00
|
|
|
For example:
|
|
|
|
|
|
|
|
|
|
|
|
```ruby
|
2011-08-02 12:22:03 +00:00
|
|
|
# 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
|
|
|
|
|
2011-08-02 12:22:03 +00:00
|
|
|
# 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
|
|
|
|
|
2011-08-02 12:22:03 +00:00
|
|
|
# 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.
|
|
|
|
```
|