2013-04-16 5 views
1

답변을 찾는 것이 놀랍지 않게 어려운 질문이었습니다.[무엇?]가있는 Ruby의 irb는 IDLE이있는 Python 쉘과 동일합니까? (해당되는 경우 Windows에서)

Ruby console alternative for IRB (Windows)

IDLE like interactive console for Ruby

A recommended Ruby interactive console

:

는 (A 몇 가지 질문과 같은 적어도 비슷한 묻는 것 같다 10 하지만 그 중 하나에서 필요한 것을 얻을 수 없었습니다.)

정확한 용어가 확실하지 않으므로 여기서 구체적으로 설명하려고합니다.

IDLE을 파이썬 셸과 함께 사용한다고 가정 해 보겠습니다.

IDLE의 텍스트 편집기 창 중 하나에 "example.py"스크립트가 열려 있습니다.

F5를 누르고 파이썬 셸이 나타나서 "example.py"의 모든 줄을 셸 행 단위로 입력했다면 정확히 수행 할 작업을 수행합니다.

기능적으로, 정확히 말하면 화면을 어지럽히 지 않고 모든 행을 자동으로 입력하는 것입니다. (또한이 작업을 수행 할 때마다 쉘을 새로운 상태로 재설정하지만 실제로는 현재 중요한 포인트가 아닙니다. 때때로 옵션이있는 것이 좋을 수도 있습니다 쉘의 상태를 재설정하고, 뭐든간에.)

그래서 이제 쉘에서 놀 수 있고 방금 실행 한 스크립트에 있던 모든 함수와 변수 등이 모두 있습니다.

하지만 ...

동일한 효과를 얻으려면 어떻게해야합니까?

예를 들어, Windows 콘솔에서 irb example.rb (이에 해당하는 루비 스크립트)을 시도했는데 문자 그대로 각 줄을 irb에 하나씩 입력하고 화면 아래로 분출 한 다음 Windows 명령으로 자동 종료합니다. 신속한.

비록 일을 했더라도 (내가 원하는 것을 더 많이 만들 수있는 몇 가지 옵션이 있습니다!), 여전히 텍스트에서 alt-tab을 사용해야합니다. -editor를 콘솔 창에 입력하고 F5, obvs를 누르는 것보다 열등한 명령과 파일 이름을 입력하십시오.)

을 실제로으로 만들려면 여기에 구체적인 예가 있습니다. of :

1) 예를 들어 파이썬 스크립트.평 " 2) 다음 쉘에서 어떤 일을하는 쉘에서 실행의 예() 실제 쉘에서 복사 - 붙여 넣기

3) 그 파이썬 하나 4) 실행의 예에 해당하는 루비 스크립트 그것은 repl.it의 미봉책, 느린 온라인 통역, 및 그 IRB 쉘에서 똑같은 일을 (다시는 복사 - 붙여 넣기)

1) example.py :

x = "some value you don't want to keep reassigning to this variable" 
y = "some other value like that" 

def some_function(var): 
    return "do something complicated with `"+var+"`" 


print("example.py just ran") 

2) 파이썬 쉘을 :

Python 3.2.3 (default, Apr 11 2012, 07:15:24) [MSC v.1500 32 bit (Intel)] on win32 
Type "copyright", "credits" or "license()" for more information. 
>>> ================================ RESTART ================================ 
>>> 
example.py just ran 
>>> x 
"some value you don't want to keep reassigning to this variable" 
>>> y 
'some other value like that' 
>>> print(some_function(x)) 
do something complicated with `some value you don't want to keep reassigning to this variable` 
>>> x = "a frog" 
>>> print(some_function(x)) 
do something complicated with `a frog` 
>>> print("gonna run example.py again") 
gonna run example.py again 
>>> ================================ RESTART ================================ 
>>> 
example.py just ran 
>>> print("x is back to: `\""+x+"\"`") 
x is back to: `"some value you don't want to keep reassigning to this variable"` 

3) example.rb :

x = "some value you don't want to keep reassigning to this variable" 
y = "some other value like that" 

def some_function var 
     "do something complicated with `#{var}`" 
end 

puts "test.rb just ran" 

4) 온라인 루비 IRB 쉘 것은 repl.it에서 :

Ruby 1.8.7 (2008-05-31 patchlevel 0) [x86-linux] 
[GCC 4.2.1 (LLVM, Emscripten 1.5, Emscripted-Ruby)] 

test.rb just ran 
=> nil 
    x 
=> "some value you don't want to keep reassigning to this variable" 
    y 
=> "some other value like that" 
    puts some_function x 
do something complicated with `some value you don't want to keep reassigning to this variable` 
=> nil 
    x = "a frog" 
=> "a frog" 
    puts some_function x 
do something complicated with `a frog` 
=> nil 
    puts "gonna run this script again..." 
gonna run this script again... 
=> nil 

test.rb just ran 
=> nil 
    puts "x is back to: `\"#{x}\"`" 
x is back to: `"some value you don't want to keep reassigning to this variable"` 
=> nil 
+1

먼저 질문을 정리해야합니다. 너무 길다. 둘째 : 코드를 편집하고 프로젝트 파일을 관리하며 하나의 프로그램에서 모두 실행/디버깅 할 수있는 Ruby IDE (통합 개발 환경)를 찾고 있습니까? – iamnotmaynard

+0

그래, 어떻게 든 끝내서 정말 길게 끝났어 ... 나는 "athe"기능을하기에는 너무 지쳤다. 그래서 나는 나중에 그것을 다듬을 것이다. 내가 원하는 것은 정확하게 내가 말한 것입니다 : 1) 2)와 2) 3) 모두에 공통적 인 것. 1) Python 스크립트 예. 2) IDLE과 Python 셸을 사용하여 [예제]와 같은 작업을 수행 할 수 있습니다. -----> 3) 동등한 예제 Ruby 스크립트 4) Ruby 및 repl.it 인터프리터 온라인에서 [동등한 예]와 같은 작업을 수행 할 수 있습니다. 그래서 나는 기본적으로 그 repl.it 것, 온라인 ...과 천천히 그리고 스파이 텍스트 에디터와 같이 정확하게 작동하는 것을 원한다. –

답변

1

내가 지금까지 찾은 가장 좋은 대답이 될 것으로 보인다는 설치 pry (명령 프롬프트에 gem install pry 입력).

이제 pry scriptname.rb을 입력하여 스크립트를 실행하고 예외가 발생하면 자동으로 대화 형으로 이동합니다.

더욱이 require 'pry'을 스크립트 상단에 추가하면 binding.pry을 스크립트의 ay 지점에 넣을 수 있습니다.

이제 스크립트를 실행하면 (명령 프롬프트에 scriptname.rb 입력) 실행이 중지되고 해당 지점에서 대화 형으로 이동합니다.

^D (즉, ctrl-d)를 누르면 실행이 재개됩니다.

편집기 (예 : Notepad ++)에서 F5 키를 누를 때 명령 프롬프트 창에서 스크립트를 실행하는 것이 다소 까다 롭습니다. Solutions like this 몇 가지 문제가 있습니다. 아직 해결 방법을 찾지 못했습니다.

그래서 현재 난 그냥 알트 탭 이동 제가 스크립트에 binding.pry을 넣어 명령 프롬프트 창을하고, pry scriptname.rb하거나 scriptname.rb를 입력 내가 원하는 정확히 무엇을하고 있는지 따라가, 다시에서가 (스크립트를 실행 해요 어디에서든지 위로 화살표 리콜, 탭 완성, ㅋㅋㅋ)

나는 working on figuring it out입니다.