bower-rails 0.6.0 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +5 -1
- data/lib/tasks/bower.rake +42 -13
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e4ef492a2a98874b7cada24b2c7ed2f07a8a3eef
|
4
|
+
data.tar.gz: b669749e25008d4156955d52737d802d76f942ef
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 46f2239173c06b472b628861afb68b52474f1e6513b56ea2be4cab21f0b7690541544bedec6496ceb0cc64bdfdce26d4afe1b063ebfbbc5952e1000974b1c5e9
|
7
|
+
data.tar.gz: de4a5b73737347a9b163492abcd9a756e41a847de7dda2f1a2895afd767beb98c605f35ff2c3d1a3d881d4949228d57d3e2848b274e4962eed7adacf873c3853
|
data/README.md
CHANGED
@@ -20,7 +20,7 @@ Check out Changelog.md for the latest changes and releases.
|
|
20
20
|
in Gemfile
|
21
21
|
|
22
22
|
``` Ruby
|
23
|
-
gem "bower-rails", "~> 0.
|
23
|
+
gem "bower-rails", "~> 0.6.1"
|
24
24
|
```
|
25
25
|
|
26
26
|
##JSON configuration
|
@@ -117,6 +117,10 @@ If you provide a `.bowerrc` in the rails project root, bower-rails will use it f
|
|
117
117
|
Some .bowerrc options are not supported: `directory`, `cwd`, and `interactive`. Bower-rails
|
118
118
|
will ignore the `directory` property and instead will use the automatically generated asset path.
|
119
119
|
|
120
|
+
###Bower Installation
|
121
|
+
|
122
|
+
[Bower](https://github.com/bower/bower) should be installed using npm. Bower can be installed globally (with `$ npm install -g bower`) or in `node_modules` in the root directory of your project.
|
123
|
+
|
120
124
|
##Relative asset paths
|
121
125
|
|
122
126
|
Some bower components (eg. [Bootstrap](https://github.com/twbs/bootstrap/blob/0016c17f9307bc71fc96d8d4680a9c861f137cae/dist/css/bootstrap.css#L2263)) have relative urls in the CSS files for imports, images, etc. Rails prefers using [helper methods](http://guides.rubyonrails.org/asset_pipeline.html#coding-links-to-assets) for linking to assets within CSS. Relative paths can cause issues when assets are precompiled for production.
|
data/lib/tasks/bower.rake
CHANGED
@@ -4,39 +4,39 @@ require 'pp'
|
|
4
4
|
namespace :bower do
|
5
5
|
desc "Install components from bower"
|
6
6
|
task :install do
|
7
|
-
perform do
|
8
|
-
sh
|
7
|
+
perform do |bower|
|
8
|
+
sh "#{bower} install"
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
12
|
namespace :install do
|
13
13
|
desc "Install components with -F option"
|
14
14
|
task :force do
|
15
|
-
perform do
|
16
|
-
sh
|
15
|
+
perform do |bower|
|
16
|
+
sh "#{bower} install -F"
|
17
17
|
end
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
21
21
|
desc "Update bower components"
|
22
22
|
task :update do
|
23
|
-
perform do
|
24
|
-
sh
|
23
|
+
perform do |bower|
|
24
|
+
sh "#{bower} update"
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
28
|
desc "List bower components"
|
29
29
|
task :list do
|
30
|
-
perform false do
|
31
|
-
sh
|
30
|
+
perform false do |bower|
|
31
|
+
sh "#{bower} list"
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
35
35
|
namespace :update do
|
36
36
|
desc "Update existing components and uninstalls extraneous components"
|
37
37
|
task :prune do
|
38
|
-
perform do
|
39
|
-
sh
|
38
|
+
perform do |bower|
|
39
|
+
sh "#{bower} update && #{bower} prune"
|
40
40
|
end
|
41
41
|
end
|
42
42
|
end
|
@@ -50,15 +50,31 @@ namespace :bower do
|
|
50
50
|
end
|
51
51
|
|
52
52
|
# Install bower assets before precompile
|
53
|
-
Rake::Task['assets:precompile'].enhance ['bower:install', 'bower:resolve']
|
53
|
+
# Rake::Task['assets:precompile'].enhance ['bower:install', 'bower:resolve']
|
54
54
|
|
55
55
|
def perform remove_components = true, &block
|
56
56
|
entries = Dir.entries(get_bower_root_path)
|
57
57
|
|
58
|
+
npm_path = File.join(get_bower_root_path, 'node_modules', '.bin')
|
59
|
+
bower = find_command('bower', [npm_path])
|
60
|
+
|
61
|
+
if bower.nil?
|
62
|
+
$stderr.puts <<EOS
|
63
|
+
Bower not found! You can install Bower using Node and npm:
|
64
|
+
$ npm install bower -g
|
65
|
+
For more info see http://twitter.github.com/bower/
|
66
|
+
EOS
|
67
|
+
return
|
68
|
+
end
|
69
|
+
|
58
70
|
if entries.include?('Bowerfile')
|
59
|
-
dsl_perform_command remove_components
|
71
|
+
dsl_perform_command remove_components do
|
72
|
+
yield bower if block_given?
|
73
|
+
end
|
60
74
|
elsif entries.include?('bower.json')
|
61
|
-
perform_command remove_components
|
75
|
+
perform_command remove_components do
|
76
|
+
yield bower if block_given?
|
77
|
+
end
|
62
78
|
else
|
63
79
|
raise LoadError, "No Bowerfile or bower.json file found. Make sure you have it at the root of your project"
|
64
80
|
end
|
@@ -171,3 +187,16 @@ def resolve_asset_paths
|
|
171
187
|
end
|
172
188
|
end
|
173
189
|
end
|
190
|
+
|
191
|
+
# http://stackoverflow.com/questions/2108727/which-in-ruby-checking-if-program-exists-in-path-from-ruby
|
192
|
+
def find_command(cmd, paths = [])
|
193
|
+
exts = ENV['PATHEXT'] ? ENV['PATHEXT'].split(';') : ['']
|
194
|
+
paths += ENV['PATH'].split(File::PATH_SEPARATOR)
|
195
|
+
paths.each do |path|
|
196
|
+
exts.each do |ext|
|
197
|
+
exe = File.join(path, "#{cmd}#{ext}")
|
198
|
+
return exe if File.executable? exe
|
199
|
+
end
|
200
|
+
end
|
201
|
+
nil
|
202
|
+
end
|