Rails有一个很有用的命令rails console
,它会下载所有必要的数据,然后我们可以在irb
中与Rails项目进行交互。对于基于Ruby语言构建的Ruby项目是否也有类似的技巧呢?有了这个技巧,我可以在irb
中玩转Ruby项目,而不需要考虑加载库、模块、类、文件等等。
Rails有一个很有用的命令rails console
,它会下载所有必要的数据,然后我们可以在irb
中与Rails项目进行交互。对于基于Ruby语言构建的Ruby项目是否也有类似的技巧呢?有了这个技巧,我可以在irb
中玩转Ruby项目,而不需要考虑加载库、模块、类、文件等等。
你的项目应该有一个文件来加载环境。假设你的项目在lib/project.rb中,那么只需要:
$ irb -Ilib -rproject
来自我的一个项目:
# 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中要求它。
.irbrc
文件,并在其中引入你需要的内容,很可能是项目的入口点。require "lib/project"
irb -r ./setup.rb
console.rb
的文件中添加console
,然后在结尾处简单地添加console
,那么当你用ruby console.rb
运行它时,它应该能够工作。你需要根据自己的需求进行自定义,我已经尽量指出了需要修改的部分。 - Jakub Hampl