How to cleanly initialize attributes in Ruby with new?
You can just iterate over the keys and invoke the setters. I prefer this, because it will catch if you pass an invalid key. class Foo attr_accessor :name, :age, :email, :gender, :height def initialize params = {} params.each { |key, value| send “#{key}=”, value } end end foo = Foo.new name: ‘Josh’, age: 456 foo.name … Read more