Как я могу динамически установить без необходимости писать один и тот же код.
В настоящий момент код выглядит следующим образом:
def initialize(keywords: keywords, title: title, url: url, adsetting: adsetting)
self.keywords = keywords
self.title = title
self.url = url
self.adsetting = adsetting
end
Если список становится длиннее, это быстро выходит из-под контроля.
С ruby 1.9 я просто передаю хэш методу. Вот так:
def initialize(args)
args.each do |k,v|
instance_variable_set("@#{k}", v) unless v.nil?
end
end
Но я предпочитаю использовать аргументы ключевого слова Ruby 2.0. Может ли что-то подобное быть достигнуто?
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