Boson:超越Rake的另一选择?

相信大多数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亲密接触一下吧!

你可能感兴趣的:(Boson:超越Rake的另一选择?)