【问题标题】:How to create custom IRB file to load a Ruby project's files, gems and dependencies?如何创建自定义 IRB 文件来加载 Ruby 项目的文件、gem 和依赖项?
【发布时间】: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 帖子:

但是他们似乎都没有回答我上面的问题。

【问题讨论】:

    标签: ruby irb


    【解决方案1】:

    其实很简单:

    #!/usr/bin/env ruby
    require "bundler/setup"
    # ...
    # everything else you need
    # ...
    require "irb"
    IRB.start
    

    当您使用 IRB.start 启动 IRB 时,您将获得之前已加载/初始化的所有内容。

    【讨论】:

    • 非常感谢您的回答。当 SO 允许我时,我会检查它是否正确。 @Amadan 你有 github 句柄或网站吗?
    • 不,我没什么名气,没有什么值得注意的:)
    猜你喜欢
    • 2010-09-13
    • 1970-01-01
    • 2020-05-20
    • 1970-01-01
    • 1970-01-01
    • 2021-10-30
    • 1970-01-01
    • 2012-07-01
    • 1970-01-01
    相关资源
    最近更新 更多