Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save guizmaii/0eafea869a268122dc3000a53cd25039 to your computer and use it in GitHub Desktop.
Save guizmaii/0eafea869a268122dc3000a53cd25039 to your computer and use it in GitHub Desktop.
Ruby will destructure objects that are not arrays, but respond to #to_ary
S=Struct.new(:a,:b)
ss = [S.new(1,2), S.new(3,4)]
p ss.map{|a,b| "#{a} #{b}" }
# => ["#<struct S a=1, b=2> ", "#<struct S a=3, b=4> "]
class S ; def to_ary ; to_a ; end ; end
p ss.map{|a,b| "#{a} #{b}" }
# => ["1 2", "3 4"]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment