apply rails_env option to both runners, shorter readme.
This commit is contained in:
parent
3495b1a1a3
commit
bc99a928ab
25
README.md
25
README.md
@ -1,9 +1,9 @@
|
|||||||
# Guard::RailsAssets
|
# Guard::RailsAssets
|
||||||
|
|
||||||
|
|
||||||
Guard::RailsAssets compiles the assets in Rails 3.1 application automatically when files are modified.
|
Guard::RailsAssets compiles the assets within Rails 3.1 application whenever those change.
|
||||||
|
|
||||||
Tested on MRI Ruby 1.9.2 (please report if it works on your platform).
|
Tested on MRI 1.9.2 (please report if it works on your platform).
|
||||||
|
|
||||||
If you have any questions please contact me [@dnagir](http://www.ApproachE.com).
|
If you have any questions please contact me [@dnagir](http://www.ApproachE.com).
|
||||||
|
|
||||||
@ -22,25 +22,10 @@ gem 'guard-rails-assets'
|
|||||||
Add guard definition to your `Guardfile` by running:
|
Add guard definition to your `Guardfile` by running:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ guard init rails-assets
|
$ bundle exec guard init rails-assets
|
||||||
```
|
```
|
||||||
|
|
||||||
## Rails 3.1
|
## Options
|
||||||
|
|
||||||
The assets can be compiled using following "runners":
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
The 2nd approach is good because it is much faster, but does not reload Rails environment (so you have to restart guard).
|
|
||||||
Additionally it relies on a single instance of your app to be loaded, so you can't have multiple guards with different reails configurations.
|
|
||||||
|
|
||||||
## Guardfile and Options
|
|
||||||
|
|
||||||
In addition to the guard configuration, `guard-rails-assets` has options to specify when exacly to precompile assets.
|
In addition to the guard configuration, `guard-rails-assets` has options to specify when exacly to precompile assets.
|
||||||
|
|
||||||
@ -52,7 +37,7 @@ In addition to the guard configuration, `guard-rails-assets` has options to spec
|
|||||||
Also you can set the `:runner` option:
|
Also you can set the `:runner` option:
|
||||||
|
|
||||||
- `:cli` - compile assets using the rake task - the most correct method, but slow.
|
- `: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.
|
- `:rails` - compile assets by loading rails environment (default) - fast, but does not pick up changes. Additionally it relies on a single instance of your app to be loaded, so you can't have multiple guards with different rails configurations.
|
||||||
|
|
||||||
You can also use `:rails_env` option to specify what Rails environment to use (defaults to 'test').
|
You can also use `:rails_env` option to specify what Rails environment to use (defaults to 'test').
|
||||||
|
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
module Guard
|
module Guard
|
||||||
class RailsAssets::CliRunner
|
class RailsAssets::CliRunner
|
||||||
def initialize(options)
|
def initialize(options={})
|
||||||
|
@rails_env = (options[:rails_env] || 'test').to_s
|
||||||
end
|
end
|
||||||
|
|
||||||
def compile_assets
|
def compile_assets
|
||||||
system "bundle exec rake assets:clean assets:precompile"
|
system "RAILS_ENV=#{@rails_env} bundle exec rake assets:clean assets:precompile"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -2,11 +2,18 @@ require 'spec_helper'
|
|||||||
|
|
||||||
describe Guard::RailsAssets::CliRunner do
|
describe Guard::RailsAssets::CliRunner do
|
||||||
|
|
||||||
subject { Guard::RailsAssets::CliRunner.new({}) }
|
|
||||||
|
|
||||||
it 'should run the command' do
|
it 'should run the command' do
|
||||||
subject.stub(:system)
|
subject.stub(:system)
|
||||||
subject.should_receive(:system).with("bundle exec rake assets:clean assets:precompile")
|
subject.should_receive(:system).with("RAILS_ENV=test bundle exec rake assets:clean assets:precompile")
|
||||||
|
subject.compile_assets
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with production environment' do
|
||||||
|
subject { Guard::RailsAssets::CliRunner.new(:rails_env => :production) }
|
||||||
|
it 'should run the command' do
|
||||||
|
subject.stub(:system)
|
||||||
|
subject.should_receive(:system).with("RAILS_ENV=production bundle exec rake assets:clean assets:precompile")
|
||||||
subject.compile_assets
|
subject.compile_assets
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user