2013-07-21 33 views
0

我正在使用Restforce庫來執行一些Salesforce查詢。要做到查詢,我通常會做到以下幾點:如何將自定義方法添加到Ruby庫?

client = Restforce.new :username => 'user', :password => 'pass', :security_token => 'token', :client_id => 'client_id', :client_secret => 'client_secret' 

然後調用client.query查詢Salesforce的。

我想創建一個名爲query_with_alises的自定義方法,以便我可以撥打client.query_with_aliases來執行一些自定義功能。

如何在不編輯庫本身的源代碼的情況下執行此操作?

+0

打開課程並添加一個新方法? – jozefg

回答

1

您只需再次打開類並添加任何你想要的方法。

儘管確切的含義是辯論的問題,這叫做猴子修補。有些人認爲猴子補丁只是覆蓋/重新定義現有的方法(可能有點危險),其他方面則考慮任何類型的開放現有類並添加任何東西,即使它們是新方法。從Restforce像

在特定情況下,你可以猴子補丁客戶端類:

class Restforce::Data::Client 
    def query_with_aliases 

    # PUT YOUR CODE HERE 

    end  
end 

Client其他每個方法都將保持現有的和運作,你只會增加的query_with_aliases

1

猴補丁一些方法 - 在Ruby中,你可以再次打開類並添加一些方法, 或使用一些技術像

 
module MyPatches 
    def query_with_aliases 
    # code here... 
    end 
end 

TargetClass.send :include, MyPatches 
+2

重要的是給出通常的警告:不要跺腳現有的方法或改變他們的行爲,尤其是核心庫。 –

相關問題