草庐IT

PHP 将 URL 规范化为相同的形式

全部标签

ruby - 动态 RSpec 规范生成

我想根据外部数据源动态生成一系列规范。具体来说,我下载了一个Google电子表格,电子表格中的每一行都应该用于其自己的测试用例:describe"Cases"dobefore(:all)do#Downloadspreadsheetand#populatecasesinDBendCases.eachdo|case|it"Case#{case.num}"do#specendendend这是行不通的,因为对于使用RSpec的初学者来说,(据我所知)不会在编译时“看到”任何规范,所以before(:all)永远不会执行。如果我要放置一个空的itblock,它会让before(:all)执行,但

ruby - 你如何在 Capistrano 中为不同的角色定义不同的相同任务?

我正在使用Capistrano来处理我的部署,我在我的设置中有两个不同的角色-:web和:processing。它们都有通常的:deploy任务,但:restart任务对于两种类型的服务器需要不同。所以我的第一次尝试是这样的:task:restart,:roles=>:webdorun"...webrelatedrestartstuff..."endtask:restart,:roles=>:processingdorun"...processingrelatedrestartstuff..."end这不起作用,因为第二个:restart(对于:processing角色)替换了第一个:

ruby - 有没有人想出一种方法来在多个浏览器/网络驱动程序上运行相同的 cucumber 场景?

我正在使用Cucumber+capybara进行一些网络自动化测试。我希望能够连接我自己的标签(类似于场景之前的@all_browsers)并让它针对我设置的网络驱动程序列表运行(celerity,firefox上的selenium,ie和chrome)。我不想在前面用4个不同的标签写4次不同的场景。我已经研究过尝试使用我通过以下方式注册的新驱动程序来执行此操作:Capybara.register_driver:all_browsersdo|app|#Whatwouldevenworkinhere?Idon'tthinkanythingwill.end然后跟进:Before('@all

ruby-on-rails - 使用基于已安装引擎的 url_for 获取基于约束的 url

有什么方法可以让url_for在Action调度路由期间根据request.host返回url吗?mountCollaborate::Engine=>'/apps/collaborate',:constraints=>{:host=>'example.com'}mountCollaborate::Engine=>'/apps/worktogether'示例:当用户在example.com主机上时collaborate_path=>/apps/collaborate当用户在任何其他主机上时collaborate_path=>/apps/worktogether经过大量研究,我意识到Rou

sql - 具有相同名称列的连接表上的 Rails ".pluck"返回一个值,然后返回 nil

Experimenthas_many:featuresFeaturebelongs_to:experimentExperiment.where("experiments.id=1").joins(:features).pluck("features.id","experiments.id")我希望这会返回每个功能的ID和实验的ID。[[1,1],[2,1],[3,1],#....]相反,这会返回实验的id,然后返回nil[[1,nil],[1,nil],[1,nil],#....]这在三个方面很奇怪:即使它是一个内部联接并且只返回一个实验,我也能够从功能(features.name)中

ruby - 如何规范退出或中止的方法

我有一个从CLI触发的方法,它有一些显式退出或中止的逻辑路径。我发现在为此方法编写规范时,RSpec将其标记为失败,因为退出是异常。这是一个简单的例子:defcli_methodifconditionputs"Everything'sokay!"elseputs"GTFO!"exitendend我可以使用shouldraise_error(SystemExit)将规范包装在lambda中,但这会忽略block内发生的任何断言。需要明确的是:我不是在测试导出本身,而是在它之前发生的逻辑。我该如何指定这种类型的方法? 最佳答案 只需将您

ruby-on-rails - ruby rails - 重定向到原始请求 url

这是我重定向到默认url(myapp_url)的方法。但我想更改重定向以转到用户在身份验证后输入的请求url。我怎么做?我在这里搜索了几个选项,比如:back。但是不行。用户输入一个url,如果未通过身份验证则被重定向到登录页面,然后登录后用户将被重定向到原始请求url。defcreateuser=User.Authenticate(params[:user_id],params[:password])ifusersession[:user_id]=user.idredirect_tomyapp_url,:notice=>"Loggedin!"elseflash.now.alert="

ruby - 使用 Watir-webdriver 如何检查页面的 URL

我是watir-webdriver自动化的新手,如果这是自动化的基本问题,我深表歉意。但问题是我正在自动对网站进行分页,其中网站的URL随着用户更改页面而变化假设URL是www.example.co.uk/news,当用户单击分页上的下一步按钮时,它有分页,URL更改为www.example.co.uk/news?page=1此时我想检查一下网址,看网址是否正确。但是我真的找不到获取当前页面URL的方法。 最佳答案 browser.url将返回页面的url,因此要检查它是否符合预期,请尝试如下操作:browser.url=="www

ruby - Ruby 1.8 和 1.9 的字符串哈希码是否相同?

我想用String.hash来生成hashcode,但是我担心如果过段时间我把版本从1.8升级到1.9,生成的hashcode也会改变。Ruby1.8和1.9的字符串哈希码是否相同? 最佳答案 幸运的是,答案很简单,因为他们没有:~$ruby1.8-e'p"helloworld".hash'444332266~$ruby1.9-e'p"helloworld".hash'-194819219如果您使用内置哈希方法,我建议您在构建过程中使用一个脚本来生成必要的哈希码。请注意,即使从一台机器到另一台机器,也不能保证它们是相同的。如果您需要

ruby-on-rails - 在 ruby​​ 中转义的 url

关于Ruby中的URL转义有很多讨论,但遗憾的是我没有找到合适的解决方案。一般来说,URI.escape应该可以完成这项工作,但看起来它并不支持所有字符,例如它不转义“[”。URI.parse(URI.escape("1111{3333"))效果很好。URI.parse(URI.escape("1111[3333"))引发异常。我知道根据RFC,“[”不是URL中的合格字符,但是当我将它输入浏览器时它会接受它并呈现页面,因此我需要完全相同的行为。是否知道在Ruby中转义的现成解决方案? 最佳答案 我通常使用CGI.escape转义U