Ruby
文章平均质量分 72
teashown
这个作者很懒,什么都没留下…
展开
-
Ruby中的类模型学习笔记
学习Ruby的初衷是由于ROR,虽然,学习ROR似乎不需要对Ruby语言有过多的了解。但是,在折腾ROR两个星期后,对其中的ActiveRecord发生了兴趣,ROR是怎么做到的?抱着这样的想法,尝试了解ROR背后的Ruby,粗略的看了一遍>,看完之后,感受最深的是:Block,迭代器,以及强大的正则表达式。但是,在着手做点什么的时候,发现还是很多的东西不懂,如method_missing是什么?原创 2013-06-27 15:07:54 · 725 阅读 · 0 评论 -
实现Rails中的cattr_accessor
类似ruby的attr_accessor可以生成实例变量的读写函数,rails中增加了一个cattr_accessor来生成类变量的读写函数,虽然在没有cattr_accessor。你依然可以通过以下代码生成类变量读写函数,如: class Test class << self attr_accessor :filename end end 如果以上代码展开的话,应该是类似以下的东东:原创 2013-06-27 16:27:02 · 1011 阅读 · 0 评论 -
instance_eval,class_eval,def以及define_method
为以下方便先将获取Eigenclass的代码加入到Object中,代码如下: class Object def eigenclass class << self; self; end end end 这样使用 Test.eigenclass即可取得Test变量的Eigenclass,示例代码如下: class Test; end Test.instance_eval do d原创 2013-06-27 17:18:45 · 563 阅读 · 0 评论 -
Ruby实现单例模式
单例模式是一种常用的设计模式,在ruby的标准库中有singleton模块,可以直接像下面这样使用: require 'Singleton' class Test include Singleton end a, b = Test.instance, Test.instance puts a==b #=>true 如果不使用标准库,该如何实现呢?在看完《ruby元编程》第五章后原创 2013-06-27 21:50:31 · 929 阅读 · 0 评论 -
Ruby中的继承的一个问题
Ruby中的继承方式是单继承,如果确实有需要从多个类继承(JAVA有接口的概念,C++中有抽象类),可以使用module,在类中将module mixin。ruby中的继承很简单,如下代码,B从A类继承: class A def initialize puts "A init." end end class B < A def initialize puts "B init.原创 2013-07-01 17:28:08 · 877 阅读 · 0 评论