标签: ruby

如何在红宝石中产生延迟

红宝石如何产生延迟?

我使用了睡眠声明,但它没有给我我想要的东西.

puts "amit"
sleep(10)
puts "scj"
Run Code Online (Sandbox Code Playgroud)

我希望它首先打印amit,然后延迟10秒,然后打印scj.

但在上面的情况下会发生什么,它会暂停10秒然后它将打印amit和scj在一起.我不希望这样.

我希望你得到我想说的话.

ruby

9
推荐指数
2
解决办法
2万
查看次数

在Ruby中识别方法的#约定的基本原理/历史是什么?

例如,我总是看到所谓的方法String#split,但从来没有String.split,这似乎更合乎逻辑.或者甚至可能String::split,因为你可以考虑#split在名称空间中String.当假设/隐含(#split)时,我甚至独自看过这个方法.

我知道这是在ri中识别方法的方式.哪个先来?

这是区分,例如,来自领域的方法吗?我也听说这有助于区分实例方法和类方法.但这是从哪里开始的?

ruby convention methods identifier rdoc

9
推荐指数
1
解决办法
772
查看次数

拉斐尔的SVG文件可以使用吗?

我有一个SVG文件,我想通过Raphael显示(每个svg文件是我正在尝试绘制的树中的节点,树的实际连接将由raphael制作).我尝试过类似的东西:

var vector_image = paper.image("test.svg", 50,50,50,50);
Run Code Online (Sandbox Code Playgroud)

但没有骰子,似乎只接受像png或jpeg这样的"真实"图像文件?拉斐尔本身使用可缩放矢量图形,我觉得这很奇怪.

无论如何(没有将SVG文件解析为javascript片段并将它们粘贴到html文档中)以使用Raphael(或任何其他基于矢量的javascript图形引擎?)显示现有的SVG文件

如果必须解析它,有没有简单的方法来做到这一点,只需手动抓取文件?我在Ruby on Rails服务器上运行这个代码,所以我想避免在这个框架之外的解决方案,如果可能的话(我通过这个网站听说过一个PHP解决方案......我宁愿手工编写代码而不是在此项目中添加另一种语言).

-Jenny

ruby svg ruby-on-rails raphael

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

Ruby:根据任意数字列表将舍入数字降至最接近的数字

假设我有一个整数数组:

arr = [0,5,7,8,11,16]
Run Code Online (Sandbox Code Playgroud)

我有另一个整数:

n = 6
Run Code Online (Sandbox Code Playgroud)

我需要一个向下舍入到数组中最接近的数字的函数:

foo(n) #=> 5
Run Code Online (Sandbox Code Playgroud)

如您所见,数字没有固定的模式.这是一种优雅的方式吗?

谢谢

ruby arrays rounding

9
推荐指数
1
解决办法
1884
查看次数

如何使用Ruby获取目录中最后创建的文件的路径?

如何使用Ruby获取目录中最后创建的文件的路径?

ruby windows file

9
推荐指数
1
解决办法
2373
查看次数

ruby - 简化字符串乘法串联

s是一个字符串,这看起来很啰嗦 - 我怎么能简化这个呢?:

   if x === 2
      z = s
    elsif x === 3
      z = s+s
    elsif x === 4
      z = s+s+s
    elsif x === 5
      z = s+s+s+s
    elsif x === 6
      z = s+s+s+s+s
Run Code Online (Sandbox Code Playgroud)

谢谢

ruby string-concatenation

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

使用gem添加辅助方法

我已经找到了很多关于添加表单助手方法的信息(参见我的其他问题之一),但是我找不到任何关于添加辅助方法的信息,就像它们被定义一样application_helper.rb.

我已经尝试application_helper.rb从rails应用程序复制到gem中,但这不起作用.

我也尝试过:

class ActionView::Helpers
Run Code Online (Sandbox Code Playgroud)

..但是会产生错误.

ruby ruby-on-rails

9
推荐指数
1
解决办法
4392
查看次数

尝试使用brew而不是ports在Snow Leopard上安装ruby-filemagic

我正在尝试安装ruby-filemagic.

我试过sudo gem install ruby​​-filemagic -v 0.2.2并得到:

ERROR:  Error installing ruby-filemagic:
ERROR: Failed to build gem native extension.

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb
checking for magic_open() in -lmagic... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
 --with-opt-dir
 --without-opt-dir
 --with-opt-include
...
Run Code Online (Sandbox Code Playgroud)

根据这个:http://blog.elctech.com/2009/08/31/installing-ruby-filemagic-on-macos-x-and-ubuntu/

我需要opt-dir设置.选择Mac端口吗?我正在使用自制软件.

关于从这里去哪里的任何建议都会很棒.

直接从gem安装仍然不适合我,但以下命令做了:sudo env ARCHFLAGS =" - arch x86_64"gem install ruby​​-filemagic - …

ruby homebrew

9
推荐指数
2
解决办法
5214
查看次数

从ruby中的文件内容循环

好的,所以我是Ruby的新手,我在bash/ksh/sh中有很强的背景知识.

我想要做的是使用一个简单的for循环来跨多个服务器运行命令.在bash我会这样做:

for SERVER in `cat etc/SERVER_LIST`
do
    ssh -q ${SERVER} "ls -l /etc"
done
Run Code Online (Sandbox Code Playgroud)

etc/SERVER_LIST只是一个看起来像这样的文件:

server1
server2
server3
etc
Run Code Online (Sandbox Code Playgroud)

我似乎无法在Ruby中做到这一点.这是我到目前为止:

 #!/usr/bin/ruby
### SSH testing
#
#

require 'net/ssh'

File.open("etc/SERVER_LIST") do |f|
        f.each_line do |line|
                Net::SSH.start(line, 'andex') do |ssh|
                        result = ssh.exec!("ls -l")
                        puts result
                end
        end
end
Run Code Online (Sandbox Code Playgroud)

我现在收到这些错误:

andex@master:~/sysauto> ./ssh2.rb
/usr/lib64/ruby/gems/1.8/gems/net-ssh-2.0.23/lib/net/ssh/transport/session.rb:65:in `initialize': newline at the end of hostname (SocketError)
        from /usr/lib64/ruby/gems/1.8/gems/net-ssh-2.0.23/lib/net/ssh/transport/session.rb:65:in `open'
        from /usr/lib64/ruby/gems/1.8/gems/net-ssh-2.0.23/lib/net/ssh/transport/session.rb:65:in `initialize'
        from /usr/lib64/ruby/1.8/timeout.rb:53:in `timeout'
        from /usr/lib64/ruby/1.8/timeout.rb:93:in `timeout'
        from /usr/lib64/ruby/gems/1.8/gems/net-ssh-2.0.23/lib/net/ssh/transport/session.rb:65:in `initialize'
        from /usr/lib64/ruby/gems/1.8/gems/net-ssh-2.0.23/lib/net/ssh.rb:179:in `new'
        from /usr/lib64/ruby/gems/1.8/gems/net-ssh-2.0.23/lib/net/ssh.rb:179:in …
Run Code Online (Sandbox Code Playgroud)

ruby

9
推荐指数
3
解决办法
2万
查看次数

Ruby on Rails中't()'标记的含义是什么?

我在视图中遇到了一些开源代码,其t()标签类似于HTML转义序列h().

<%= f.label :password, t(:password, :scope => "activerecord.attributes.user") -%>
Run Code Online (Sandbox Code Playgroud)

什么t()意思?

html ruby escaping ruby-on-rails

9
推荐指数
1
解决办法
4007
查看次数