【发布时间】:2018-10-22 20:27:02
【问题描述】:
有谁知道如何从需要 N 个文件/gem 的终端运行 ruby 文件,并在这些文件已加载到内存中的情况下完成 IRB 会话?
换句话说,我希望是这样的:
$ ruby project_console.rb
# project_console.rb
IRB.new do |config|
require 'bundler/setup'
require 'import_project_file'
require_relative "spec/muffin_blog/app/models/random_file"
Post.establish_connection({database: "spec/muffin_blog/db/development.sqlite3"})
end
# yay. I'm in my custom IRB session with all of the above already loaded
2.4.1 :001 >
对
$ irb
2.4.1 :001 > require 'bundler/setup'
=> true
2.4.1 :002 > require 'import_project_file'
=> true
2.4.1 :003 > require_relative "spec/muffin_blog/app/models/random_file"
=> true
2.4.1 :004 > Post.establish_connection({database: "spec/muffin_blog/db/development.sqlite3"})
# this makes me sad because its manual every time I want to play around with my project.
我正在开发一个 ruby 项目,在构建这个项目的过程中,我发现我需要像 rails console 这样的东西,它将整个项目及其捆绑程序依赖项加载到内存中,因此我不必手动执行.我认为如果我构建自己的超级东西“rails 控制台”用于在构建它时调试/玩弄我的 ruby,那会很棒。
我还在某处读到有一个.irbc 我可以使用,但这听起来我会在我的机器上全局更改 IRB - 我不希望那样。我想为每个 ruby 项目加载特定的文件、gem 和配置。
对于它的价值,我已经阅读了这些 SO 帖子:
- Can you 'require' ruby file in irb session, automatically, on every command?
- Ruby: How to load a file into interactive ruby console (IRB)?
- IRb: how to start an interactive ruby session with pre-loaded classes
但是他们似乎都没有回答我上面的问题。
【问题讨论】: