在Rails< 3,rake任务将供应商插件资产复制到公共供应商资产文件夹?

时间:2011-11-10 21:14:34

标签: ruby-on-rails ruby-on-rails-plugins assets

我是Rails的新手。我一直在供应商插件的资产目录中对资产资源(例如javascripts)做一些工作,并且每次更改文件时都不得不重新启动webrick,以便将其复制到公共资源文件夹中的适当位置。

e.g。从vendor / PLUGIN / assets到public / plugin_assets / PLUGIN

我正在试图找出服务器脚本启动的任务以完成此任务,以便我可以在IDE中添加快捷方式任务。我们正在转向Rails 3.1,但是现在我需要快速而又脏的东西,不需要更改代码库或引入依赖项。有谁知道这是做什么的?我可能最终会调试该死的东西,看看这发生了什么,或者说是一个简单的'cp -r'类型的脚本。当然,必须有更轻松的事情......

2 个答案:

答案 0 :(得分:2)

我终于找到了我想要的东西:

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

答案 1 :(得分:0)

只需在插件中创建一个生成器。

See the example from my gem