标签: ruby

ruby 1.9:UTF-8中的无效字节序列

我在Ruby(1.9)中编写了一个爬虫程序,它从很多随机站点中消耗了大量的HTML.
当试图提取链接时,我决定使用.scan(/href="(.*?)"/i)而不是nokogiri/hpricot(主要加速).问题是我现在收到很多" invalid byte sequence in UTF-8"错误.
根据我的理解,该net/http库没有任何特定于编码的选项,并且所引入的内容基本上没有正确标记.
实际使用传入数据的最佳方法是什么?我尝试.encode使用替换和无效选项集,但到目前为止没有成功...

ruby encoding utf-8

109
推荐指数
5
解决办法
12万
查看次数

"==="运算符在Ruby中做了什么?

可能重复:
在Ruby中=== vs. ==

我看到它最近使用了几次但却无法弄清楚它的作用.谁能说明它是如何工作的?

ruby

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

将方法作为参数传递给Ruby

我试图用Ruby搞得一团糟.因此,我尝试从"Programming Collective Intelligence"Ruby书中实现算法(在Python中给出).

在第8章中,作者将方法a作为参数传递.这似乎适用于Python,但不适用于Ruby.

我有这个方法

def gaussian(dist, sigma=10.0)
  foo
end
Run Code Online (Sandbox Code Playgroud)

并希望用另一种方法调用它

def weightedknn(data, vec1, k = 5, weightf = gaussian)
  foo
  weight = weightf(dist)
  foo
end
Run Code Online (Sandbox Code Playgroud)

我得到的只是一个错误

ArgumentError: wrong number of arguments (0 for 1)
Run Code Online (Sandbox Code Playgroud)

ruby parameters methods

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

Rails:将UTC DateTime转换为另一个时区

在Ruby/Rails中,如何将UTC DateTime转换为另一个时区?

ruby datetime runtime ruby-on-rails

108
推荐指数
3
解决办法
8万
查看次数

Ruby:如何获取字符串的第一个字符

如何使用Ruby获取字符串中的第一个字符?

最终我正在做的是取一个人的姓氏,只是创建一个初始名称.

所以如果字符串是"史密斯"我只想要"S".

ruby string

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

ruby运算符"=〜"

在红宝石中,我读了一些操作符,但我找不到=~.什么是=~对,还是这是什么意思?我看到的程序有

regexs = (/\d+/)
a = somestring
if a =~ regexs
Run Code Online (Sandbox Code Playgroud)

我认为它是比较somestring等于数字但是,是否还有其他用法,=~运算符的正确定义是什么?

ruby operators

108
推荐指数
3
解决办法
8万
查看次数

注入与红宝石中的减少相同的东西?

我看到他们在这里被记录在案.它们是一样的吗?为什么Ruby有这么多别名(比如数组的map/collect)?非常感谢.

ruby reduce alias inject

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

在OSX 10.9 Maverick上安装Nokogiri时出错?

我将我的OSX(Lion)升级为Mavericks,我无法为我的项目安装Nokogiri.

我已经安装了XCode 5.0.1,命令行工具(使用xcode-select --install),并且已经从Homebrew安装了libxml2,我仍然遇到问题.

错误是:

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/bin/ruby extconf.rb
checking for libxml/parser.h... *** 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
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/bin/ruby
    --with-zlib-dir
    --without-zlib-dir
    --with-zlib-include
    --without-zlib-include=${zlib-dir}/include
    --with-zlib-lib
    --without-zlib-lib=${zlib-dir}/lib
    --with-iconv-dir
    --without-iconv-dir
    --with-iconv-include
    --without-iconv-include=${iconv-dir}/include
    --with-iconv-lib
    --without-iconv-lib=${iconv-dir}/lib
    --with-xml2-dir
    --without-xml2-dir
    --with-xml2-include
    --without-xml2-include=${xml2-dir}/include …
Run Code Online (Sandbox Code Playgroud)

ruby macos libxml2 nokogiri osx-mavericks

108
推荐指数
8
解决办法
5万
查看次数

Rails格式化日期

我正在向API发布日期,所需格式如下:

2014-12-01T01:29:18
Run Code Online (Sandbox Code Playgroud)

我可以像这样从模型中获取日期:

Model.created_at.to_s
Run Code Online (Sandbox Code Playgroud)

返回:

2014-12-01 01:29:18 -0500
Run Code Online (Sandbox Code Playgroud)

如何使用Rails或Ruby将其格式化为T所需的格式并删除-0500?

谢谢

ruby ruby-on-rails date date-format

108
推荐指数
4
解决办法
13万
查看次数

如何在Mac上将Ruby更新为1.9.x?

我在我的mac上创建了一个新用户帐户,我正在尝试从雪豹默认值1.8.7更新到当前版本的ruby(1.9.2).有人可以指点我教程或解释将我的mac上的Ruby从1.8更新到1.9.2的最佳方法吗?谢谢

ruby macos installation

107
推荐指数
3
解决办法
16万
查看次数