私は、人々のライフスタイルの選択に疑問を抱くことは決してありませんでした。特に彼がドアに入ったとき。彼の握手は鉄のようで、私の耳鳴りが収まった後、彼の要求は十分に単純なものでした。「ユーザーを聞いてください」彼は吠えました、「私は XML から疑似オブジェクトに変換する必要があり、昨日それを行う必要があります!」そしてそれで、彼はソニック ブームの直後の小さな筋肉の竜巻のように私のオフィスを一掃しました。 .
だから私は仕事をしなければなりませんでした。最初に:
<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 という小さな gem に出会いました。それを使って、次のことを行います。
class Person
def initialize
@xml = Mash.new(XmlToHash.getHash)
end
attr_accessor :xml
end
素晴らしい!ここでクライアントを参照する必要があるだけで、簡単なテストとして、クライアントの姓を調べます。素晴らしいマッシュで、これがとても簡単にできます!
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"]>
同じ爆破物?! 何が起きてる?このコードは、私のクライアントと同じくらい神秘的です。何が起こっていますか?ここで悪魔の中で何が起こっているのか、そして最初/最後が何をしているのか、親切な魂が説明できますか?