From: Gill Abar Date: 2008-11-16T09:09:54+09:00 Subject: Newbie question - Problem understanding W(p)GTR In w(p)gtr I have found myself facing a code which, for the life of me, I just could not understand a few thing in! Seeing as this is the closest board realting to the subject, I shall post my question here - The code I speak of is - class String # The parts of my daughter's organ # instructor's name. @@syllables = [ { 'Paij' => 'Personal', 'Gonk' => 'Business', 'Blon' => 'Slave', 'Stro' => 'Master', 'Wert' => 'Father', 'Onnn' => 'Mother' }, { 'ree' => 'AM', 'plo' => 'PM' } ] # A method to determine what a # certain name of his means. def name_significance parts = self.split( '-' ) syllables = @@syllables.dup signif = parts.collect do |p| syllables.shift[p] end signif.join( ' ' ) end end Now, what I could not understand is: Why is @@syllables divided into two hashes? Why is it an array in the first place? And secondly, "syllables.shift[p]". Playing around I gathered that the .shift[p] method returns the result of hash[p] and extracts the pair from the hash. Yet I was told that the [p] part isn't an argument! So I can't seem to fully understand this code.. It doesn't seem to work when I join the two hashes into one, and, again, I can't understand why. It is probably just a little thing I'm missing, or some-such event. If anyone could be of assistance, I will be very grateful. Yours, -Gill -- Posted via http://www.ruby-forum.com/.