2015-01-01 4 views

답변

2

다른 모든 모듈에 메소드를 추가하는 것과 같은 방법입니다.

당신은 당신이 Enumerable을 모듈에 방법 histogram를 추가 할 경우, 그래서

module Foo 
    def bar(baz, quux) 
    # code code code 
    end 
end 

쓰기는

module Enumerable 
    # Counts the number of occurrences of each unique object in `self`. 
    # 
    # @return [Hash<E, Integer>] a `Hash` of objects mapped to number of occurrences in `self`. 
    def histogram 
    group_by(&:itself).map {|k, v| [k, v.size] }.to_hash 
    end 
end 
+0

르그 데 도움이

4.double => 8 

희망 번호에 이중 메서드를 호출 할 수 있습니다,하지만 난 여전히를 얻을 수 오류 "NoMethodError : 정의되지 않은 메소드'my_each '" "그래서 내가 뭘 잘못하고 있니? Tnx Tom –

3

에서 쓰기 Foo 모듈에 매개 변수 bazquux와 방법 bar를 추가하려면 Ruby는 이라는 개념을 통합 한 monkey-patching을 사용할 수 있습니다. 즉, Ruby의 클래스는 언제든지 수정할 수 있습니다. 예를 들어, 숫자 클래스에 double 메소드를 작성할 수 있습니다.

class Integer < Numeric 
    def self.double 
    self * 2 
    end 
end 

지금 당신은 내가 당신이 쓴 것처럼 열거 가능한 모듈의 방법을 입력,이

+0

네,하지만 그 코드를 어디서 써야하나요? Tnx Tom –

+0

원하는 곳 어디에서라도 –

+0

시도 할 때 irb를 통해 실행하려면 "NoMethodError : u 정의 된 메소드'my_each ' ". 나는 무엇인가를 요구하거나 볼 곳을 말해야합니까? Tnx Tom –

관련 문제