I'm trying to understand the following Ruby code.
It looks like attrs is a hash that gets passed as an argument with a default value of an empty hash.
Then attrs.each iterates over the key, value pairs in the hash (|k,v|).
What effect is achieved by calling self.send on the elements of the key value pair during this iteration?
def initialize(attrs = {}, *args)
super(*args)
attrs.each do |k,v|
self.send "#{k}=", v
end
end