小编Jim*_*y Z的帖子

Ruby Oneline Rescue

我最近了解到,如果rescue在该行出现问题,您可以使用一行代码(请参阅http://www.rubyinside.com/21-ruby-tricks-902.html提示#21).我有一些代码,看起来像这样:

if obj['key'] && obj['key']['key2'] && obj['key']['key2']['name']
  name = obj['key']['key2']['name']
else
  name = ''
end
Run Code Online (Sandbox Code Playgroud)

使用该rescue方法,我相信我可以将代码更改为以下内容:

name = obj['key']['key2']['name'] rescue ''
Run Code Online (Sandbox Code Playgroud)

如果在访问哈希的任何级别抛出零异常,它应该被救援抓住并给我'',这就是我想要的.我也可以选择设置名称,nil如果这是所需的行为.

这样做有什么危险吗?我问,因为这看起来好得令人难以置信.我有这么多丑陋的代码,我想摆脱它看起来像第一个代码示例.

ruby rescue

16
推荐指数
2
解决办法
7177
查看次数

Ruby Gemspec中的条件依赖

我正在构建一个需要安装json gem的gem,以便它能够工作.哪个json gem:json_pure,json-jruby或基于C的json无关紧要.

有没有一种在gemspec中定义它的好方法?这个响应建议为每个版本维护一个完全独立的gem,但似乎必须有更好的方法.

有没有人有这方面的经验?

我应该只使用spec.requirements选项向用户发出他/她需要json gem的通知吗?

ruby rubygems

7
推荐指数
1
解决办法
1557
查看次数

如何在Plone中修改robots.txt?

我有一个我管理的Plone网站,我想在Disots of robots.txt中添加一些页面.

似乎Plone会自动生成robots.txt文件.我找不到任何方法来修改它.我还尝试将"robots.txt"文件添加到应用的根目录,但它说"robots.txt已保留"

有没有人知道如何用Plone(v3)修改它?

robots.txt plone plone-3.x

5
推荐指数
2
解决办法
2345
查看次数

Ruby 1.9比Ruby 1.8慢?

我有一个Rails 2.3.8应用程序,其动作可以从数据库中提取大量数据,并在300-600个部分中呈现它(递归渲染树型结构).对一个请求进行基准测试可以使我的响应时间大约为7秒.

我认为将我的Ruby版本从1.8升级到1.9会给我带来性能提升,但是当我对1.9版本进行基准测试时,我的响应时间大约为9秒(比1.8慢2秒).这对我来说非常令人惊讶.

哪些因素会导致Ruby 1.9执行速度比Ruby 1.8慢?

下面是日志文件的一部分.

Ruby 1.8

Rendered family_index/descendants/_fi_hover (0.5ms)
Rendered family_index/descendants/_descendant (4.6ms)
Rendered search/_search_div (0.1ms)
Rendered family_index/descendants/_fi_hover (0.7ms)
Rendered family_index/descendants/_descendant (4.7ms)
Rendered search/_search_div (0.1ms)
Rendered family_index/descendants/_fi_hover (0.5ms)
Rendered family_index/descendants/_descendant (4.5ms)
Rendered family_index/descendants/_fi_hover (0.5ms)
Rendered family_index/descendants/_descendant (37.9ms)
Rendered family_index/surname_groups/_pedigree (3162.9ms)
Rendered shared/_headers (4.6ms)
Rendered shared/_new_messages (0.6ms)
Rendered shared/_home_logo (1.1ms)
Rendered shared/_login_box (4.0ms)
Rendered shared/_navigation (13.6ms)
Rendered shared/_flash_messages (0.8ms)
Rendered shared/_footer (1.0ms)
Rendered shared/_analytics (0.8ms)
Completed in 4552ms (View: 3352, DB: 147) | 200 OK [http://localhost/family_index/surname_groups/31]
Run Code Online (Sandbox Code Playgroud)

Ruby 1.9

Rendered …
Run Code Online (Sandbox Code Playgroud)

ruby performance ruby-on-rails ruby-1.9

5
推荐指数
2
解决办法
622
查看次数

如何通过节点中的HTTP读取二进制文件?

我在Web服务器上有一个图像(http://example.com/img.jpg).我在浏览器中打开该图像并将其保存到磁盘.

如果我通过' fs'module(fs.readFileSync)在节点中打开文件,我会得到一个以0xff开头的Buffer,这就是我所期望的.

我希望能够直接从HTTP请求获得相同的结果.我正在使用'request'模块发出请求.

request('http://example.com/img.jpg',function(error, response, body){
  //code here
});
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚如何将响应或主体转换为与我从FileSystem获得的等效缓冲区.我错过了什么?

http node.js

5
推荐指数
1
解决办法
1585
查看次数