`

ruby facets

    博客分类:
  • ruby
阅读更多
老實講,ruby 有一個地方真討厭,那就是每次都把我想做的東西做完了。有了 ruby, 我不覺得還有需要再自己弄一個程式語言,做得比我想像中的還好。唯一的缺點大概只有 lib 還不夠多,但有了 facets 的話,那也真的是差不多了。
http://facets.rubyforge.org/
該有的幾乎都有了,差的只剩下一些小東西。如果早點發現這東西,大概就不會想弄 ludy 了吧。

不過想用 facets 有點麻煩,例如我想用 Array#shuffle, 就必須
require 'rubygems'
require 'facets'
require 'array/shuffle'
這麻煩到爆炸了吧!!不過有個好東西:

require 'rubygems'
require 'facets/automatic'

接下來,就放心使用 Array#shuffle 吧!因為 automatic 會自動幫你 require... 我沒去看他的實做,但我猜是建 table 吧。有一個小缺點,例如你想這樣做:

[1,2,3].shuffle.map &:to_s

很不幸,這樣會失敗。shuffle 可以正常自動 require, 但是 Symbol#to_proc 不能藉由這個方法自動 require. 如果你寫:

[1,2,3].shuffle.map &:to_s.to_proc

這樣是 ok 的,automatic 可以自動 require 該 require 的東西。問題大概出在,&:to_s 是 implicit call, automatic 偵測不到。所以第一次使用,還是必須明確說明需要用到 Symbol#to_proc, 接下來就可以快樂地使用

[1,2,3].shuffle.map &:to_s

了。或是前面自己手動 require:

require 'rubygems'
require 'facets'
require 'facets/automatic'

第二行的 require 可以讓你使用 Symbol#to_proc, 所以就可以直接寫:

[1,2,3].shuffle.map &:to_s

快去安裝 facets 吧!!
gem install facets
另一個 ruby web framework nitro 0.41.0 也有用到 facets !! 雖然是用 1.4.5 版的,而現在最新的 facets 是 1.8.54(以 2007.07.08 為準的最新版本)有機會也可以試試 nitro
gem install nitro
官方網站是:
http://www.nitroproject.org/
缺點非常明確!幾乎沒有文件 XD 我很少看到一個東西的文件可以少到這樣。

不多說了,我現在頭痛就算了,眼睛也很痛。
分享到:
评论

相关推荐

    方面:Ruby方面

    Ruby刻面 “您的所有基地都是Ruby”介绍Ruby Facets是Ruby编程语言的通用方法扩展和标准添加的首屈一指的集合。 Facets包含可用于扩展Ruby内置类和模块的核心功能的最大方法集。 这种扩展方法的集合由于其原子性而...

    Programming Ruby - The Pragmatic Programmer's Guide, 2nd Edition (2005) [annotated]

    《Programming Ruby - The Pragmatic Programmer's Guide》第二版(2005年注释版)是一本在IT行业中享有盛誉的经典书籍,专门针对Ruby编程语言进行了深入浅出的讲解。该书不仅覆盖了Ruby语言的基础知识,还探讨了其...

    Rails for .NET Developers (Facets of Ruby)

    2. **语言特性对比:** 本书将详细探讨Ruby与C#的语言特性差异,比如动态类型、块(Block)和元编程等Ruby特有的功能,以及它们如何影响程序设计方式。 3. **代码示例:** 书中提供了大量的代码示例,用以展示相同功能...

    Programming Ruby 1.9 3rd edition

    - **第一部分**:“面向Ruby的方方面面”(Facets of Ruby),介绍了Ruby的基本特性和编程范式。 - **第1章**:“开始使用Ruby”,从命令行环境入手,讲解了如何安装Ruby、运行Ruby程序以及如何使用Ruby文档工具如RDoc...

    Metaprogramming Ruby(Second Edition)

    9. **宝石(Gems)和加载机制**:Ruby的包管理器Gem允许开发者轻松地共享和使用元编程库,如`metaid`和`facets`。 10. **DSL设计**:Ruby的元编程能力使其成为构建DSL的理想选择。DSL可以简化复杂的任务,使代码更...

    Programming Ruby 2nd

    ruby 编程入门的 绝佳 书籍。本书主要包括四部分: 1. Facets of Ruby 2. Ruby in its setting 3. Ruby Crystallized 4. Ruby Library reference.

    Facets:社区策划的Ruby单线列表

    在Ruby中由社区策划的一线(如果需要优雅,则为多线)列表 文件,文件夹和路径 将filename的内容转换为字符串 File . open ( filename , 'rb' ) { | file | file . read } 获取当前用户的主目录 Dir . home 不过,...

    Ruby Web Application Framework-开源

    在RoR项目中,开发者经常将应用拆分为多个方面(facets),每个方面负责特定的功能,这样可以提高代码的可读性和可维护性。然而,没有具体的上下文,我们无法确定"Facet"在这里的具体含义。 开源软件是RoR的一个...

    rails _sunspot 学习笔记

    <div id="search_facets"> <h3>Found: (:search_class).rows %> [:class].blank? %> <%= row.count %> (row.value, :class => row.value) %> <strong><%= row.value %></strong> (, :class => nil %>) ...

Global site tag (gtag.js) - Google Analytics