почему irb сходит с ума иногда, когда я вставляю в скрипт? - PullRequest
12 голосов
/ 18 января 2012
def load_lib
    path = File.join(File.dirname(__FILE__), 'lib')
    failures = []
    Dir.glob("#{path}/**/*.rb").each {  |file|
        puts "loading: #{file} ... "
    }
end 

Там есть сценарий. Когда я добавляю каждую строку отдельно, функция load_lib доступна и работает нормально. Но когда я вставляю его в irb одним большим фрагментом (терминал Ubuntu, Sh Ctrl C), он выходит из строя в строке Dir.glob(... и показывает это:

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

и тогда метод вообще не создается.

Вот что происходит (успех), когда я вставляю его по одной строке за раз:

>>  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

Есть ли что-то в [] или {}, которое irb не любит, когда они вставляются?

1 Ответ

27 голосов
/ 19 января 2012

Это из-за символов TAB, которые есть в вашем исходном файле.Отступ с пробелами.: -)

...