Ustaw argumenty słowa kluczowego ruby 2.0 za pomocą attr_accessor na initialize
Jak mogę dynamicznie ustawić bez konieczności pisania tego samego kodu.
W tej chwili kod wygląda tak:
def initialize(keywords: keywords, title: title, url: url, adsetting: adsetting)
self.keywords = keywords
self.title = title
self.url = url
self.adsetting = adsetting
end
Jeśli lista staje się dłuższa, szybko wymyka się spod kontroli.
Z ruby 1.9 po prostu przekazałem hash do metody. Lubię to:
def initialize(args)
args.each do |k,v|
instance_variable_set("@#{k}", v) unless v.nil?
end
end
Ale raczej używam argumentów słów kluczowych Ruby 2.0. Czy można osiągnąć coś podobnego?
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