This repository has been archived by the owner. It is now read-only.
Bower integration for your ruby/rails apps.
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
spec
.gemtest
.gitignore
.rspec
.rubocop.yml
.travis.yml
.yardopts
CHANGELOG.md
Gemfile
LICENSE.md
README.md
Rakefile
bower.gemspec

README.md

Bower

Gem Version Build Status

Bower integration for your ruby apps.

Usage with Sprockets

Rails

Add bower to your application's Gemfile:

gem 'bower'

Rails 4 ships with an updated version of Sprockets that supports bower's bower.json file. If you are running, Rails 3, then you need to require Sprockets 2.2.2.backport1:

gem 'sprockets', '2.2.2.backport1'

The gem includes a generator that sets up your project:

rails generate bower:install

This will install a configuration file (.bowerrc) in your project's root. The configuration file tells bower where to install components and where it expects bower.json.

{
  "directory"  : "bower_components"
}

You can change the destination directory if you like, though putting Bower components under app/assets/ can cause problems (see rails/rails#7968). Add your dependencies to bower.json or use bower install as you would in any other project.

Non-Rails Projects

While offering less capability than when used in Rails' asset pipeline, you can still use the bower gem in a non-Rails project. Just require the gem and append the corresponding directory to Sprocket's load path:

require 'sprockets'
require 'bower'

environment = Sprockets::Environment.new
environment.append_path Bower.environment.directory

Additional Tutorials

How this gem differs from other techniques

For Rails apps, integrating bower components into lib/assets and/or vendor/assets seems like the wrong approach. Since bower can support multiple searchpaths, the need to make a distinction between external dependencies and frameworks does not exist. It can all be managed in once place. This gem takes a more opinionated approach and installs components to bower_components/ in your project's root by default. You can always change it to another location.

If this approach isn't to your liking, you may want to take a look at bower-rails.

TODO

When used with Sprockets, you still need to use a require directive in order to require a component's files. This seems like something that should just work.

Contributing

Pull requests welcome: fork, make a topic branch, commit (squash when possible) with tests and I'll happily consider merging your contributions.

Copyright

Copyright (c) 2015 Steve Agalloco. See LICENSE for details.