代码之家  ›  专栏  ›  技术社区  ›  konung

Ruby应用程序MVC框架(非web)

  •  4
  • konung  · 技术社区  · 15 年前

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

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

    有人有什么建议吗?


    @迈克尔:我以前看过chef和puppet,两者都不错,但它们更适合于自动化安装任务,而不是编写应用程序。

    @Robert:Anvil听起来要被放弃了——上一次更新是从2007年开始的,它是一个GUI框架。我不认为这是一种过分的做法——原因是目前我使用了大约40个脚本(将客户的数据从csv更新到mysql、运行备份、在ftp上运行脚本等等),我相信它一定会增长。我逐渐意识到,我的一些脚本也做了同样的事情——比如将数据从csv更新到mysql,所以我重构了代码,使其具有一个使用配置文件的公共库。因此,我认为这不是一个过度的杀伤力。我只是想知道是否已经有了这样一个框架。

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

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

    6 回复  |  直到 13 年前
        1
  •  1
  •   Joe Fair    15 年前

    对于这类问题,听起来您需要rails应用程序的所有结构,但需要能够将其用于管理任务。一种解决方案是使用rails本身,以便获得mvc、测试和大量支持软件,但不要运行script/console来启动web应用程序,而是使用script/runner在rails项目中运行ruby代码。

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

    这是一个框架,可以让您无误地运行。然后向模型中添加一些功能:

    def备份 def数据库 结束 结束

    并使用script/runner运行它

        2
  •  1
  •   Michael Gorsuch    15 年前

    我不确定这是否正是你想要的,但是你应该考虑一下。 chef framework ,旨在以相当统一的方式解决管理任务。

    它可能并不完全符合要求,但可能会提供一些灵感。

        3
  •  1
  •   Mereghost    15 年前

    对于脚本,它们是脚本=p您可以实现MVC 设计模式 在你写的任何东西中,都不需要一个框架。

        4
  •  0
  •   mansu    15 年前

        6
  •  0
  •   Chuck Vose    15 年前

    但是如果我理解正确的话,你想要约定,这样木偶可能是正确的答案。它是一种社区支持的脚本操作方法,可以通过cron或任何您喜欢的方式运行。

    另一方面,如果你想要一个webapp,这样人们就可以运行像cPanel这样的管理任务,那么你可以使用rails/sinatra,把它连接到延迟的工作或类似的东西上。

    最后一个命令行选项是使用sake,它是服务器范围的rake,并以这种方式定义任务。