被捣碎的红宝石哈希需要成为Solidfist Rockgroin的第一名。什么?

时间:2013-10-07 20:32:25

标签: ruby hash rubygems gem

我从来不会质疑人们的生活方式选择。特别是当走进门。他的握手就像铁一样,在我的耳朵响起后,他的要求很简单。 “倾听用户”他咆哮道,“我需要从XML转换为伪对象,我需要它完成 YESTERDAY ”和随之而来的是,他在我的办公室里一扫而光,就像一阵音爆之后的肌肉龙卷风。

所以我开始工作了。首先:

<employeeRecord>
    <employee>
        <firstName>Crunch</firstName>
        <secondName>Crumble</secondName>
        <thirdName>Destructo</thirdName>
        <fourthName>Solidfist</fourthName>
        <lastName>Rockgroin</lastName>
    </employee>
    <dependent>
      <spouse type = "spouse">
        <firstName>Betty</firstName>
      </spouse>
      <child>
        <firstName>Timmy</firstName>
      </child>
    </dependent>
</employeeRecord>

足够简单。在研究Ruby之后,我遇到了一个名为Hashie的小宝石,有了它,我会做以下几点:

class Person
  def initialize
    @xml = Mash.new(XmlToHash.getHash)
  end
  attr_accessor :xml
end

奇妙!我现在只需要引用我的客户端,作为一个简单的测试,拉出他的姓氏。有了精彩的Mash,我可以很容易地做到这一点!

MyClient = Person.new
MyClient.xml.employee.first.lastName # => 'Rockgroin'

等一下,等一下。在那里做什么第一次?如果我摆脱它会怎么样?

MyClient.xml.employee.lastName # => END OF THE WORLD. ABANDON YOUR IDE. 

什么?但为什么?获取Mashed后,.employee.first的哈希内容如下所示:

 #<Hashie::Mash firstName=["Crunch"] fourthName=["Solidfist"] lastName=["Rockgroin"] secondName=["Crumble"] thirdName=["Destructo"]>

如果有第一个,那么最后一个是什么?

#<Hashie::Mash firstName=["Crunch"] fourthName=["Solidfist"] lastName=["Rockgroin"] secondName=["Crumble"] thirdName=["Destructo"]>

同样爆炸的事情?!这里发生了什么?这段代码几乎和我的客户一样神秘。发生了什么?某种灵魂可以解释魔鬼在这里发生了什么,以及第一个/最后一个在做什么?

0 个答案:

没有答案