2012-01-18 1 views
11
def load_lib 
    path = File.join(File.dirname(__FILE__), 'lib') 
    failures = [] 
    Dir.glob("#{path}/**/*.rb").each { |file| 
     puts "loading: #{file} ... " 
    } 
end 

스크립트가 있습니다. 개별적으로 각 줄을 넣을 때 load_lib 함수를 사용할 수 있으며 제대로 작동합니다. 나는 하나의 큰 덩어리 (우분투 터미널, 쉿 Ctrl 키 C)에 IRB에 붙여 넣을 때 그것은 Dir.glob(... 라인 밖으로 괴물이를 보여줍니다내가 스크립트에 붙여 넣을 때 irb 괴롭힘이 때때로 발생하는 이유는 무엇입니까?

Display all 931 possibilities? (y or n) 
! 
!= 
!~ 
<=> 
.... [dozens of lines in this vein] 

를 다음 방법은 전혀 만들어지지 않습니다. 그들이에 붙여 넣을 때 IRB가 좋아하지 않는 [] 또는 {}에 대해 뭔가가

>> def load_lib 
>>  path = File.join(File.dirname(__FILE__), 'lib') 
>>  failures = [] 
>> Dir.glob("#{path}/**/*.rb").each { |file| 
?> puts file 
>> } 
>> end 
=> nil 
>> load_lib 
./lib/alpha_processor.rb 
./lib/development_mail_interceptor.rb 
./lib/service_processors/beta_processor.rb 

있습니까 : 나는 한 번에 하나 개의 라인에 붙여 넣을 때

여기 (성공) 무슨 일입니까?

+0

irb가 당신을 실수로 만들 수있는 또 다른 방법 http://stackoverflow.com/questions/39269032/why-rails-can-use-if-as-hash-key-but-not-in-ruby/ 39271791 # 39271791 – lulalala

답변

25

원본 파일에 TAB 문자가 있기 때문입니다. 들여 쓰기를하십시오. :-)

+2

보다 정확하게, 탭 문자는 irb의 자동 완성을 트리거합니다. 코드에 붙여 넣을 때 분명히 원하지 않는 것은 무엇입니까? Ruby 커뮤니티는 지금까지 2 개의 공간 들여 쓰기에 대해 거의 표준화되어 있으므로 사용하십시오. –

+0

@AlexWayne : 명확히 해 주셔서 감사합니다. 나 혼자 했어야 했어. –

+0

탭은'irb'에서 자동 완성을 위해 사용되기 때문에 때로는 잘라 붙이기가 이것을 유발합니다. 나는 그것을 끌 수있는 옵션이 있다고 생각하지만 나는 그것을 켜는 방법에 대한 참조만을 찾을 수있다. – tadman