instance method
Data#deconstruct
() -> ::Array[untyped]
deconstruct → array
struct.c
View on GitHub ↗
#define rb_data_deconstruct rb_struct_to_a
Returns the values in self as an array, to use in pattern matching:
Example
Measure = Data.define(:amount, :unit) distance = Measure[10, 'km'] distance.deconstruct #=> [10, "km"] # usage case distance in n, 'km' # calls #deconstruct underneath puts "It is #{n} kilometers away" else puts "Don't know how to handle it" end # prints "It is 10 kilometers away"
Or, with checking the class, too:
Example
case distance in Measure(n, 'km') puts "It is #{n} kilometers away" # ... end