【问题标题】:automatically load project's environment to irb自动加载项目环境到irb
【发布时间】:2023-03-27 20:12:01
【问题描述】:

Rails 有一个有用的命令rails console,它会下载所有必要的数据,然后我们可以与irb 中的rails 项目进行交互。 Ruby 项目(基于 Ruby 语言构建)是否有相同的技术?通过这个技巧,我可以在irb 中使用 Ruby 项目,而无需考虑加载库、模块、类、文件等。 谢谢

【问题讨论】:

    标签: ruby-on-rails 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 中。

      【讨论】:

      • 请说明该函数在项目中的什么位置以及如何调用它。
      • 这取决于您的项目的组织方式。我有一个文件,其中包含一个命令行实用程序,它可以执行生成器、服务器、运行代码等操作。但是如果你放入一个文件 console.rb 并在最后简单地添加 console 那么它应该在你运行它时工作使用ruby console.rb 它应该可以工作。您必须对其进行自定义以满足您的需求,我已尝试指出在哪里。
      【解决方案3】:

      就我而言,我的初始化脚本位于当前工作目录中。以下对我有用。

      irb -r ./setup.rb
      

      【讨论】:

        猜你喜欢
        • 2012-12-06
        • 1970-01-01
        • 2019-01-17
        • 2017-07-04
        • 2013-06-19
        • 1970-01-01
        • 2023-03-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多