Project

bower

0.02
Repository is archived
No commit activity in last 3 years
No release in over 3 years
There's a lot of open issues
Bower integration for your ruby projects.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

 Project Readme

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.