Establezca los argumentos de la palabra clave ruby ​​2.0 con attr_accessor al inicializar

¿Cómo puedo configurar dinámicamente sin tener que escribir el mismo código por todas partes?

En este momento el código se ve así:

def initialize(keywords: keywords, title: title, url: url, adsetting: adsetting)
  self.keywords = keywords
  self.title = title
  self.url = url
  self.adsetting = adsetting
end

Si la lista se alarga, rápidamente se va de las manos.

Con ruby ​​1.9 acababa de pasarle un hash al método. Me gusta esto:

def initialize(args)
  args.each do |k,v|
    instance_variable_set("@#{k}", v) unless v.nil?
  end
end

Pero prefiero usar los argumentos de palabras clave de Ruby 2.0. ¿Se puede lograr algo similar?

def initialize(keywords: keywords, title: title, url: url, adsetting: adsetting)
  args.each do |k,v|
    instance_variable_set("@#{k}", v) unless v.nil?
  end
end

Respuestas a la pregunta(2)

Su respuesta a la pregunta