我一直在寻找Ruby on Rails的持续集成解决方案,但对结果并不太满意.我来自一个使用CruiseControl.NET的.NET商店,它的易用性和丰富的状态/报告真的被宠坏了.
理想情况下,我在寻找:
明显的Git/SVN和Test :: Unit集成
与Rake和/或Capistrano集成
显示构建状态的Web界面
失败构建的电子邮件通知.
桌面通知(可能通过Growl)
用于构建状态的REST API
插件框架,用于在UI中运行其他代码分析工具和报告结果
我从Internet复制了以下Ruby代码并进行了一些更改.
__PRE__
但它不起作用!
请帮忙.我该怎么做才能自己调试程序?
所以我在这样的范围内迭代:
(1..100).each do |n|
# n = 1
# n = 2
# n = 3
# n = 4
# n = 5
end
Run Code Online (Sandbox Code Playgroud)
但我想做的是迭代10.
因此,不是增加n1,而是下一个n实际上是10,然后是20,30等.
我使用的是ruby-1.8.7-p302/Rails 2.3.11.我正在尝试使用FQL(Facebook API)获取链接的统计信息.这是我的代码:
def stats(fb_post_url)
url = BASE_URI + "?query=#{URI.encode("select like_count from link_stat where url=\"#{fb_post_url}\"")}"
parsed_url = URI.parse(url)
http = Net::HTTP.new(parsed_url.host, parsed_url.port)
request = Net::HTTP::Get.new(parsed_url.request_uri)
response = http.request(request)
response.inspect
end
Run Code Online (Sandbox Code Playgroud)
这是错误:
EOFError: end of file reached
from /home/rahul/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/net/protocol.rb:135:in `sysread'
from /home/rahul/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/net/protocol.rb:135:in `rbuf_fill'
from /home/rahul/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/timeout.rb:67:in `timeout'
from /home/rahul/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/timeout.rb:101:in `timeout'
from /home/rahul/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/net/protocol.rb:134:in `rbuf_fill'
from /home/rahul/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/net/protocol.rb:116:in `readuntil'
from /home/rahul/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/net/protocol.rb:126:in `readline'
from /home/rahul/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/net/http.rb:2028:in `read_status_line'
from /home/rahul/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/net/http.rb:2017:in `read_new'
from /home/rahul/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/net/http.rb:1051:in `request'
from /home/rahul/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/net/http.rb:1037:in `request'
from /home/rahul/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/net/http.rb:543:in `start'
from /home/rahul/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/net/http.rb:1035:in `request'
from /home/rahul/Work/Radr/lib/fb_stats.rb:13:in `stats'
from (irb):10 …Run Code Online (Sandbox Code Playgroud) 尝试安装ruby 1.9.3,请阅读我需要先安装自制软件.跑啤酒医生,它给了我一堆警告.其中之一是:
警告:/ usr/bin发生在/ usr/local/bin之前这意味着将使用系统提供的程序而不是Homebrew提供的程序.两个路径都存在以下工具:
Run Code Online (Sandbox Code Playgroud)easy_install easy_install-2.6考虑修改PATH,以便/ usr/local/bin位于PATH中的/ usr/bin之前.
一个人怎么做它在这里要求的东西?
我经常发现自己在写这个:
params.delete(:controller)
params.delete(:action)
params.delete(:other_key)
redirect_to my_path(params)
Run Code Online (Sandbox Code Playgroud)
删除的痕迹感觉不对,也没有:
[:controller, :action, :other_key].each do |k|
params.delete(k)
end
Run Code Online (Sandbox Code Playgroud)
有什么更简单,更清洁的吗?
我正在制作一个带有ruby的脚本,它必须以每秒24帧的速度渲染帧,但我需要在发送命令之间等待1/24秒.什么是最好的睡眠时间不到一秒钟?
Ruby中内置的Base64库正在添加一些'\n'.我无法找出原因.对于这个特例:
irb(main):001:0> require 'rubygems'
=> true
irb(main):002:0> require 'base64'
=> true
irb(main):003:0> str = "1110--ad6ca0b06e1fbeb7e6518a0418a73a6e04a67054"
=> "1110--ad6ca0b06e1fbeb7e6518a0418a73a6e04a67054"
irb(main):004:0> Base64.encode64(str)
=> "MTExMC0tYWQ2Y2EwYjA2ZTFmYmViN2U2NTE4YTA0MThhNzNhNmUwNGE2NzA1\nNA==\n"
Run Code Online (Sandbox Code Playgroud)
\n是从结尾开始的最后一个位置和第六个位置.解码器(Base64.decode64)完美地返回旧字符串.奇怪的是,这些\n不会为编码字符串添加任何值.当我从输出字符串中删除换行符时,解码器会再次完美地对其进行解码.
irb(main):005:0> Base64.decode64(Base64.encode64(str).gsub("\n", '')) == str
=> true
Run Code Online (Sandbox Code Playgroud)
更多的是,我使用另一个JS库来生成相同输入字符串的base64编码输出,输出没有\n的.
这是一个错误还是其他什么?以前有人遇到过这个问题吗?
仅供参考,
$ ruby -v
ruby 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]
Run Code Online (Sandbox Code Playgroud) 如果一个字符串在Ruby(没有rails)中以另一个字符串开头的最佳方法是什么?
在Ruby中,如何在Hash上交换键和值?
假设我有以下哈希:
{:a=>:one, :b=>:two, :c=>:three}
Run Code Online (Sandbox Code Playgroud)
我想转变成:
{:one=>:a, :two=>:b, :three=>:c}
Run Code Online (Sandbox Code Playgroud)
使用地图似乎相当乏味.有更短的解决方案吗?
ruby ×10
base64 ×1
debugging ×1
encode ×1
facebook-fql ×1
hashmap ×1
homebrew ×1
increment ×1
iterator ×1
path ×1
startswith ×1
string ×1
web-services ×1