Автоматически загружать среду проекта в irb

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

Ответ 1

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

$ irb -Ilib -rproject

Ответ 2

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

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

Ответ 3

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

irb -r ./setup.rb