Я хочу написать драгоценный камень, который, будучи связанным с Rails 3.1 Gemfile, включает некоторые шаблонные CSS и JS файлы.
Я знаю о генераторах, но как я могу сделать это без них, чтобы эффекты gem могли быть добавлены и удалены без каких-либо изменений, кроме редактирования одной строки в Rails Gemfile?
В идеале, я хотел бы, чтобы gem включил свой CSS/JS по умолчанию при установке, а затем позвольте пользователю использовать генератор для генерации файлов CSS/JS, если они хотят внести какие-либо изменения.
Здесь образец gem, который я скопировал из jquery-rails, который включает файлы javascript без генераторов.
css_gem/
lib/
css_gem.rb {1}
css_gem/
engine.rb {2}
app/
assets/
stylesheets/
css_gem/
index.css {3}
base.css {4}
{1} lib/css_gem.rb
module CssGem
require "css_gem/engine"
end
{2} lib/css_gem/engine.rb
module CSSGem
class Engine < Rails::Engine
end
end
{3} app/assets/stylesheets/css_gem/index.css
/*
*= require base
*/
{4} app/assets/stylesheets/css_gem/base.css
.custom { color: red; }
Rails Gemfile
gem 'css_gem', :path => 'path_to_my_local_gem'
Это не работает для меня, а Rails не видит файл CSS. Что я делаю неправильно?
Решение: К счастью, я нашел видео, чтобы держать меня за руку: http://house9.blogspot.com/2011/06/rails-31-asset-gem.html
Мне пришлось вручную добавить *= require css_gem
в мой манифест стилей Rails (app/assets/stylesheets/application.css). Duh.