2011-03-24 36 views
11

Rails有用的命令rails console,它下载所有必需的数据,然后我们可以与irb中的rails项目进行交互。 Ruby项目(基于Ruby语言)有相同的技巧吗?通过这个技巧,我可以在irb中使用Ruby项目,而不必关心加载库,模块,类,文件等。 感谢自动将项目环境加载到irb

回答

14

您的项目应该有一个加载环境的文件。假设你的项目是在lib/project.rb然后只是:

$ irb -Ilib -rproject 
1

从我的项目之一:

# 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命令autorequire所有你需要的代码。我还需要设置一些配置,因此我添加了写入文件的magick,然后我需要在IRb中。

+0

请解释将此功能放在项目中的位置以及如何调用它。 – megas 2011-03-24 20:46:38

+0

这种取决于你的项目是如何组织的。我有一个文件,其中包含一个命令行实用工具,用于执行诸如生成器,服务器,运行代码等的功能。但是,如果您输入文件“console.rb”并最终添加“console”,那么当您运行它''ruby console.rb'它应该工作。你必须定制它来满足你的需求,我试图指出在哪里。 – 2011-03-24 20:52:48

0

在我的情况我的初始化脚本是在当前的工作目录。下面的工作对我来说。

irb -r ./setup.rb 
相关问题