标签: irb

将文件加载到rails控制台,可以访问此文件中定义的变量

我使用rails控制台,我经常需要预加载一些ruby代码才能使用.

#file that i want to load in rails console
#my_file.rb
a = 1
b = 2
puts a + b 
Run Code Online (Sandbox Code Playgroud)

当我使用./script/console运行我的控制台时

rails-console :001 > load 'my_file.rb' 
3
 => []
rails-console :002 > a
NameError: undefined local variable or method 'a' for #<Object:123445>
Run Code Online (Sandbox Code Playgroud)

如何在控制台中访问我的'a'和'b'变量?

ruby console ruby-on-rails irb

14
推荐指数
1
解决办法
1万
查看次数

为什么在irb中击中左箭头给我"^ [[D"?

我正在使用Ubuntu Server 10 lucid,ruby 1.9.2-p0.在irb中,左箭头显示^[[D.任何的想法?

ruby irb

14
推荐指数
2
解决办法
2985
查看次数

正则表达式"char类错误中的空范围"

我的代码中有一个正则表达式,它匹配url的模式并抛出错误:

/^(http|https):\/\/([\w-]+\.)+[\w-]+([\w- .\/?%&=]*)?$/
Run Code Online (Sandbox Code Playgroud)

错误是"char类错误中的空范围".我找到了原因,([\w- .\/?%&=]*)?部分原因.Ruby似乎认识-\w- .作为范围的运算符而不是文字-.在向破折号添加转义后,问题就解决了.

但最初的正则表达式在我的同事的机器上运行良好.我们使用相同版本的osx,rails和ruby:Ruby版本是ruby 1.9.3p194,rails是3.1.6,osx是10.7.5.在我们将代码部署到我们的Heroku服务器之后,一切都运行良好.为什么只有我的环境有关此正则表达式的错误?Ruby正则表达式解释的机制是什么?

ruby regex irb

14
推荐指数
1
解决办法
1万
查看次数

自动将项目环境加载到irb

Rails有一个有用的命令rails console,可以下载所有必要的数据,然后我们可以与rails项目进行交互irb.Ruby项目是否有相同的技术(基于Ruby语言)?通过这个技巧,我可以在irb不关心加载库,模块,类,文件等的情况下使用Ruby项目.谢谢

ruby ruby-on-rails irb

13
推荐指数
1
解决办法
5213
查看次数

如何格式化irb命令提示符

以前我使用的是Ruby 1.8,我的irb命令提示符看起来像这样:

Air ~: irb
>> a = 1
=> 1
>> b = 2
=> 2
>> a + b
=> 3
Run Code Online (Sandbox Code Playgroud)

我安装了rvm(和Ruby 1.9.2),现在我的irb命令提示符如下所示:

Air ~: irb
ruby-1.9.2-p180 :001 > a = 1
 => 1 
ruby-1.9.2-p180 :002 > b = 2
 => 2 
ruby-1.9.2-p180 :003 > a + b
 => 3 
Run Code Online (Sandbox Code Playgroud)

有没有办法ruby-1.9.2-p180 :001从命令行中删除?

ruby irb

13
推荐指数
3
解决办法
7387
查看次数

将文本粘贴到IRB非常慢.Readline问题?

当我将以下文本粘贴到在ruby-enterprise-2011.03下运行的IRB或PRY时,需要13秒.

# Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Run Code Online (Sandbox Code Playgroud)

在同一台计算机上运行irb与其他ruby安装时,粘贴速度并不慢.

  jruby-1.5.6
  jruby-1.6.3
  ruby-1.8.6-p420
  ruby-1.8.7-p352
  ruby-1.9.1-p431
  ruby-1.9.2-p290
  ruby-1.9.3-preview1
  or Mac OS X's default system install of 1.8.7-p249
Run Code Online (Sandbox Code Playgroud)

这个问题与Rails控制台在编辑文本时运行速度非常慢有关,但我没有使用rvm,编写,编辑或删除文本时没有慢; 只有粘贴很慢.@ fl00r的建议有效,但这不是永久修复.

此外,如果粘贴文本中有硬换行,则只有最后一行很慢.例如,粘贴以下文本大约需要1.5秒

# Lorem ipsum dolor sit amet, consectetur adipisicing elit, 
# sed do eiusmod tempor incididunt ut labore et dolore magna 
# aliqua. 
Run Code Online (Sandbox Code Playgroud)

我注意到REE加载了一个libreadline的副本,其他任何ruby安装都没有加载.有没有办法配置和编译REE以忽略MacPorts的libreadline文件?

require 'readline'
puts `lsof -p #{$$} | grep -i readline | awk '{print …
Run Code Online (Sandbox Code Playgroud)

ruby irb macports readline ruby-enterprise-edition

13
推荐指数
1
解决办法
2197
查看次数

如何更改 ruby​​ 3.0 的 IRB 中的默认语法着色

我很高兴使用最新的 ruby​​ 3.0;以及可以访问更新的命令行解释器,该解释器可以进行语法突出显示和着色。

然而,颜色对我来说有点难看。我怎样才能改变它们?IRB 的命令行选项允许我使用 关闭着色--nocolorize,但我无法弄清楚配置文件在哪里,可以让我更改默认值(例如,使蓝色更亮。)

ruby syntax-highlighting irb ruby-3

13
推荐指数
4
解决办法
3420
查看次数

如何在脚本/控制台中禁用记录器

在我的.irbrc文件中,我需要'logger'来让我看到在脚本/控制台中查询ActiveRecords时执行的SQL.

我的问题是,如何暂时关闭记录器,以便它不会仅针对一些ActiveRecord查询显示SQL?

console ruby-on-rails irb

12
推荐指数
1
解决办法
3984
查看次数

为什么=〜运算符有时只会产生副作用?

我注意到Ruby/Oniguruma的副作用只出现在4个看似相同的陈述中的1个中.为什么变量day定义在009,但不在003,005007

irb(main):001:0> r = /(?<day>\d\d):(?<mon>\d\d)/
=> /(?<day>\d\d):(?<mon>\d\d)/

irb(main):002:0> r =~ "24:12"
=> 0
irb(main):003:0> day
NameError: undefined local variable or method `day' 

irb(main):004:0> "24:12" =~ r
=> 0
irb(main):005:0> day
NameError: undefined local variable or method `day'


irb(main):006:0> "24:12" =~ /(?<day>\d\d):(?<mon>\d\d)/
=> 0
irb(main):007:0> day
NameError: undefined local variable or method `day'


irb(main):008:0> /(?<day>\d\d):(?<mon>\d\d)/ =~ "24:12"
=> 0
irb(main):009:0> day
=> "24"
Run Code Online (Sandbox Code Playgroud)

nb#1:在所有四种情况下,它都是相同的正则表达式和相同的字符串.

nb#2:我已经验证了MS Windows和Ubuntu Linux中的行为.

ruby regex irb pattern-matching oniguruma

12
推荐指数
1
解决办法
353
查看次数

为什么当我粘贴脚本时,irb有时会感到害怕?

def load_lib
    path = File.join(File.dirname(__FILE__), 'lib')
    failures = []
    Dir.glob("#{path}/**/*.rb").each {  |file|
        puts "loading: #{file} ... "
    }
end 
Run Code Online (Sandbox Code Playgroud)

有脚本.当我单独放入每一行时,该load_lib功能可用并且工作正常.但是当我将它粘贴到irb中的一个大块(Ubuntu终端,Sh Ctrl C)时,它会突然出现Dir.glob(...在线上并显示:

Display all 931 possibilities? (y or n)
!
!=
!~
<=>
.... [dozens of lines in this vein]
Run Code Online (Sandbox Code Playgroud)

然后根本不创建该方法.

以下是我一次将其粘贴到一行时发生的情况(成功):

>>  def load_lib
>>     path = File.join(File.dirname(__FILE__), 'lib')
>>     failures = []
>> Dir.glob("#{path}/**/*.rb").each {  |file|
?> puts file
>> }
>> end
=> nil
>> load_lib
./lib/alpha_processor.rb
./lib/development_mail_interceptor.rb
./lib/service_processors/beta_processor.rb
Run Code Online (Sandbox Code Playgroud)

是否有一些关于[]{} …

ruby irb

12
推荐指数
1
解决办法
3273
查看次数