相信大多数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\u0026gt; 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\u0026gt; boson take_over farm\Pinky, it's time to take over the farm!\\
究竟Boson这只新轮子有多好,它是否能够超越Rake?每个人都有自己的评判标准,例如John Barnette在最近的一篇博客上表示——把Rake当作一个封装任务的引擎固然没错,但那并不是Rake的全部,它更是一个解析依赖的引擎。现在要给出一个结论,可能为时尚早,不妨先gem install boson,与Boson亲密接触一下吧!