使用圆括号按名称调用ruby类

时间:2012-05-01 06:35:21

标签: ruby class

我有这堂课:

class Option
  # ORM's properties
  def self.get( id )
    # some ORM action
    "result of #{id}"
  end
end

我可以致电Option.get :setting来收到结果。如果我想在Option(:setting)中调用String(42)(返回"42")以获得与Option#get相同的结果,该如何编写课程?

1 个答案:

答案 0 :(得分:1)

String实际上是Kernel module中的一种方法:

  

字符串(arg)→字符串

     

通过调用String方法将 arg 转换为to_s

您会在同一个地方找到ArrayFloat和朋友。内核包含在Object中,这就是普通全局函数所使用的所有方法。你可以修补补丁内核:

module Kernel
  def Option(id)
    Option.get(id)
  end
end

或者使用这样的方法创建自己的模块,如果他们想要访问Option(11),可以让人们包含它。