当您运行时git clone,它会更新进度.例如,收到的对象的百分比会发生变化.
user@athena:~/cloj/src$ git clone git://git.boinkor.net/slime.git
Initialized empty Git repository in /home/user/cloj/src/slime/.git/
remote: Counting objects: 15936, done.
remote: Compressing objects: 100% (5500/5500), done.
Receiving objects: 28% (4547/15936), 3.16 MiB | 165 KiB/s
Run Code Online (Sandbox Code Playgroud)
这是如何完成的?它是否使用ncurses或更简单的东西,比如退格字符和常规字符输出的某种组合?
我对如何通过Ruby实现这种控制台输出特别感兴趣.
编辑
我原来的问题得到了回答.但这是一个附录.例如,当您使用MPlayer时,它不仅会更新一行以显示当前进度,还会更新前一行(例如,当您按下暂停时).
===== PAUSE =====
A: 79.9 (01:19.9) of 4718.0 ( 1:18:38.0) 0.3%
Run Code Online (Sandbox Code Playgroud)
您如何在适当的位置更新两行输出?
我正在寻找一种简单的方法来获取Ruby中图像文件的宽度和高度尺寸,而无需使用ImageMagick或ImageScience(运行Snow Leapard).
如果您选择的脚本语言没有类似Perl的严格模式,您如何捕捉错别字?你是否正在测试一切?每个构造函数,每个方法?这是唯一的方法吗?
我有X个图像对象需要在视图中循环,并且想要每6个对象创建一个新的div(对于一个库).
我看过周期,但它似乎改变了所有其他记录.有没有人知道每6次将代码插入视图的方法?
我可以用嵌套循环来做这件事,但我有点难过这个.
我有一个Rails项目,里面有很多西里尔字符串.
它在Ruby 1.8上运行良好,但Ruby 1.9假定源文件是US-ASCII编码的,除非您# encoding: utf-8在源文件的顶部提供注释.此时不考虑文件US-ASCII.
是否有一种更简单的方法来告诉Ruby"这个应用程序是UTF8编码的.除非另有说明,否则请将所有和任何包含的源文件视为UTF8"?
更新:
我写了" 如何在Ruby 1.9文件中自动插入编码:UTF-8指令 ",如果需要,会自动附加编码指令.
如果我有方法
def some_method p = {}
string = <<-MY_TERMINATOR
Example text blah blah
lorem ipsum something or another
MY_TERMINATOR
end
Run Code Online (Sandbox Code Playgroud)
如何从heredoc中访问变量p [:name]?
我想知道如何列出模块中的所有方法,但不包括继承的方法.
例如.
module Software
def exit
puts "exited"
end
end
puts Software.methods
Run Code Online (Sandbox Code Playgroud)
将列出不仅退出,而且所有继承的方法.
是否可以列出退出?
谢谢
我试图让Capybara运行在一个简单的Ruby脚本中 - 即没有/在Rails之外.这是脚本:
require 'rubygems'
require 'capybara'
require 'capybara/dsl'
include Capybara
Capybara.current_driver = :selenium
Capybara.app_host = 'http://www.google.com'
visit('/')
Run Code Online (Sandbox Code Playgroud)
问题是,当我运行这个时,我收到此错误:
NameError: uninitialized constant Capybara::Session
at top level in dsl.rb at line 52
method gem_original_require in custom_require.rb at line 36
method require in custom_require.rb at line 36
at top level in capybara_test.rb at line 3
method gem_original_require in custom_require.rb at line 31
method require in custom_require.rb at line 31
at top level in capybara_test.rb at line
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
更多信息:
我在Ruby中看过像这样的魔术变量. $_ $' $0
是否有完整的参考资料来说明它们的含义以及它们是如何设定的?
我正在寻找一个经典的异常处理问题的解决方案.请考虑以下代码:
def foo(n)
puts " for #{n}"
sleep n
raise "after #{n}"
end
begin
threads = []
[5, 15, 20, 3].each do |i|
threads << Thread.new do
foo(i)
end
end
threads.each(&:join)
rescue Exception => e
puts "EXCEPTION: #{e.inspect}"
puts "MESSAGE: #{e.message}"
end
Run Code Online (Sandbox Code Playgroud)
此代码在5秒后捕获异常.
但是如果我将数组更改为[15, 5, 20, 3],则上面的代码会在15秒后捕获异常.简而言之,它始终捕获第一个线程中引发的异常.
任何想法,为什么如此.为什么不在每次3秒后捕获异常?如何通过任何线程捕获第一个引发的异常?