2014-07-22 60 views
0

我创建了一个可安装的引擎并将其打包为Gem。目前,引擎在App目录以及Lib目录中都有各种文件。更改Rails Gem文件的位置

当我将这个gem添加到apps gemfile时,我希望它将文件(控制器,视图和lib /资产文件)传输到应用程序,而不是从gemfile运行。这是因为用户需要添加和编辑这些文件。

我已经创建了gem并将其推送到rubygems(style_guide),但我似乎无法弄清楚如何制作它,所以当您捆绑安装时,文件和文件夹将在您的应用程序中创建。

回答

0

我的建议:不要让事情在安装时自动发生。

将创建文件的操作转换为Rake任务,并为您的gem提供Rakefile。这比自动安装更可取,因为它可以让用户在需要的时间和地点运行命令。另外,你永远不知道在什么环境下用户会安装宝石 - 也许他们甚至不会使用Rubygems!你不应该假设任何东西,这个选项至少是假设的,并且对用户来说更加灵活。但是,如果您在安装过程中确实使用了魔法,则可以使用像executeable-hooks这样的宝石在您的gem安装时自动运行一些代码。你可以在你的gemspec中指定executable-hooks,以确保它在你的gem安装时可用。一个例子见the documentation