2012-05-14 4 views
0

의 조각을 이해하려고 노력 :레일 - 내가 온라인으로 발견 된 일부 코드를 함께 일하고 코드

def person_path(options) 
    # This is where the path of the query is constructed. 

    path = "/people/"  # For this section of the LinkedIn API 
    if id = options.delete(:id) 
    path += "id=#{id}" 
    elsif url = options.delete(:url) 
    path += "url=#{CGI.escape(url)}" 
    else 
    path += "~" 
    end 
end 

나는 그것이 무엇을 완전히 확실하지입니다. 그것이 무엇을 달성 나는이 기능을 전달하고 정확히 어떻게해야하는지에 https://developer.linkedin.com/documents/profile-api

어떤 생각 : http://api.linkedin.com/v1/people/~:(current-status) 내가 여기 링크드 인 개발자 문서에서 가져온 : 내가 뭘하려고하면이 같은 문자열 뭔가를 구성해야입니다 ?

감사합니다.

+0

아, 재미있는 문서가없는 경우 동적 언어가 재미 있지 않습니까? –

+0

LOL은 그다지 재미 있지 않지만 개선 될 것이라고 상상합니다 ... 나는 루비와 함께하는 초보자입니다. – Awesomeness

답변

3

'옵션'이 무엇인지 명시되지는 않았지만 옵션에 키 - 값 쌍의 해시로 옵션을 전달하는 것이 매우 일반적입니다. 루비, 그래서 옵션은 99 %의 확실성을 가지고 있다고 말할 수 있습니다. 이것은 나머지 코드를 이해하는 데 핵심적인 부분입니다.

반환 된 객체의 "진실성"을 이용하면서 키 - 값 쌍을 꺼내 한 번에 값을 할당하기 위해 해시의 #delete 메소드가 사용되고 있다고 생각합니다.

http://www.ruby-doc.org/core-1.9.3/Hash.html#method-i-delete

그리고 "truthiness"에 의해

, 나는 루비에서 모든 개체는 '전무'를 제외하고 'true'와 'false'로 평가 것을 의미한다.

나머지는 다른 언어에서도 볼 수있는 if-else 제어 흐름 논리이므로 간단한 설명입니다.

1

옵션에서 id 또는 url을 찾으면 "/ people/id = foo"또는 "/ people/url = foo_with _ % _ escapes"형식의 경로가 생성됩니다. 부작용으로 발견 된 옵션을 옵션에서 삭제합니다. 둘 중 하나를 찾지 못하면 "/ people/~"이 표시됩니다.

관련 문제