Ruby Data class to replace Struct
Ruby has a new-ish class to build "immutable" structs, check this out:
Measure = Data.define(:amount, :unit)
distance = Measure.new(100, 'km')
distance.amount
#=> 100
distance.unit
#=> "km"
And if you try to use a setter, then it will fail:
distance.amount = 101
(irb):7:in `<main>': undefined method `amount=' for an instance of Measure (NoMethodError)
Tweet