Ruby Meta Programming: define_method or class_eval
今天刚巧看到Matt Aimonetti的blog上讨论ruby meta programming的执行效率问题,就跟着做了一下,还是学到了不少东西。大致说一下吧,首先Matt写了一个简单的计算时间的DSL类:
module TimeDSL
def second
self * 1
end
alias_method :seconds, :second
...
by yapex 2008-07-28 浏览 (470) 回复 (1)
Ruby Meta Programming: eigenclass
Ruby eigenclass从字面上理解就是自己的类。singleton class是它的另一个名字,不过我更喜欢eigen,更准确。
那什么是eigenclass呢?以x战警为例:
class Person
attr_accessor :name, :age
def initialize(name)
@name = name
end
end ...
by yapex 2008-07-27 浏览 (331) 回复 (3)
Ruby/JRuby里定义类时指定基类的一个问题
之前的一帖里提到了JRuby里Java类的名称问题。后来读到JavaEye上当Ruby遇到Java,勇敢地跨越边界吧这一帖,发现里面有这样的代码例子:
class MyStringBuffer < java.lang.StringBuffer
def append(v)
end
end
然后觉得有点奇怪:为什么基类的部分用java.lang.StringBuffer就行呢?在类 ...
by RednaxelaFX 2008-06-16 浏览 (239) 回复 (0)
JRuby的类重定义……为什么不行?
在jirb里想试试这个的:
class java.lang.Integer
def +(rhs)
self.int_value() + rhs
end
end
但是jirb总是提示self.int_value() + rhs那行有错。到底是为什么呢?
我也就是想这样而已……
irb(main):001:0> i = java.lang.Integer.new(1) # O ...
by RednaxelaFX 2008-06-13 浏览 (201) 回复 (4)
Ruby 1.8.x中复合赋值运算符的实现
嗯,在RPGCHINA读帖的时候看到一个有趣的主题,说Ruby的a = a + 1与a += 1的执行效率不一样。很明显这个认识有偏差,事实上Ruby的复合赋值运算符与其展开的简单赋值形式在经过解释器前端的解析后就一模一样了。连对应的抽象语法树都是一样的,执行效率能差多少呢?
更糟糕的是回帖中有错误的解释,将这个“差异”对应到汇编上:
引用引用第8楼nightaway于2008-03-12 21 ...
by RednaxelaFX 2008-06-12 浏览 (453) 回复 (0)
将ANTLR生成的.tokens文件重格式化(Ruby版)-20080626更新
相关链接:
将ANTLR生成的.tokens文件重格式化(C++版)
将ANTLR生成的.tokens文件重格式化(C#版)
ANTLR在对.g的语法文件生成Java代码的同时,还会生成一个.tokens文件来方便别的parser(例如说接在source parser后的tree parser)使用同样的token定义。
不过这tokens文件看起来不总是那么方便。举例来说,昨天发的帖里Dolp ...
by RednaxelaFX 2008-03-27 浏览 (299) 回复 (0)
netbeans6.0.1和jdk6u4发布,貌似已经解决ubuntu下锁死键盘的问题
下载并在ubuntu7.10下安装,经简单测试,貌似已经解决了之前发现的多点几次鼠标就会锁死键盘的问题。见http://forum.ubuntu.org.cn/viewtopic.php?p=626412
唉,可惜我现在使用emacs已经上瘾了。当初因为windows下ror的单元测试过慢,而切换到ubuntu下,而因为ubuntu下netbeans会出现键盘无反应,而下定决心学习emacs,现在 ...
by crazycode 2008-02-13 浏览 (238) 回复 (0)
Ruby中的Mixin
在Ruby中,我们可以把一个模块混入(Mixin)到对象中,从而达到类似多重继承的效果。
下面举几个例子来仔细阐述一下这个问题:
首先定义一个Module:
module Foo
def bar
puts "foo";
end
end
然后我们把这个模块混入到对象中去:
cl ...
by 老王 2007-12-17 浏览 (476) 回复 (0)
Windows平台编译安装Ruby On Rails
一直使用官方网站下载的ruby 1.8.5二进制包,感觉在windows下速度一般,决定自己编译一下看有没有优化的空间
我的机器是Thinkpad T43,配置PM1.73G 内存1G win2003。以下过程的前提是安装了VC6.0,并且需要确保存在以下命名:nmake、cl、lib、dumpbin。更高版本的VC我没有试过。
1、下载最新的ruby源代码包
目前最新的源代码包是1.8.6p ...
by crazycode 2007-12-16 浏览 (339) 回复 (1)
在Windows操作系统上搭建一个Ruby&Rails的开发平台
在国内,大多数Rubyer使用Windows操作系统,所以今天就先看看如何在Windows操作系统上搭建一个Ruby&Rails的开发平台。
最简单的方式就是安装InstantRails,它集成了大部分你需要的东西,不过话说回来,Ruby&Rails的安装已经非常简单的,所以,还是推荐你自己手动安装开发环境。
首先安装Ruby,安装过程很简单,一路Next就OK了,并且 ...
by 老王 2007-12-11 浏览 (478) 回复 (4)

