2015-01-17 4 views
0

내 응용 프로그램에 디렉토리 구조가 있습니다. 개발 목적을 위해서 (그리고 아마도 그 이상으로), 나는 현재 클래스 X을 가지고 있는데, 클래스 메서드는 pwd, cdls입니다. 현재 내가 뭐하는 거지IRB 기본 방법 확장

2.1.5 :0 > pwd 
/current_dir/ 

을 :

2.1.5 :0 > X.pwd 
/current_dir/ 

단순히 불편 내가 예를 들어, 내 응용 프로그램 이내에서 irb를 입력 할 때이 방법을 사용할 수 있도록하는 방법입니다.

단순히 기존 클래스에 무언가를 추가 할 수있는 솔루션이처럼 완벽 할 것 : 지금 정말 hirb를 발굴하지 않습니다

class X < Irb::main 
    def self.pwd 
    #stuff 
    end 
end 

하지만 hirb 또는 함께 작동하는 솔루션이있는 경우 irb, 나는 그것을 줄 것이다! 당신의 도움을 주셔서 감사합니다!

+0

https://github.com/janlelis/irbtools –

답변

2

레일즈에서 IRB를 통해 Rails 앱을 시작할 때 조건부로 콘솔에 메소드를 혼합 할 수 있습니다.

application.rb 파일의 console 구성 블록을 사용하면됩니다.

module MyApp 
    class Application < Rails::Application 

    # ... 

    console do 
     # define the methods here 
    end 

    end 
end 

귀하의 경우에는 여러 가지 가능성이 있습니다. 메소드를 라이브러리에 위임하기 만하면됩니다.

module MyApp 
    class Application < Rails::Application 
    console do 

     # delegate pwd to X 
     def pwd 
     X.pwd 
     end 

    end 
    end 
end 

또는 X가 모듈 인 경우, 당신은

module MyApp 
    class Application < Rails::Application 
    console do 
     Rails::ConsoleMethods.send :include, X 
    end 
    end 
end 
+0

즉, 끝내 포함 할 수 있습니다. 정확히 내가 알 필요가있는 것. 감사. – nufftenthousand