From: Chuck Brotman Date: 2010-06-26T04:55:53+09:00 Subject: Re: General Confusion Robert, In looking over the code samples you provided: ------------ def add_edge(from, to) (@nodes[from] ||= []) << to self end def edges(node_id) @nodes[node_id] || [] end def node(node_id) Node.new(self, node_id) end end ------------ I find I am a puzzled: Even given that to, from are fixnums: 1) what does "@nodes[node_id] || []" return? 2) same question for: "@nodes[from] ||= []) << to" I could find no reference to this " ||= " syntax (in Pickax, or other ruby texts, nor online Nor do I understand it's semantics... 3) how about Node.new(self, node_id) I have trouble with the use of "self" here, the whole usage of "self" has caused me confusion, ever since I started playing with OO (back when java was IT!) Thanks, Chuck -- Posted via http://www.ruby-forum.com/.