Tag: irb

var = Watir :: Browser.start’url’之后无法在IRB中使用变量

1.9.3-p327 :001 > require ‘watir-webdriver’ => true 1.9.3-p327 :002 > b = Watir::Browser.new 然后firefox启动,我无能为力。 我的IRB不允许我输入新命令。 尝试了浏览器初始化的不同变体: b = Watir::Browser.new :opera b = Watir::Browser.new :firefox b = Watir::Browser.start ‘url’ 应该出现类似的东西: => #<OperaWatir::Browser:0x1496e57 @active_window=#<OperaWatir::Window:0x1eb1db2 @browser=#>,@driver=# Java::ComOperaCoreSystems::OperaDriver:0xeabd2f>> 但控制台中没有输出。 浏览器关闭60秒后,我得到以下输出: 1.9.3-p327 :002 > b = Watir::Browser.new Selenium::WebDriver::Error::WebDriverError: unable to obtain stable firefox connection in 60 seconds (127.0.0.1:7055) 试过chrome,firefox,浏览器打开,但是irb锁定。 操作系统:Ubuntu的 […]

RangeError:bignum太大而无法转换成`long’

num = “0000001000000000011000000000000010010011000011110000000000000000” for n in 0…num.length temp = num[n] dec = dec + temp*(2**(num.length – n – 1)) end puts dec 当我在irb中运行此代码时,以下错误消息是输出。 当我在python中编译相同的逻辑时,它工作得非常好。 我用谷歌搜索了“RangeError:bignum太大而无法转换为’long’:但没有找到相关的答案。请帮帮我:(先谢谢你。 RangeError:bignum太大而无法转换为long’ from (irb):4:in long’ from (irb):4:in long’ from (irb):4:in *’ from(irb):4:in in block in irb_binding’ from (irb):2:in block in irb_binding’ from (irb):2:in block in irb_binding’ from (irb):2:in每个’ 来自(irb):2 来自C:/ Ruby193 […]

扩展IRB主要方法

我的应用程序中有一个目录结构。 出于开发目的(可能超出),我目前有一个类X ,它有类方法pwd , cd和ls 。 当我在我的应用程序中输入irb whith时,有没有办法让这些方法可用,例如: 2.1.5 :0 > pwd /current_dir/ 目前我在做: 2.1.5 :0 > X.pwd /current_dir/ 这简直不方便。 我可以简单地在现有类中添加内容的解决方案将是完美的,例如: class X < Irb::main def self.pwd #stuff end end 现在我没有真正挖掘hirb ,但如果有一个与hirb或irb一起使用的解决方案,我会hirb ! 谢谢你的帮助!

Ruby没有实时输出

我在Project Euler上遇到了一些问题。 其中一个问题: 13195的主要因素是5,7,13和29. 600851475143的最大主要因素是什么? 我写了一些代码……它有效: class Integer def primeFactors load(‘/home/arseno/ruby/lib/prime.rb’) a = [] for i in (1..self) div = self.to_f/i.to_f if((div==div.to_i)&&(Prime.prime?(i))) a << i end end a end end puts 13195.primeFactors 输出: 5 7 13 29 到现在为止还挺好! 现在,当我输入600851475143时,我的终端挂断了(理所当然,它正在计算很多东西!)所以我试图做的是将一个puts i在循环/ if中,以便我捕获输出因为它实时迭代… 但是通过将这个puts i循环中,Ruby不会在整个迭代中输出变量; 相反,它保留在某种缓冲区中的值,并在计算完成时将它们清空。 这个特殊问题永远需要Ruby来计算(它已运行10分钟),我怀疑它是在浮点转换中。 为什么Ruby(我的终端?)保持值直到计算结束? 相反,我可以实时看到这些值吗? 你有更好的方法吗?

Ruby 1.8.7中的File.open和块

我对ruby很新,我正在阅读Pickaxe书籍以熟悉所有内容。 我遇到了File.open部分,它讨论了将一个块作为File.open调用的参数,然后保证文件已关闭。 现在这听起来像是一种绝对精彩的方式来避免在脚下射击自己,因为我的脚趾很危险,我想我会试一试。 这就是我写的内容(如果重要的话,请写一遍): File.open(‘somefile.txt’, ‘r’).each { |line| puts line }“ 我的期望是somefile.txt文件会被打开,读取,打印和关闭,对吧? 据我说错了。 如果我使用lsof来查看打开的文件句柄,它仍然是打开的。 但是,如果我这样做 f = File.open(‘somefile.txt’, ‘r’).each { |line| puts line } f.close() 我在这个例子中使用了错误的块,或者在与块一起使用时我没有理解File.open的含义。 我已经阅读了与File.open相关的ruby-doc.org部分, 但这似乎证实了我正在做的事情应该按预期工作。 谁能解释我做错了什么?

irb中的单词边界

我在Snow Leopard上使用终端。 在命令行,如果我输入foo.bar.baz.bang.quuz.quux ,当我点击选项-B时,它会逐字地向后移动光标 – 在每个句点停止,因为它考虑了一个周期到是一个词边界。 同样,选项-F逐字逐句前进。 在irb(0.9.5,ruby 1.8.7)中,选项-B和-F也有此行为,但句点不再被视为单词边界,这使得这些键盘快捷键显着减少了用处。 我怎么能改变这个? 编辑:Curiouser和curiouser:在具有相同irb和ruby版本的EC2实例上,句点被视为单词边界。

如何将Readline支持编译到Ruby中

我的ruby版本是用editline编译的(在os x上)我错过了irb中readline的function。 如何使用readline支持重新编译ruby?

将文本粘贴到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. 在同一台计算机上运行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 这个问题与Rails控制台在编辑文本时运行速度非常慢有关,但我没有使用rvm,在编写,编辑或删除文本时没有慢; 只有粘贴很慢。 @ fl00r的建议有效,但这不是永久修复。 此外,如果粘贴文本中有硬新行,则只有最后一行很慢。 例如,粘贴以下文本仅需约1.5秒 # Lorem ipsum dolor sit amet, consectetur adipisicing elit, # sed […]

Ruby使用$ stdout写入puts和return的输出吗?

我想知道Ruby使用的输出流在命令行打印这些东西: irb(main):001:0> a=”test” => “test” irb(main):002:0> puts a test => nil irb(main):003:0> a => “test” $stdout用于irb(main):002:0>和irb(main):003:0> ? 而且,这两次调用之间$stdout的值是否有任何变化? 还有,有人可以指出我从这些东西打印/写入的Ruby源代码?

在irb中重新加载rubygems?

我现在有这个脚本。 def r(this) require this puts “#{this} is now loaded.” rescue LoadError puts “The gem ‘#{this}’ is missing.” puts “Should I install it? [y/n]” data = gets if data =~ /yes|y/i puts “Installing #{this}, hold on.” if `gem install #{this}` =~ /Successfully/i load this end else puts “Okey, goodbye.” end end 这使得可以动态地需要库。 像这样: r “haml” […]