ruby
文章平均质量分 70
so_what_ror
这个作者很懒,什么都没留下…
展开
-
ruby 比较符号总结
1. equal? ruby中比较两对象方法有很多,可以用equal?比较两对象是否相等。 test1 = "abce" # test1.object_id => 22615872 test2 = "abce" # test2.object_id => 2261988 test1.equal?(test2) => false test原创 2013-03-04 14:34:42 · 2029 阅读 · 0 评论 -
学习写一个gem
如何写一个gem。首先第一步要用bundle 创 建一个没有功能的gem(我把它叫作空gem)。 1. 第一步,为自己的gem取个名--- my_first_gem bundle gem my_first_gem create my_first_gem/Gemfile create my_first_gem/Rakefile create my原创 2013-03-06 10:21:34 · 598 阅读 · 0 评论 -
ruby的 ||= , && , || 等运算符的理解。
先让我们来看段cancan插件中的代码: def aliased_actions @aliased_actions ||= default_alias_actions end这段代码相当于下面一段代码: def aliased_actions if @aliased_actions return @alia原创 2013-03-18 12:12:47 · 2154 阅读 · 0 评论 -
ruby元编程 消除重复代码
在日常编程中经常无意中会写很多相同或类似的代码,让整个项目代码看起来很难看也不好维护,我们了遵守Don’t Repeat Yourself(不要重复你自己)原则,在可以的前提下尽可能的抽取相同的代码重复得用。 除了这样,也可以使用ruby元编程技巧解决重复问题,有两种方法 1.动态方法与动态派发; 2.动态代理。 class Ds def get_mouse_info原创 2013-04-14 21:21:31 · 816 阅读 · 0 评论 -
ruby 元编程 代码块
代码块回忆: 代码块在ruby编程中随处可见,你可能把代码码定义中一对大括号中,也可以定义在do...end关键字中。代码块只有在方法调用时才可以定义,块是直接传递给这个方法的,然后这个方法可通过yield关键字回调这个块。 在一个方法调用中我们可以向ruby询问当前方法的调用是否包含代码块。可以通过Kernel#block_given?方法做到: def原创 2013-04-17 13:00:02 · 544 阅读 · 0 评论 -
代码块续 (proc对象)
ruby中大部分元素都是对象,但块不是。如果想把块存储起来供以后用,这时就要一个对象了。哪ruby中有哪些方式可以把块转为对象呢? ruby中有种叫延迟技术的:把一个块转为对象 block_obj = Proc.new { |x| x + 1 } block_obj.call(3) => 4 这种技术就叫延迟执行。 ruby中提供了Proc类,还有两个内核方法原创 2013-04-19 10:06:24 · 554 阅读 · 0 评论 -
require, load, include, extend用法
include主要用来将一个模块插入(mix-in)到一个类或者其它模块。即可以引入类方法也可以引入实型方法。 在模块中定义类方法有别于在类中定义,应大 def self.included(cla) .......end方法中定义。 model M #定义类方法 def self.included(cla)原创 2013-03-04 10:58:30 · 379 阅读 · 0 评论