首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为Rails应用程序构建ruby gem

为Rails应用程序构建ruby gem
EN

Stack Overflow用户
提问于 2010-01-15 22:10:17
回答 3查看 6.5K关注 0票数 18

作为一名Rails开发人员,我觉得问这个问题有点愚蠢,但希望我能学到一些新东西,有人能帮我摆脱痛苦!在我的rails应用程序中,我总是使用(其他人)gem,我也使用来自社区或我自己的插件。

我理解使用gem而不是插件的好处,因为它们是可版本的,分段的,系统范围的,更容易管理和共享等等,但我真的不知道如何为我的rails应用程序制作gem!?

你总是从一个插件开始,然后把它转换成一个gem吗,我见过这样的话‘打包成Gem’。此外,我正在考虑构建的gem在普通的ruby程序中也不是很好,它只对rails应用程序有用。我甚至不确定它的语义是否有意义,'RubyGem‘只能在rails应用程序中工作!?

我想创建一个gem (如果这是我应该使用的?)为我的rails应用程序提供了一个独立的功能。它将需要添加数据库迁移,新的路由,并提供控制器和视图或有用的视图助手。我知道我可以通过一个插件来实现这一点,但我只是想知道如何/为什么要作为一个“Ruby Gem”来实现它?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-01-15 22:22:31

为了避免过度工程的风险,我通常直接从应用程序中需要的功能开始。然后,当我需要在另一个项目中使用相同的功能时,我会检查是否值得将其提取到一个插件中,甚至是一个提供API的单独应用程序中。

插件和Gem通常是可互换的。Gems在可重用性和可维护性方面提供了几个显着的优势。另一方面,还有一些特定的已知问题。例如,Rails应用程序实际上不能加载定义为Gem的插件中的rake任务。

几乎每个Rails插件都可以打包为Gem。例如,以我的tabs_on_rails插件为例。

您可以将其作为Gem安装,以指定对environment.rb的依赖。或者,您也可以像预期的那样使用script/plugin install命令。

如果您希望获得相同的结果,请确保遵循标准的Gem布局,并提供Rails所需的init.rb初始化脚本。此外,当插件作为标准Rails插件安装时,您可能希望创建一个install.rbuninstall.rb文件,以包括安装后和卸载后挂钩。

最后但并非最不重要的一点是,如果您将插件打包为Gem,则可以在非Rails项目中重用它,并使用init.rb文件提供特定于Rails的初始化。非Rails应用程序将直接忽略它。

票数 7
EN

Stack Overflow用户

发布于 2010-01-15 22:22:37

如果你想为Rails制作一个插件,https://peepcode.com/products/rails-2-plugin-patterns给了你一个很好的开始。之后,把这个插件做成一个宝石。

要制作一个gem,这个资源http://railscasts.com/episodes/183-gemcutter-jeweler会很有帮助。

票数 3
EN

Stack Overflow用户

发布于 2010-01-15 22:23:17

看看Jeweler吧。珠宝商提供了一组rake任务,使gem的版本控制和构建变得非常容易。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2072059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档