我在实现一个 gem,当中需要在 rake assets:precompile
编译完成后执行一些额外的操作。
只知道可以打开一个类,然后添加一个方法,但在 actionpack-3.2.8/lib/sprockets/assets.rake 里面用的是 DSL 语法,不知道如何修改里面的实现方法。
我在项目目录里面
ruby-china/lib/tasks/xxxxx.rake
namespace :assets do
desc "kill kill kill precompile"
task :precompile => :production do
invoke_or_reboot_rake_task "assets:precompile:all"
system("echo 'push assets to remote' >> ~/asset.log ")
end
end
这样写一个 rake 是可以实现功能。 但写在 gem 的 lib/tasks/xxxx.rake里面就没办法运行 如果无法实现,只能在安装 gem 的时候将 xxxx.rake 文件复制到项目中,不过这样的实现很恶心,不知道大家有没有更加优雅的实现方式。@jasl @camel