initializer.rb Rails::Initialzier是用来建立Rails环境的主要类。Initializer是在config/environment.rb里面触发的,它里面包含了下面的一个代码块: Rails::Initializer.run do |config| # (configuration) end Rails::Initializer.run带进一个新的对象Rails::Configuration到这个代码块里。然后,run创建一个新的Rails::Initializer对象并且调用他的process方法,这个方法依次用下面的步骤来初始化Rail ...
安装了ubuntu,开始用ubuntu过日子了。 机器: HP dv2000 (dv2125nr) 操作系统: ubuntu 8.04 Hardy. 以前在7.10上折腾过半天,我可怜的声卡还是不发声 过了这么久,还是觉得linux很不错了,找到了张8.04的盘……,这次声卡没有问题了,可是不知道为啥无线网卡有不好用了。找来找去,有了下面的解决办法(我觉得是最简单的一个): http://www.linuxwireless.org/en/users/Drivers/b43#devicefirmware 现在唯一不爽的是,速度不稳定……,先忍忍了 wlan0 IEEE 802. ...
  • 21:51
  • 浏览 (38)
  • 评论 (0)
Introspection and ObjectSpace: Examining Data and Methods at Runtime Ruby提供了很多方法用来在运行时查找对象。还有访问实例变量对象方法。使用他们的时候要当心,因为这些方法 破坏了封装。 class C def initialize @ivar = 1 end end c = C.new c.instance_variables # => ["@ivar"] c.instance_variable_get(:@ivar) # => 1 ...
Bindings Bindings 提供了Ruby代码计算的上下文环境。一个binding是一组存在于代码特定位置的变量和方法。Ruby代码任何语句都可一个计算成一个binding,这个binding可以通过Kernel#bindding获得。Binding是Binding类的对象,他们可以像其他的对象一样传递: class C binding # => #<Binding:0x2533c> def a_method binding end end binding # => #<Binding:0x252b0> C.new.a ...
请先参阅 http://www-128.ibm.com/developerworks/cn/opensource/os-lightweight9/ http://www.javaeye.com/post/168845 翻译的晦涩难懂,多多关照 ============================================================= 延续(Continuations ) 延续(Continuations )是一个很强大的流程控制机制。一个延续(Continuation)表现为一个特定的调用栈和词 法变量状态。他是在执行Ruby代码一个点上的快照。不幸的是 ...
Metaprogramming Techniques 前面已经讲述了Ruby的一些基础,后面是在Rails里面常见的元编程的技术。 尽管例子都是用Ruby书写的,这些技术大部分可以是对任何动态语言适用的。实际上,Ruby的元编程的语法是在像Lisp,Smalltalk和Perl里借鉴的。 运行时方法查找 我们经常需要的是创建一个根据一些运行时的数据变化的函数的接口。最突出的例子是Rails里面的ActiveRecord的属性的accessor方法。对ActiveReord的方法调用会在运行时被转化成属性的入口。在类—方法的层面上,ActiveRecord提供了相当好的便利:Person ...
Block, Method and Proc Ruby的一个很强大的功能就是有把一小片代码作为对象处理的能力。一共有如下的3类: Proc: 一个Proc表现为一个代码块,这个代码块可以带参数调用,并且给出一个返回值。 UnboundMethod: 和Proc比较象。它表现为一个类的实例方法。(要注意的是类方法是一个类对象的实例方法,所以UnboundMethod也可以表现为类方法)。一个UnboundMethod在调用前一定要bound到一个类。 Method: Method 对象是以经通过UnboundMethod#bound 而bound到一个对象的UnboundMethods。还 ...
变量查找 在Ruby里有4种变量类型:全局变量,类变量,实例变量和局部变量。全局变量是全局储存的,局部变量储存是lexically,这里他们和我们的讨论不相关,因为他们和Ruby的类系统没有交互。 实例变量是对于一个特定的对象。它用一个@最为前缀来定义:@price是一个实例变量。正因为Ruby的对象有一个v_tbl的结构,任何一个对象就可以有实例变量。 一个类也是一个对象,所以类也有实例变量。下面的代码访问一个类的实例变量 class A @ivar = "Instance variable of A" end A.instance_variable_get ...
Metaid why the lucky stiff 为Ruby的原编程创建了一个名字为metaid.rb的库。这段小程序可以包含在任何需要原编程的项目里,而且非常有用。 class Object # The hidden singleton lurks behind everyone def metaclass; class << self; self; end; end def meta_eval &blk; metaclass.instance_eval &blk; end # Adds methods to a metaclass ...
Ruby 基础 类和方法 类和方法是Ruby里面向对象的基础。类便利了关系的包装和分解。模块可以用来做mixins—用一替代多继承来把一堆功能添加到类里面已增加类的行为。模块的另一个作用就是把类分到命名空间(namespace) 里。 在Ruby里,类的名字是一个常量。这就是为什么Ruby要求类的名字必须以大写字母开头的原因。这些常量会记值在类的对象里,这个对象就是类Class的一个对象。这个和Class对象是不同的,Class是一个类。“class object”表示一个类。“Class object”是一个类,名字是Class,它是所有类对象的superclass。 类Class继 ...
magixyu
搜索本博客
我的相册
6094f4dd-25cb-3e9a-ba83-0f5e59d1f616-thumb
android
共 3 张
最近加入圈子
存档
最新评论