From: Li Chen Date: 2008-09-27T02:13:48+09:00 Subject: Re: How to iterate of the attributes of an object? Rich Sturim wrote: > I need to build a string of all populated attributes of a given object. > > I need to get the attribute name and it's value > > Also,the object may have 10 attributes, but I'm only interested in the > attribute that are not nil. > > > > here's a sample object: > foo = Foo.new(:bar => 'baz', :bar2 => 'baz2', :bar3 => 'baz3') > > > ultimately what I want is this as a string like this: > ":bar => 'baz', :bar2 => 'baz2', :bar3 => 'baz3'" > > code should be something like this? (sorry I'm a newbie) > > s = "" > > foo.instance_values.each do |v| > s += ":#{v.name} => #{v.value}" > end > > s.split(",") C:\Documents and Settings\chen73>irb irb(main):001:0> foo = {:bar => 'baz', :bar2 => 'baz2', :bar3 => 'baz3'} => {:bar3=>"baz3", :bar=>"baz", :bar2=>"baz2"} irb(main):002:0> foo.each{|k,v| puts "#{k} "+"=>"+"#{v}" } bar3 =>baz3 bar =>baz bar2 =>baz2 => {:bar3=>"baz3", :bar=>"baz", :bar2=>"baz2"} Li -- Posted via http://www.ruby-forum.com/.