Skip to content

tenex/rails-assets

Repository files navigation

Rails Assets Build Status

Bundler to Bower proxy

This README concerns the development aspect of the project. Visit the site to learn how to use Rails Assets in your application.

Project Status

Bower is depcreated and new projects should not use it. Because Rails Assets is a proxy between bower and bundler, it should also not be used in new projects. Instead, there are multiple better solutions which work with modern versions of Rails:

A default path with Hotwire and import maps, an alternate path
using a thin integration with one of the popular JavaScript
bundlers, and finally the strict API path with a separate
repository for the front-end.

Development

Setup

git clone [email protected]:tenex/rails-assets.git && cd rails-assets
bundle install && npm install
cp config/database{.sample,}.yml
cp config/application{.sample,}.yml
# edit config/database.yml and config/application.yml if necessary.
bin/rake db:setup
foreman start

Headless chrome

rspec tests will use capybara for tests. Capybara's driver is set up to use selenium with headless Chrome. Therefore, you will need Chrome and the Chrome Selenium web driver.

# get chrome
cat << EOF > /etc/apt/sources.list.d/google-chrome.list
deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main
EOF
wget -O- https://dl.google.com/linux/linux_signing_key.pub |gpg
--dearmor > /etc/apt/trusted.gpg.d/google.gpg
apt update && apt install -y google-chrome-stable
# get appropriate driver
chrome_version="$(google-chrome --version | cut -d ' ' -f3)" # Google Chrome 103.0.5060.53 -> 103.0.5060.53
(wget "https://chromedriver.storage.googleapis.com/${chrome_version}/chromedriver_linux64.zip" &&
 unzip chromedriver_linux64.zip -d /usr/local/bin)

Convert Bower package into Ruby gem using CLI

bin/rake 'component:convert[jquery,2.0.3]'

This will create rails-assets-NAME-VERSION.gem file.

You can remove this component by:

bin/rake 'component:destroy[jquery,2.0.3]'

Gems with a .js in their name

For packages from bower that have a .js in their name like typeahead.js which can generate a gem with the name rails-assets-typehead.js if You want to use this gem with Rails 4.2 or higher in order for your gem to work in your application.js you have to require it as follow

//= require typeahead.js.js

instead of

//= require typeahead.js

Credits

Maintained by Tenex Developers @tenex.

Originally created by @teamon, @porada and @sheerun, with the help of contributors. ❤️

Please don’t tweet bugs to us—report an issue instead. ✌️