`

靠……靠谱量又足啊

    博客分类:
  • Ruby
阅读更多
起源:慎用类变量 - 实例变量靠谱量又足

  

大概如下的代码,查了我一晚上 + 一早上:

irb(main):002:0> User.class_inheritable_hash :genders
=> [:genders]
irb(main):003:0> User.genders
=> nil
irb(main):004:0> User.genders = {:a=>1}
=> {:a=>1}
irb(main):005:0> User.genders = {:b=>1}
=> {:b=>1}
我以为User.genders的结果是{:b=>1},但是:

irb(main):006:0> User.genders
=> {:a=>1, :b=>1}

翻了源码才知道:

  def class_inheritable_hash(*syms)
    class_inheritable_reader(*syms)
    class_inheritable_hash_writer(*syms)
  end

  def class_inheritable_hash_writer(*syms)
    options = syms.extract_options!
    syms.each do |sym|
      class_eval(<<-EOS, __FILE__, __LINE__ + 1)
        def self.#{sym}=(obj)                          # def self.nicknames=(obj)
          write_inheritable_hash(:#{sym}, obj)         #   write_inheritable_hash(:nicknames, obj)
        end                                            # end
                                                       #
        #{"                                            #
        def #{sym}=(obj)                               # def nicknames=(obj)
          self.class.#{sym} = obj                      #   self.class.nicknames = obj
        end                                            # end
        " unless options[:instance_writer] == false }  # # the writer above is generated unless options[:instance_writer] == false
      EOS
    end
  end

  def write_inheritable_hash(key, hash)
    write_inheritable_attribute(key, {}) if read_inheritable_attribute(key).nil?
    write_inheritable_attribute(key, read_inheritable_attribute(key).merge(hash))
  end

分享到:
评论
3 楼 lijun87 2011-05-16  
终于又发现你的身影拉,嘿嘿
2 楼 yuan 2011-05-15  
chloerei 写道
"When you set a class_inheritable_array or a class_inheritable_hash you are actually concatenating (or merging) with the value inherited from the super class."

http://apidock.com/rails/Class/class_inheritable_hash

= = apidock不就这么写的么

文档上说的是super class
我没想到它是这样实现的。
1 楼 chloerei 2011-05-15  
"When you set a class_inheritable_array or a class_inheritable_hash you are actually concatenating (or merging) with the value inherited from the super class."

http://apidock.com/rails/Class/class_inheritable_hash

= = apidock不就这么写的么

相关推荐

    电商付费会员模式,究竟靠不靠谱?.pdf

    电商付费会员模式,究竟靠不靠谱?.pdf

    分析几种教育互联网形态 在线教育到底靠不靠谱?.docx

    分析几种教育互联网形态 在线教育到底靠不靠谱?.docx

    用手机测量LED及其驱动电源闪烁特性靠不靠谱

    在当今时代,LED照明技术广泛应用,并逐渐成为照明市场的主流选择。随着LED照明产品的普及,其固有的闪烁问题也引起了业界和用户的广泛关注。关于LED及其驱动电源闪烁特性的测量方法,也成为了一个亟待解决的行业...

    我在CSDN总结的一些比较靠谱的比较靠的NFTS.zip

    我在CSDN总结的一些比较靠谱的比较靠的4个项目希望能帮到大家。

    靠谱助手微信版

    随着靠谱助手微信版的普及,它所附带的"比克尔.url"文件也许会被用户发现,这可能是一个链接文件,用于直接访问靠谱助手官方网站或其他相关资源。通过这个链接,用户可以获取到更多关于软件的信息、更新以及可能的...

    面试总结js 靠谱靠谱靠谱.md

    面试总结js 靠谱靠谱靠谱.md

    靠谱助手1.4

    【靠谱助手1.4】是一款深受用户喜爱的电脑模拟器软件,它专为喜欢在电脑上体验手机游戏的用户设计。这款工具的核心功能是将移动游戏无缝移植到个人计算机上,让用户无需消耗手机流量,就能在大屏幕上畅享游戏乐趣。...

    智能投顾来了,机器人理财靠不靠谱.pdf

    智能投顾(Robo-Advisor)是近年来金融科技领域的一项重要创新,它的出现与应用在一定程度上改变了传统金融投资顾问的业务模式,并引领了一场财富管理领域的变革。智能投顾通过结合先进的算法和模型,实现自动化、...

    下载靠谱助手吧

    安卓模拟器社区(靠谱社区)是中国最大的安卓模拟器交流论坛,下载靠谱助手安卓模拟器可在PC电脑上极速运行安卓手游和应用。最全手机游戏电脑版攻略心得!

    靠不靠谱:解析火电厂节煤4.9克技术.doc

    在火电厂节能减排领域,一种新的技术正在引起关注——“电厂锅炉烟气余热的深度回收利用及减排系统”。这项技术声称能够将燃煤发电机组的供电煤耗降低4.9克/千瓦时,远超过常规低温省煤器或低温烟冷器技术所能实现的...

    读《马克思靠谱》心得.pdf

    读《马克思靠谱》心得.pdf

    判断一家公司靠不靠谱,看中层领导就够了.docx

    他们既是执行者,又是团队的领导者,他们的能力和素质直接影响到公司的整体表现和员工的工作积极性。一个强大的中层管理者应具备以下特征: 1. **战略规划**:中层管理者需要理解上级的策略,制定部门的发展战略,...

    靠谱助手安卓PC模拟器

    靠谱助手安卓PC模拟器

    怎样构建靠谱团队

    【构建靠谱团队】是IT行业中一个至关重要的主题,无论是在软件开发、项目管理还是技术支持等领域,拥有一支高效且可靠的团队都是成功的关键。本篇主要探讨如何构建并维护这样的团队,尤其是在技术领域。 首先,我们...

    靠谱助手V3.5.2247_setup

    靠谱手机安卓应用助手,海量应用随便下载,实用、好用。

    读《马克思靠谱》心得参考.doc

    读《马克思靠谱》心得参考.doc

    靠谱助手 v6.3.2933 最新版.zip

    靠谱助手是一款专业的第三方智安卓模拟器管理软件,软件由靠谱社区推出,目前支持bluestacks安卓模拟器,是国内最完美的PC端管理软件以及最大用户群体的安卓模拟器管理软件。软件支持安卓的APP资源搜索、下载、APP...

    靠谱的文件切割工具

    本文将详细介绍“靠谱的文件切割工具”及其相关知识点。 文件切割工具是一种实用的软件,其主要功能是将大型文件分割成较小的部分,以便于传输、存储或管理。在提供的资源中,包含了两个这样的工具,一个是作者的...

    靠谱助手(bluestacks安卓模拟器)

    靠谱助手是靠谱社区于2013年5月18日推出的一个专为第三方智能安卓模拟器提供管理的免费应用程序,靠谱助手目前支持bluestacks安卓模拟器,是国内最完美的PC端管理软件。 bluestacks安卓模拟器支持QQ、微信、陌陌等...

    2019商场“不靠谱”菜馆主题活动策划方案【餐饮】【活动策划】.rar

    标题"2019商场“不靠谱”菜馆主题活动策划方案【餐饮】【活动策划】.rar"表明这是一个关于2019年在商场内针对一家名为“不靠谱”菜馆的特殊主题活动的策划方案。该方案可能包含了一系列创新的营销策略和活动设计,...

Global site tag (gtag.js) - Google Analytics