所以,這是我到目前爲止有:你如何定義一個帶「。」的方法擴展了先前存在的屬性的功能?
# @return [Array<Hash>] of variables ([Placeholders, actual variables])
def variables
# @return [Hash] of all variables.
# If actual variables are named teh same as the placeholders, the placeholders will be over written.
# This implementation of merging hashes of an array will work even if we add more elements to the
# variables array.
self.class.send(:define_method, "variables.flatten") do
return self.variables.inject{|placeholders, vars| placeholders.merge(vars || {})}
end
return [placeholder_variables, self.variable_data]
end
我希望能夠做到:
my_object.variables # => return the Array<Hash>
而且還能夠做到
my_object.variables.flatten # => return a single merged hash
的問題時,我只是做
def variables.flatten
是,當我運行控制檯,我得到一個錯誤信息說variables
沒有定義(或只是不管我.flatten
前放)
是有辦法,我只能定義在variables
屬性我的自定義.flatten
方法? (正常<Array>.flatten
在這裏不工作,因爲我需要合併散列。)
crea是一個專門的課程。看不到另一個優雅的選項 – apneadiving