автоматически загружать среду проекта в IRB - PullRequest
13 голосов
/ 24 марта 2011

Rails имеет полезную команду rails console, которая загружает все необходимые данные, а затем мы можем взаимодействовать с проектом rails в irb. Есть ли такая же техника для проекта Ruby (построенного на языке Ruby)? С помощью этого трюка я могу играть с проектом Ruby в irb, не заботясь о загрузке библиотек, модулей, классов, файлов и так далее. Спасибо

Ответы [ 3 ]

17 голосов
/ 25 марта 2011

Ваш проект должен иметь один файл, который загружает среду. Предполагая, что ваш проект находится в lib / project.rb, просто:

$ irb -Ilib -rproject
1 голос
/ 24 марта 2011

Из одного из моих проектов:

# Creates an IRB console useful for debugging experiments
# Loads up the environment for the condition passed
def console
  File.open("./tmp/irb-setup.rb", 'w') do |f|
    f.puts "# Initializes the environment for IRb."
    f.puts "Code to initialize your project here"
    f.puts "$: << '#{File.expand_path(".")}/'"  #handle load path       
  end
  irb = RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? 'irb.bat' : 'irb'
  # require your code
  libs =  " -r irb/completion"
  libs <<  " -r #{File.dirname(__FILE__) + "/base"}"
  libs << " -r ./tmp/irb-setup.rb" # require the config file you just wrote
  puts "Loading #{@options.env} environment..."
  exec "#{irb} #{libs} --simple-prompt"
end

Хитрость в том, что вы создаете команду irb для автоматического запроса всего кода, который вам нужен. Мне также нужно было настроить некоторые параметры, поэтому я добавляю магию написания файла, который мне требуется в IRb.

0 голосов
/ 11 декабря 2013

В моем случае мой скрипт инициализации находился в текущем рабочем каталоге. Ниже работал для меня.

irb -r ./setup.rb
...