我有这样的测试:
it "should not indicate backwards jumps if the checker position is not a king" do
board = Board.new
game_board = board.create_test_board
board.add_checker(game_board, :red, 3, 3)
x_coord = 3
y_coord = 3
jump_locations = {}
jump_locations["upper_left"] = true
jump_locations["upper_right"] = false
jump_locations["lower_left"] = false
jump_locations["lower_right"] = true
adjusted_jump_locations = @bs.adjust_jump_locations_if_not_king(game_board, x_coord, y_coord, jump_locations)
adjusted_jump_locations["upper_left"].should == true
adjusted_jump_locations["upper_right"].should == false
adjusted_jump_locations["lower_left"].should == false
adjusted_jump_locations["lower_right"].should == false
end
Run Code Online (Sandbox Code Playgroud)
我知道,这是冗长的.是否有更简洁的方式来陈述我的期望.我看过文档,但我看不出在哪里压缩我的期望.谢谢.
所以在Rails 3.2中,不推荐使用ActiveSupport :: Memoizable.
消息如下:
DEPRECATION WARNING: ActiveSupport::Memoizable is deprecated and
will be removed in future releases,simply use Ruby memoization
pattern instead.
Run Code Online (Sandbox Code Playgroud)
它指的是"Ruby memoization pattern"(单数),好像有一个模式,我们都应该知道并参考...
我认为他们的意思是:
def my_method
@my_method ||= # ... go get the value
end
Run Code Online (Sandbox Code Playgroud)
要么
def my_method
return @my_method if defined?(@my_method)
@my_method = # ... go get the value
end
Run Code Online (Sandbox Code Playgroud)
还有其他我错过的东西吗?
这是我第一次尝试使用XMLRPC :: Client库与远程API进行交互,并且我一直收到此错误:
warning: peer certificate won't be verified in this SSL session
Run Code Online (Sandbox Code Playgroud)
搜索周围我发现有很多人犯了这个错误.通常它是自签名证书,他们只是想让它消失,所以他们像MonkeyRPC :: Client打开它的http会话一样做了像Monkey patch那样的脏东西.
我首先假设这只是客户不关心证书是否有效,所以我继续我的搜索并遇到了这个宝石.它只是强制验证所有SSL证书,如果它也不能,则会引发硬错误.这正是我想要的.我把它包括在内,再次运行代码,现在我得到了这个:
OpenSSL:SSL::SSLError:
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B:
certificate verify failed
Run Code Online (Sandbox Code Playgroud)
当然!证书很糟糕!但我仔细检查以确保使用openssl的内置s_client,如下所示:
openssl s_client -connect sub.example.com:443
Run Code Online (Sandbox Code Playgroud)
我得到了什么:
CONNECTED(00000003)
---
Certificate chain
<snip>
Verify return code: 0 (ok)
Run Code Online (Sandbox Code Playgroud)
所以现在我们回答我的问题.OpenSSL(命令行版本)说证书很好.OpenSSL(Ruby库)不同意.我的所有网络浏览器都说证书很好.
一些可能有用的其他细节.证书是通配符,但对域有效.openssl s_client在距离Ruby代码几秒钟的同一台机器上运行.这是与Windows一起安装的Ruby 1.8.7 p357.
Ruby是否使用主机操作系统提供的CA捆绑以外的东西?有没有办法告诉Ruby使用特定的CA捆绑或系统?
我有Ruby on Rails 3.2.11和Ruby 1.9.3的网站.
什么可能导致以下错误:
(JSON::ParserError) "{N}: unexpected token at 'alihack<%eval request(\"alihack.com\")%>
Run Code Online (Sandbox Code Playgroud)
我在日志中有几个这样的错误.所有人都试图评估请求(\"alihack.com \").
部分日志文件:
"REMOTE_ADDR" => "10.123.66.198",
"REQUEST_METHOD" => "PUT",
"REQUEST_PATH" => "/ali.txt",
"PATH_INFO" => "/ali.txt",
"REQUEST_URI" => "/ali.txt",
"SERVER_PROTOCOL" => "HTTP/1.1",
"HTTP_VERSION" => "HTTP/1.1",
"HTTP_X_REQUEST_START" => "1407690958116",
"HTTP_X_REQUEST_ID" => "47392d63-f113-48ba-bdd4-74492ebe64f6",
"HTTP_X_FORWARDED_PROTO" => "https",
"HTTP_X_FORWARDED_PORT" => "443",
"HTTP_X_FORWARDED_FOR" => "23.27.103.106, 199.27.133.183".
Run Code Online (Sandbox Code Playgroud)
199.27.133.183 - 是CLoudFlare IP."REMOTE_ADDR"=>"10.93.15.235"和"10.123.66.198"以及其他我认为是假代理的IP.
这是一个链接人与他的网站有相同的问题来自相同的IP地址(23.27.103.106).
总而言之,所有错误的常见ip是23.27.103.106,他们尝试使用ruby的eval运行脚本.
所以我的问题是:他们试图找到什么类型的漏洞?该怎么办?阻止ip?
先感谢您.
我想在Windows下使用Aptana Studio for Rails开发.我目前有不同的开发工具和运行(如git/ruby/jdk),我也想安装Aptana Studio,但我不能.下载并运行安装程序后,它正常启动,在我选择目标目录后,它开始下载prequisities.我有几个问题:
我使用的是Win7 x64,ruby 1.9.3p-545,msysgit 1.8.4,jdk 1.7.有没有人有类似问题并成功安装了这个ide?
我正在处理大量数据文件(每个数百万行).
在开始处理之前,我想得到文件中行数的计数,然后我可以指出处理的距离.
由于文件的大小,将整个文件读入内存是不切实际的,只计算有多少行.有没有人对如何做到这一点有一个很好的建议?
我发现自己对构造函数使用了哈希参数,特别是在编写用于配置的DSL或最终用户将要暴露的其他API时.我最终做的事情如下:
class Example
PROPERTIES = [:name, :age]
PROPERTIES.each { |p| attr_reader p }
def initialize(args)
PROPERTIES.each do |p|
self.instance_variable_set "@#{p}", args[p] if not args[p].nil?
end
end
end
Run Code Online (Sandbox Code Playgroud)
有没有更惯用的方法来实现这一目标?抛弃常数和符号到字符串转换似乎特别令人震惊.
Linux新手问题我猜...
我怎样才能找到gem在我的Ubuntu 10系统上安装宝石的位置?我想阅读宝石源代码,也许会改变一些东西.
我已经开始学习Ruby了,刚刚在NetBeans IDE中尝试了我的第一个hello world程序.我有一个疑问,我可以看到新项目向导创建了一组包结构.它里面有一个"Rakefile".这意味着什么,它的用途是什么?
我在截屏视频中看到了这个,但无法弄清楚它是什么.参考表只是将其与其他运算符一起作为一般模式匹配运算符.
ruby ×10
api ×1
aptana ×1
aptana3 ×1
certificate ×1
dry ×1
expectations ×1
gem ×1
idioms ×1
installation ×1
json ×1
linux ×1
memoization ×1
openssl ×1
operators ×1
rakefile ×1
rspec ×1