2008-09-27 2 views
6

IRB를 정상적인 루비 개발과 통합하는 더 좋은 방법을 찾고 있습니다. 현재 나는 거의 내 코드와 IRB를 사용하지 않습니다. 구문을 확인하거나 작은 것을 시도하기 위해서만 사용합니다.대화 형 루비를 개발 프로세스에 통합하는 방법은 무엇입니까?

나는 내가

require 'mycode' 

로 루비에 내 자신의 코드를로드 할 수 있습니다 알고 있지만, 이것은 일반적으로 내 프로그래밍 스타일과 메쉬하지 않습니다. 때로는 검사 할 변수가 범위를 벗어나 루프 내부에있는 경우가 있습니다. IRB 내부의 특정 지점에서 내 스크립트를 실행하고 멈출 수있는 쉬운 방법이 있습니까? 나는 내 F5 (컴파일) 키를 깨지 않고 내 루비 코드를 디버그하는 더 쉬운 방법을 찾고 있다고 생각한다.

더 많은 경험이있는 루비 개발자가 나에게보다 간소화 된 개발 방법을 공유 할 수도 있습니다.

+0

테스트 우선 테스트를 개발하십시오 (RSpec 및 오이가 바람직 함). 그러면 IRB는 전혀 필요하지 않습니다. 그래, 다른 사람들이 이미 말했듯이, 디버거 중단 점은 갈 길입니다. –

답변

10

루비 디버그 젬을 설치하십시오. 물론, 응용 프로그램 내부에 필요합니다 (개발/테스트 모드에서만). 이제 실행을 멈추고 자하는 곳에 'debugger'라고 쓸 수 있습니다.

앱이 중단 점에서 중지되면 'help'를 입력하여 모든 명령을 알 수 있습니다. 그들 중 하나는 'irb'입니다. 현재 컨텍스트의 모든 메서드에 액세스 할 수있는 IRB 세션을 시작합니다.

개인적으로는 주로 p (인쇄), 평가, v i (인스턴스 vars) 및 v l (로컬 vars)을 사용합니다. 물론 다음에 n, 계속하기 위해 c.

주어진 블록/메소드에서 빠져 나오라는 명령은 절대로 효과가 없었습니다. 나는 왜 조사하지 않았는가 :-)

+0

"require 'ruby-debug'; debugger"를 삽입하는 textmate/e 스 니펫이 있습니다. 하루에 약 10 번 사용합니다.그것은 굉장하다 :-) –

+0

오우, 나는 그것을 조사해야 할 것이다! 감사 :-) – webmat

0

저는 루비 또는 RoR 코드를 디버깅하기 위해 rdebug를 사용합니다.

2

레일에 들어가서 스크립트/콘솔을 사용하는 경향이 있으므로 자주 irb를 자주 사용하지는 않지만 루비 디버거 (Ruby Debug gem)를 사용하는 것이 좋습니다. 기본적으로 중단 점을 설정 한 다음 코드를 한 행씩 단계별로 실행할 수 있습니다. 여기

는 실제로 시청하지 않은 그것에 대해 스크린 캐스트,하지만 빠른 검색을 뽑아, 그리고 유용 할 수있다 :

http://brian.maybeyoureinsane.net/blog/2007/05/07/ruby-debug-basics-screencast/

0

당신을위한 IDE를 사용하고자하는 경우 디버깅, 나는 (Ruby Development Tools을 통해) Eclipse이 비교적 간단한 인터페이스를 가지고 있음을 알고 있습니다. 레일을 쓰고 있다면 RadRails이라고하는 특정 빌드가 있습니다. (디버깅에 사용하지는 않았지만)

1

Eclipse에서의 Ruby 개발 : 현재 사용 가능한 RDT (루비 개발 도구)의 개선 된 버전이 많이있다. Eclipse에서 직접 설치하려면 도움말> 소프트웨어 업데이트> 찾기 및 설치> 새로운 기능 검색 라디오 버튼> 다음> 새 원격 사이트> 이름 = Ruby 및 URL = http://update.aptana.com/update/rdt/3.2/

다른 Ruby 플러그인은 반짝이는 새 Eclipse DLTK입니다. (동적 언어 툴킷). DLTK stable release 1.0.M5이 며칠 전에 방금 나왔습니다. 다음은 일부 useful installation tips입니다.