Ruby on rails 为Rails应用程序构建ruby gem
作为一名Rails开发人员,我觉得问这个问题有点愚蠢,但希望我能学到一些新东西,有人能帮我摆脱困境!在我的rails应用程序中,我一直使用(其他人)gems,我也使用来自社区或我自己的插件 我理解使用gems而不是插件的好处,因为它们是可版本的、分段的、系统范围的、更易于管理和共享的等等,但我真的不知道如何为我的rails应用程序制作gem 你总是从一个插件开始,然后把它转换成一个gem吗?我见过“打包成gem”这个词。另外,我想构建的gem在普通的ruby程序中是不好的,它只对rails应用有用。我甚至不确定它的语义是否有意义,“RubyGem”只能在rails应用程序中工作Ruby on rails 为Rails应用程序构建ruby gem,ruby-on-rails,rubygems,ruby-on-rails-plugins,Ruby On Rails,Rubygems,Ruby On Rails Plugins,作为一名Rails开发人员,我觉得问这个问题有点愚蠢,但希望我能学到一些新东西,有人能帮我摆脱困境!在我的rails应用程序中,我一直使用(其他人)gems,我也使用来自社区或我自己的插件 我理解使用gems而不是插件的好处,因为它们是可版本的、分段的、系统范围的、更易于管理和共享的等等,但我真的不知道如何为我的rails应用程序制作gem 你总是从一个插件开始,然后把它转换成一个gem吗?我见过“打包成gem”这个词。另外,我想构建的gem在普通的ruby程序中是不好的,它只对rails应用有
我想为rails应用程序的一个独立功能创建一个gem(如果这是我应该使用的吗?)。它将需要添加数据库迁移、新路由,并提供控制器和视图或有用的视图助手。我知道我可以通过插件实现这一点,但我只想知道如何/为什么要作为“Ruby Gem”来实现?为了避免过度工程的风险,我通常从我需要的功能直接进入应用程序开始。然后,只要我需要在另一个项目中使用相同的功能,我就会检查是否值得将其提取到一个插件中,甚至是一个提供API的单独应用程序中 插件和gem通常是可互换的。Gems在可重用性和可维护性方面提供了几个显著的优势。 另一方面,还有一些特定的已知问题。例如,Rails应用程序实际上无法将定义的rake任务加载到打包为Gem的插件中 几乎每个Rails插件都可以打包为Gem。 例如,以我的插件为例 您可以将其安装为Gem,指定对environment.rb的依赖关系。或者您也可以使用
脚本/插件安装
命令
如果希望获得相同的结果,请确保遵循标准的Gem布局,并提供Rails所需的init.rb
初始化脚本。
另外,当插件作为标准Rails插件安装时,您可能希望创建一个install.rb
和uninstall.rb
文件,以包含安装后和卸载后挂钩
最后但并非最不重要的一点是,如果将插件打包为Gem,则可以在非Rails项目中重用它,并使用
init.rb
文件提供特定于Rails的初始化。非Rails应用程序将直接忽略它。如果您想为Rails制作插件,这将为您提供一个良好的开端。之后,将插件制作成宝石
要制作宝石,此资源将非常有用。请查看。Jeweler为您提供了一组rake任务,使gem版本控制和构建非常简单 从2013年起,您将需要使用和以下教程: