2013-07-21 3 views
0

일부 Salesforce 쿼리를 수행 할 때 Restforce 라이브러리를 사용하고 있습니다. 다음Ruby 라이브러리에 사용자 정의 메소드를 추가하려면 어떻게합니까?

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

그리고 세일즈 포스를 조회 할 수 client.query 전화 : 쿼리를 수행하려면, 나는 보통 다음을 수행합니다.

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

원숭이 패치 몇 가지 방법 - 다시 클래스를 열고 몇 가지 방법을 추가, 또는

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

TargetClass.send :include, MyPatches 
+2

일반적인 경고를하는 것이 중요합니다. 기존 방법을 강타하거나 행동을 바꾸지 마십시오. 특히 핵심 라이브러리. –

관련 문제