В Rails < 3 выполнить задачу по копированию ресурсов плагина поставщика в общедоступную папку ресурсов поставщика?

#ruby-on-rails #ruby-on-rails-plugins #assets

#ruby-on-rails #ruby-on-rails-plugins #ресурсы

Вопрос:

Я новичок в Rails. Я выполнял некоторую работу с ресурсами ресурсов (например, javascripts) в каталоге ресурсов плагина поставщика и ненавижу перезапускать webrick каждый раз, когда я изменяю файл, чтобы скопировать его в соответствующее место в папке общедоступных ресурсов.

например, из vendor / PLUGIN / assets в public / plugin_assets / PLUGIN

Я пытаюсь выяснить, какую задачу запускает серверный скрипт для выполнения этого, чтобы я мог добавить задачу быстрого доступа в свою IDE. В какой-то момент мы переходим на Rails 3.1, но сейчас мне нужно что-то быстрое и грязное, что не требует изменения базы кода или введения зависимостей. Кто-нибудь знает, где это делается? Я мог бы в конечном итоге отладить эту чертову штуку, чтобы увидеть, где это происходит, или исправить простой скрипт типа ‘cp -r’. Конечно, должно быть что-то проще…

Ответ №1:

Я, наконец, нашел то, что искал в:

 vendor/plugins/engines/lib/engines.rb
  

включает в себя метод Engines.mirror_files_from из него. Итак, я написал задачу rake:

 require "vendor/plugins/engines/lib/engines.rb"

namespace :myspace do
  desc 'Mirror plugin assets with public assets folder'

  task :mirror_assets do
    plugin = "PLUGIN_NAME"
    Engines.mirror_files_from("vendor/plugins/#{plugin}/assets",
      "public/plugin_assets/#{plugin}")
  end
end
  

Ответ №2:

Просто создайте генератор внутри плагина.

Смотрите пример из моего gem.