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(",")
Rich S. 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
Rich S. 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
Define “attribute”. You can print a list of instance variables and their
values like this:
puts instance_variables.map {|var| “#{var}:
#{instance_variable_get(var)}”}
HTH,
Sebastian
If you are trying to serialize, deserialize an object, you might be
insterested in http://json.rubyforge.org/.
g.