irb를 실행한 다음 일부 Ruby 코드를 실행하는 bash 스크립트를 어떻게 생성합니까?

irb를 실행한 다음 일부 Ruby 코드를 실행하는 bash 스크립트를 어떻게 생성합니까?

단위 테스트를 쉽게 하기 위해 이렇게 하려고 합니다.

관련 샘플 스크립트의 내용은 다음과 같습니다.

irb
require 'random_utils.rb'
a = SuccessChecker.new

이제 IRB가 열립니다. 나중에 임의의 코드를 실행하여 파일이 필요한 스크립트를 만들고, 클래스를 인스턴스화하고, 테스트 조건을 채우는 등의 작업을 통해 내 삶을 더 쉽게 만들고 싶습니다.

답변1

명령을 순차적으로 실행하므로 쉘이 실행되고 닫힐 irb때까지 기다린 후 irb다음 명령을 실행합니다(귀하의 경우 require 'random_utils.rb')...

irb당신이 원하는 것은 다음을 통해 스크립트를 공급하는 것입니다.STDIN

irb <<EOF
require 'random_utils.rb'
a = SuccessChecker.new
EOF

그러나 이는 원하는 대화형 사용을 달성하지 못할 수 있으므로 irb일반적인 Ruby 인터프리터 사용을 고려해야 합니다. 예를 들면 다음과 같습니다.

ruby <<EOF
require 'random_utils.rb'
a = SuccessChecker.new
EOF

답변2

다음 단계로 나아가 단위 테스트 라이브러리를 사용할 준비가 된 것 같습니다.

소개는 다음과 같습니다도착하다작은 테스트, Ruby 1.9에 내장되어 있습니다.

답변3

이에 대한 현대적인 해결책은 pry보석을 사용하여 평범한 오래된 루비 스크립트로 만드는 것입니다.

#!/usr/bin/env ruby

require 'pry'
require 'random_utils.rb'
a = SuccessChecker.new
binding.pry

.pry를 바인딩할 때마다 디버거에 덤프됩니다...

관련 정보