BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Boson:超越Rake的另一选择?

| 作者 丁雪丰 关注 3 他的粉丝 发布于 2009年11月1日. 估计阅读时间: 3 分钟 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。

相信大多数Ruby开发者对Rake都不陌生,而那些Rails开发者更是每天都要与它打交道。每天看着task...do...end,你需要一些新鲜玩意儿了,Gabriel Horner为我们带来了一个新的命令/任务框架,那就是Boson

Boson借鉴了Rake和Thor的成功经验,同时也做了一些创新。例如,你既可以像使用Rake那样,通过命令行来执行Boson的命令,也可以在irb中运行所有这些命令。

Boson 的设计理念非常简单——任务即方法,方法即任务。Boson库就是普通的Ruby模块,而Boson命令就是这些模块中的方法,每个库还能拥有自己的名字空间。所有的命令都是纯Ruby写的,对Boson没有任何依赖,当你决定不再使用Boson时,仍然可以在irb中运行它们。Gabriel的博客中详细说明了如何在命令行及irb中使用Boson,以及如何用Boson来增强irb

例如,可以像下面这样在Bash中执行Boson命令:

bash> boson libraries
+----------+----------+------+--------------+
| name     | commands | gems | library_type |
+----------+----------+------+--------------+
| core     | 6        |      | module       |
| web_core | 3        |      | module       |
+----------+----------+------+--------------+
2 rows in set

创建命令也比较简单,只需简单地定义一个模块和相应的方法就OK了。

# Let's list boson's default libraries
module Brain
  # Help Brain live his dream
  def take_over(destination)
    puts "Pinky, it's time to take over the #{destination}!"
  end
end

将上面的代码放置在~/.boson/commands/brain.rb中,随后调用:

bash> boson take_over farm
Pinky, it's time to take over the farm!

究竟Boson这只新轮子有多好,它是否能够超越Rake?每个人都有自己的评判标准,例如John Barnette在最近的一篇博客上表示——把Rake当作一个封装任务的引擎固然没错,但那并不是Rake的全部,它更是一个解析依赖的引擎。现在要给出一个结论,可能为时尚早,不妨先gem install boson,与Boson亲密接触一下吧!

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT