2014-01-19 80 views
1

我要寻找的建议/资源/途径除了红宝石游戏管理轨道项目的外部依赖关系(捆绑不只是完美的)除了依赖。例如,我想补充检查,看是否喜欢的东西管理的Rails从宝石

  1. 一些外部的二进制文件(如@中,蟒蛇等等等等。)
  2. 一些环境变量设置或没有(像AWS访问密钥等.. ..)
  3. 今天是圣诞节!?

而且更多一些。

想到的一点是,如果可以将这些检查添加到捆绑器并显示错误消息(如果某些其他用户定义的项目依赖项丢失或不存在),那将会很好。我没有寻找版本管理或任何幻想。只需添加一些自定义代码检查来查看所有依赖关系(当然除了宝石)。

还是有更好的办法的人做什么呢?使用单元测试可能是?如果初学者不知道如何运行单元测试呢?

我之所以问这个问题,比如我作为一个经验丰富的有点Rails开发要与别人合作刚刚起步。我想使项目安装和设置变得简单,并且使错误变得冗长(如果有的话)。

建议和链接,以良好的资源欢迎。

UPDATE

是否有一个 “优雅” 的方式来添加一些挂钩捆绑?说让它运行一些单元测试或测试什么的?

而且我不一定要找这种检查也安装这些外部依赖。只需检查它们,如果检查失败,则显示用户友好的信息并提示如何安装它们。

简单的例子代码将是真棒..用耙子任务的

+0

不能支持一个完整的答案,但我肯定会添加一个检查环境的覆盖测试。如果你和一个经验不足的人一起工作,他们不知道如何运行测试,那么第1课是“如何运行测试”。 –

+0

你为什么要避免* bundler *? –

+0

@NeilSlater我已经有了覆盖环境的测试用例。但我的想法是“捆绑安装”确实是你做的第一件事。如果我们可以运行更多的依赖检查,那将是非常棒的。 – Shaunak

回答

1

majioa的建议是有道理的。您需要以某种方式运行shell命令,并且rake允许您更自然地将它们集成到Rails应用程序中。

我不确定你是如何挂入bundle的,但可以挂钩Rails的rake任务(请参阅this answer)。 db:createdb:migrate是您可以接入的常见初始任务。请参阅this post作为学习耙子的起点。

尽管如此,设置机器似乎应该与应用程序本身分开考虑。你以前看过Chef吗?

+0

感谢您的回答Jim,是的,我已经看过厨师,只有我觉得用它来检查这些操作系统依赖关系中的几个会是一种矫枉过正。现在创建耙子任务使您的答案中的链接更有意义。只需要弄清楚如何在捆绑器后执行它们。因为如果没有满足依赖关系,我仍然认为这是捕获这些错误的最简单方法。 – Shaunak