2014-07-26 57 views
1

我試圖瞭解如何以及如何使用data_for方法的可選參數(additional = {}) cheezy/data-magic寶石:Data_magic類的方法data_for的可選參數(附加)的目的和用法

def data_for(key, additional={}) 
    if key.is_a?(String) && key.match(%r{/}) 
     filename, record = key.split('/') 
     DataMagic.load("#{filename}.yml") 
    else 
     record = key.to_s 
     DataMagic.load(the_file) unless DataMagic.yml 
    end 
    data = DataMagic.yml[record] 
    raise ArgumentError, "Undefined key #{key}" unless data 
    prep_data data.merge(additional).clone 
    end 

請問有人可以給我解釋一下嗎? 謝謝。

回答

1

additionalHash#merge一起使用以覆蓋相同鍵的值。

隨着空散列,Hash#merge什麼都不做;如果您沒有爲additional參數指定任何內容,則data_for方法將僅使用文件中的配置。


data = {min: 5, max: 10} 
data.merge({}) # empty 
# => {:min=>5, :max=>10} 
data.merge({max: 15}) # non-empty 
# => {:min=>5, :max=>15} 
+0

感謝您的快速答覆。 – Archpoet