IRB에서 스크립트를 어떻게 다시로드 할 수 있습니까?
Rails 환경에서 사용할 Ruby 스크립트를 작성하고 있지만 Rails 콘솔을 다시로드하는 것이 고통 스러울 수 있으므로 irb에서 실행하기로 선택했습니다. 이제 irb보다 대기 시간이 훨씬 짧지 만 irb를 다시 시작해야하고 변경할 때마다 스크립트가 필요하다는 점이 귀찮습니다. irb에서 스크립트를 다시로드하는 더 간단한 방법이 있습니까?
이 스레드 에서 메서드를 찾았 지만 분명히 gem 파일에만 적용됩니다. 내 요구 사항은 다음과 같습니다.
require "#{File.expand_path(__FILE__)}/../lib/query"
편집 : load
대신 시도했지만 require
여전히 작동하지 못했습니다. 이 오류를 멈출 수 없습니다.
ruby-1.9.2-p0 > load "#{File.expand_path(__FILE__)}/../lib/query.rb"
LoadError: no such file to load -- /Users/newuser/Dropbox/Sites/rails/hacknyc/(irb)/../lib/query.rb
irb에서는 File.expand_path(__FILE__)}
을 반환 "#{path you ran irb from}/(irb)"
합니다. 실제로 존재하지 않는 경로를 만듭니다. 다행히 모든 파일 경로는 어쨌든 irb를 실행 한 위치에 상대적입니다. 즉, 필요한 것은 다음과 같습니다.
load "lib/query.rb"
__FILE__
실제 파일에서 를 사용하려면 괜찮지 만 irb에서 유효한 경로를 생성 할 것으로 기대하지 마십시오. irb에는 "파일"이 전혀 없기 때문에 유효한 경로를 전혀 반환 할 수 없습니다.
또한 __FILE__
load 또는 require를 통해 irb에로드 된 파일에서 사용하면 제대로 작동합니다. 그게 목적 이니까요.
을 사용하는 대신 require
시도해보십시오 load
. 전자는 소스 파일을 한 번만로드하고 후자는 호출 할 때마다로드합니다.
이 링크 에 따라 파일을로드해야하며 확장자를 잊지 마십시오.
이 링크 번호 2 에서도 사용할 수있는 멋진 버전 이 있습니다.
Rails 콘솔이 작동하지 않는 이유를 해시하는 것이 좋습니다.
나는 load
당신이 찾고있는 것이라고 생각 합니다.
참고 URL : https://stackoverflow.com/questions/4632090/how-can-i-reload-a-script-in-irb
'Nice programing' 카테고리의 다른 글
ConfigurationManager를 사용하여 System.ServiceModel 구성 섹션로드 (0) | 2020.12.03 |
---|---|
LINQ를 사용하여 목록에서 제공된 인덱스 범위 내의 값을 선택하는 방법 (0) | 2020.12.03 |
캘린더에 항목을 추가하기위한 링크를 생성하려면 어떻게합니까? (0) | 2020.12.03 |
Google지도에서 div를 플로팅하는 방법은 무엇입니까? (0) | 2020.12.03 |
속성이있는 경우에만 유효성 검사 (사용자가 입력 한 경우에만) (0) | 2020.12.03 |