有没有人知道如何从终端运行一个ruby文件,该文件需要N个文件/ gems,并完成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 >
VS
$ 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 console'为了在构建它时调试/玩我的红宝石。
我也读到某个地方,我可以使用.irbc
,但这听起来好像我会在我的机器上全局更改IRB - 而且我不希望这样。我想为每个ruby项目加载特定的文件,gem和配置。
对于它的价值,我已阅读这些SO帖子:
然而,他们似乎没有提供上述问题的答案。
答案 0 :(得分:4)
非常简单,实际上:
#!/usr/bin/env ruby
require "bundler/setup"
# ...
# everything else you need
# ...
require "irb"
IRB.start
当您使用IRB.start
启动IRB时,您将拥有在它之前加载/初始化的所有内容。