首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ruby框架(不是web)

Ruby框架(不是web)
EN

Stack Overflow用户
提问于 2009-11-05 16:34:15
回答 6查看 862关注 0票数 4

有人听说过用于应用程序/脚本的Ruby框架吗?

当Rails出现时,它是一个革命性的工具,因为它将MVC带给了广大的web开发人员,并迫使他们使用设计模式和约定。我正在寻找类似的东西,但是要用cron或用户来编写普通的管理任务:更新、备份、管理工具箱等等。现在我确信每个人都有自己最喜欢的设置应用程序和工具箱的方法,但我想知道是否有MVC的方式。这会迫使我使用设计模式和惯例(我和其他人一样,偶尔使用快捷方式)。

现在我已经尝试了narf和bowline --但是我认为narf已经被抛弃了,bowline面向GUI并且处于早期alpha。

根据反馈,我想澄清:当你启动一个新的网络应用程序--无论多么小--你将使用红宝石、merb、ramaze或什么东西。这样做是为了能够使用这些框架中的所有优点和最佳实践。当然,您可以编写自己的小服务器和一个文件web应用程序,但为什么呢?所以我想知道是否有类似的应用程序/脚本框架。

有人有什么建议吗?

对以下几条评论发表评论: @Michael:我以前看过厨师和木偶,两者都很好,但是--它们更多的是用于自动化设置任务,而不是编写应用程序。

@mansu:我不想取代Cron或预定任务--他们已经做得很好了。我只想让他们运行我的MVC脚本。

@Robert:砧听起来像是被抛弃了--上一次更新是从2007年开始的,它是一个GUI框架。我不认为这是过火--原因是现在我使用了大约40个脚本(从客户csv更新数据到mysql,运行备份,在ftp上运行脚本等等),我确信它一定会增长。我开始意识到,我的一些脚本做同样的事情,比如从csv到mysql的更新数据,所以我重构了代码,使其具有一个使用配置文件的公共库。所以我认为这不是过火。我只是想知道是否已经有了一个框架。

@mereghost:从GUI的角度来看,RuGUI非常有趣,值得进一步研究。似乎得到了积极的维护。我会看看我是否可以使用它,或者我是否可以开发一些基于它的东西。

@bantic:不知道我是怎么错过托尔的--我不时查看Katz的博客。这有点像我正在寻找的东西,但在某种意义上,它并不完全是为了开发一种工具,其中有许多选项,即具有一堆关于如何做复制的参数的复制命令。我想要的东西,它更像一个应用程序,有很多任务。

@ Chuck :恰克,我的想法差不多,直到我开始编写更新DB的脚本。因此,在这个意义上,我确实拥有MVC的M部分,如果不是视图的话。您可能会认为,我只有一个视图-控制台,或者我甚至有多个-假设我的脚本需要每天运行并更新共享上的一些.xls文件,但也可以输出为csv,或者tsv文件,并且能够完成xml以供客户端服务使用。虽然到文件类型的转换(在Rails中也称为格式化程序)发生在Controller中,但是数据的实际布局(假设他们希望某些字段在.xls中是粗体的、蓝色的)应该发生在View中。我有一种感觉,我已经把事情复杂化了,但另一方面,这是PHP开发人员过去对框架的看法,直到Rails的出现刺激了PHP的冒牌。:-)

另外,为了继续这个例子--假设我有一个模型-- ClientData,它由不同的脚本使用--有些写到那个表,有些抓取数据。现在,我有4个脚本使用该表的各个部分导入/导出csv,我使用DBI::MySQL创建并执行查询。问题在于,一旦我对该模型(表)进行了更改--我需要确保更新所有4个脚本,以反映列名或其他方面的更改。现在,我求助于在加载脚本时需要一个对象和配置文件库。但我希望使用一个合适的框架来实现这一点,而不是曾傑瑞操纵的解决方案:-)这也不是一个网络应用程序。我不需要一个网页界面-因为只有两个人可以访问这是我自己和另一个系统管理员。我可能需要向用户提供某种访问权限--这样授权的人就可以强制运行某些脚本--但这不是一个要求,我说,我可以引导Sinatra来这样做。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-11-06 19:35:56

对于这种问题,听起来你想要一个rails应用程序的所有结构,但是它可以用于管理任务。一种解决方案是使用rails本身,这样您就可以获得mvc、测试和许多支持软件,但是与其运行scriipt/控制台来启动web应用程序,不如使用脚本/runner在rails项目中运行ruby代码。

rails命令cd命令脚本/生成模型备份rake :迁移

这是让您在没有错误情况下运行的骨架。然后向模型添加一些功能:

def备份数据库放入“内部备份数据库”结束

并使用脚本/运行程序运行它。

脚本/运行程序"Backup.new().do_database“

如果你真的决定把它变成一个网络应用程序,你不需要移动你的代码。如果您有一些想要重用的代码,甚至可以将这个想法添加到现有的web应用程序中。

票数 1
EN

Stack Overflow用户

发布于 2009-11-05 17:10:19

我不确定这是否正是您所要寻找的,但是您应该考虑主厨框架,它是以相当统一的方式解决管理任务的。

它可能不完全符合这一要求,但可能会提供一些启发。

票数 1
EN

Stack Overflow用户

发布于 2009-11-05 19:05:51

对于GUI应用程序,有一个名为RuGUI的“框架”(或者类似的东西)。

对剧本来说,它们是剧本。=p您可以在编写的任何东西中实现MVC设计模式,而不是真正需要一个框架。

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

https://stackoverflow.com/questions/1681820

复制
相关文章

相似问题

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