Merging two anonymous structs

Hello, I wonder if it's possible to merge two #struct objects ?

For example merging this one

#<struct #<Class:0xb7986c00> ident="237006/19748895", details="Some text here">

With this one

#<struct #<Class:0xb79893b0> libelle="Nice object", superficie=0, localisation="This town", prix="1000">

How can I do ??

Thanks

Zouplaz wrote:

Hello, I wonder if it's possible to merge two #struct objects ?

It's possible, but it's probably better to use Hashes instead. You can
always convert a Hash to a Struct [1] after you're done fiddling with
it. But if you really want to merge two structs, you could do something
like this:

def struct_join(main, other)
  mems = main.members + other.members
  vals = main.values + other.values
  Struct.new(nil, *mems).new(*vals)
end

[1] http://rubyforge.org/snippet/detail.php?type=snippet&id=1

Regards,
Jordan

Thank you so much !! I spent 3 hours on this...

ยทยทยท

le 15/09/2006 12:55, MonkeeSage nous a dit:

Zouplaz wrote:

Hello, I wonder if it's possible to merge two #struct objects ?

It's possible, but it's probably better to use Hashes instead. You can
always convert a Hash to a Struct [1] after you're done fiddling with
it. But if you really want to merge two structs, you could do something
like this:

def struct_join(main, other)
  mems = main.members + other.members
  vals = main.values + other.values
  Struct.new(nil, *mems).new(*vals)
end

[1] http://rubyforge.org/snippet/detail.php?type=snippet&id=1

Regards,
Jordan

MonkeeSage wrote:

def struct_join(main, other)
  mems = main.members + other.members
  vals = main.values + other.values
  Struct.new(nil, *mems).new(*vals)
end

I like your variable naming style here. I'd normally write 'members'
& 'values', but yours are concise & unambiguous. :slight_smile: