小编Mar*_*ger的帖子

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万
查看次数

Jenkins中SVN"包含区域"的格式

在Jenkins项目中设置"包含区域"时,帮助文本提到:

如果设置,并且Jenkins设置为轮询更改,则在确定是否需要触发构建时,Jenkins将忽略此列表中不存在的任何文件和/或文件夹.每个包含使用正则表达式模式匹配,并且必须用新行分隔.

当您需要检出整个资源以进行构建时,这非常有用,但只希望在子集发生更改时进行构建.

/trunk/myapp/c/library1/.*
/trunk/myapp/c/library2/.*

如果检出/ trunk/myapp,则只有在c/library1和c/library2子树发生更改时才会进行构建.如果还指定了排除区域,则当文件位于包含列表中而不在排除列表中时,不会忽略该文件.

我仍然不太清楚这个"资源"应该是什么.

我们假设我查看了存储库的一部分:https://svn.mydomain.com/repos/projects/myfancyproject/trunk

我们还假设我将其检出一个名为"theproject"的文件夹

现在,让我们假设我只希望在repo的"documents/cat-pictures /"文件夹中发生更改时触发构建.

我应该投入:

  1. /trunk/documents/cat-pictures/.*
  2. /documents/cat-pictures/.*
  3. /repos/projects/myfancyproject/trunk/documents/cat-pictures/.*
  4. 文件/ CAT-图片/.*
  5. 行李箱/文件/ CAT-图片/.*

或者甚至:数字1到5带有"theproject /"前缀

svn continuous-integration jenkins

14
推荐指数
2
解决办法
8602
查看次数

哪个库可以为Sinatra提供最简单的OAuth 2.0身份验证

我将围绕一个服务实现一个简单的REST API包装器,并希望将Ruby与Sinatra一起用于此任务.
想法是让用户使用双腿OAuth(2.0)验证/签署请求.

我应该尝试使用像warden和addtional oauth 2.0 addon(例如warden-oauth2)这样的身份验证框架,还是应该使用像rack-oauth2-server这样的基于机架的解决方案.基于机架的方法似乎依赖于MongoDB,这是好的,但我宁愿最小化依赖性.

干杯,
马克

ruby oauth sinatra

14
推荐指数
1
解决办法
5261
查看次数

如何默认为Jenkins shell执行的登录shell

我想使用rvm(或rbenv/chruby)来从我的Jenkins作业中选择不同的ruby版本.默认情况下,Jenkins将使用/ bin/sh,它在Ubuntu上是破折号.

为了改变这个,我可以补充一下

#!/bin/bash -l
Run Code Online (Sandbox Code Playgroud)

到处都是每个shell执行函数的顶部.看到这很烦人的工作,我希望能够将其设置在中心位置.

使用"Shell可执行文件"配置设置,我可以让它运行bash,添加像'-l'这样的参数但是会失败

"/ bin/bash -l"-xe /tmp/hudson5660076222778817826.sh致命:命令执行失败java.io.IOException:无法运行程序"/ bin/bash -l"(在目录"/ home/jenkins/jobs/workspace中)/rvm-test"):error = 2,没有这样的文件或目录

我尝试使用jenkins的rvm插件,但这甚至不安装在当前的发行版本上.

有任何想法吗?:)

bash rvm jenkins rbenv

10
推荐指数
1
解决办法
9256
查看次数

黄瓜:何时使用标签/挂钩与背景

我想知道与使用标签和挂钩相比,黄瓜背景中是否存在支持或反对的好论据.

在测试开始之前登录用户可以像这样:

Background:
  Given that I am logged in
Scenario: Lorem ipsum sit amet dolor
[...]
Run Code Online (Sandbox Code Playgroud)

或者像这样:

@login
Scenario: Lorem ipsum sit amet dolor
[...]
Run Code Online (Sandbox Code Playgroud)

+

before(@login) do
  visit('/admin/login/testuser')
end
Run Code Online (Sandbox Code Playgroud)

任何想法何时支持另一个?

ruby cucumber gherkin

8
推荐指数
1
解决办法
2584
查看次数

将XPATH谓词与位置相结合

我有一个包含该类的div元素的集合media-gallery-item.
我想选择元素编号x.

只选择所有项目时,我得到5个结果

$x("//div[@id='content-area']//div[@class='media-gallery-item']")
Run Code Online (Sandbox Code Playgroud)

现在我希望能够选择项目编号2,但我无法弄清楚如何将两者正确组合:

$x("//div[@id='content-area']//div[@class='media-gallery-item'][2]")

$x("//div[@id='content-area']//div[@class='media-gallery-item'
                                   and position() = 2]")
Run Code Online (Sandbox Code Playgroud)

我知道这些并没有多大意义,因为它不是一个实际的AND,但更像是:"首先按照这个过滤,然后选择第二个匹配".这样做的目的是继续选择事物(例如在第二个元素中,获取元素的href属性a)

xpath predicate

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

Ruby中的大型指数?

我正在做一些与大学相关的Diffie Hellmann练习,并尝试使用红宝石.可悲的是,ruby似乎无法处理大型指数:

警告:在**b中,b可能太大
NaN
[...]

它有什么办法吗?(例如,一个特殊的数学课或那条线上的东西?)

ps这里是有问题的代码:

generator = 7789
prime = 1017473
alice_secret = 415492
bob_secret = 725193

puts from_alice_to_bob = (generator**alice_secret) % prime
puts from_bob_to_alice = (generator**bob_secret) % prime

puts bobs_key_calculation = (from_alice_to_bob**bob_secret) % prime
puts alices_key_calculation = (from_bob_to_alice**alice_secret) % prime
Run Code Online (Sandbox Code Playgroud)

ruby math exponent

6
推荐指数
1
解决办法
3347
查看次数

如何使用Jenkins查看几个私有Github存储库

我和Jenkins以及私人Github回购有一个小问题.要查看私人仓库,通常需要以下两种方法之一:

  • 该repo上用户的私有SSH密钥
  • 该回购的已注册"部署密钥"的私有SSH密钥

部署密钥是为这种交互而制定的.问题是部署密钥必须在项目中是唯一的,所以我每次都必须使用不同的密钥.这意味着我必须为每个额外的仓库为Jenkins用户添加另一个密钥到ssh-agent.
这也意味着默认情况下,代理会尝试所有可用的密钥,并且可能会在使用错误的密钥进行一些错误尝试后删除连接.

Jenkins git插件似乎不允许将其指向SSH密钥.Jenkins在结账前不允许任何命令行交互,所以我不能使用任何bash技巧来设置正确的密钥.

到目前为止,唯一的解决方案似乎是:

  1. 在github中创建一个"my_jenkins_account"用户
  2. 向用户添加公钥
  3. 将帐户添加到我想要使用Jenkins签出的repos
  4. 将用户的私钥添加到jenkins用户

还有其他建议吗?

github jenkins

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

清理ruby中的奇怪编码

我目前正在玩couchdb.
我正在尝试将一些博客数据从redis(键值存储)迁移到couchdb(键值存储).
看来我可能从不同的博客引擎中迁移了这些数据(每个人都有一个爱好:)),似乎有一些编码snafus.
我正在使用CouchREST从ruby访问CouchDB,我得到了这个:

<JSON::GeneratorError: source sequence is illegal/malformed>
Run Code Online (Sandbox Code Playgroud)

问题似乎是对象的body_html部分:

<Post:0x00000000e9ee18 @body_html="[.....]Wie Sie bereits wissen, m\xF6chte EUserv k\xFCnftig seine  [...]
Run Code Online (Sandbox Code Playgroud)

这些应该是变形金刚("möchte"和"künftig").

任何想法如何摆脱这些问题?我在插入之前尝试使用ruby 1.9编码功能或iconv进行了一些转换,但还没有运气:(

如果我尝试使用ruby 1.9的.encode()方法将这些东西转换为ISO-8859-1,则会发生这种情况(不同的文本,相同的问题):

#<Encoding::UndefinedConversionError: "\xC6\x92" from UTF-8 to ISO-8859-1>
Run Code Online (Sandbox Code Playgroud)

ruby encoding json couchdb character-encoding

3
推荐指数
1
解决办法
4811
查看次数