我对Mechanize有点麻烦.
当使用Mechanize提交表单时.我来到一个页面有一个元刷新,没有链接.
我的问题是我如何遵循元刷新?
我试图允许元刷新,但后来我得到一个套接字错误.示例代码
require 'mechanize'
agent = WWW::Mechanize.new
agent.get("http://euroads.dk")
form = agent.page.forms.first
form.username = "username"
form.password = "password"
form.submit
page = agent.get("http://www.euroads.dk/system/index.php?showpage=login")
agent.page.body
Run Code Online (Sandbox Code Playgroud)
响应:
<html>
<head>
<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0;URL=index.php?showpage=m_frontpage\">
</head>
</html>
Run Code Online (Sandbox Code Playgroud)
然后我尝试:
redirect_url = page.parser.at('META[HTTP-EQUIV=\"Refresh\"]')[
"0;URL=index.php?showpage=m_frontpage\"][/url=(.+)/, 1]
Run Code Online (Sandbox Code Playgroud)
但我得到:
NoMethodError: Undefined method '[]' for nil:NilClass
我的目标是用Guard建立一个简单的自定义守卫.我的应用程序的gem安装和bundler安装很顺利.我的Guardfile包含:
notification :growl
guard 'eyeball' do
watch %r{^app/(.*)}
watch %r{^config/(.*)}
watch %r{^lib/(.*)}
end
Run Code Online (Sandbox Code Playgroud)
好的,接下来,我需要告诉Guard在比赛发生时该怎么做.但我不知道该怎么做.(在这种情况下,我想看看我的应用程序进行更改并运行一些任意代码.假设没有可用于我想要的防护.我想学习如何自己做.)
在真正的'错误并看到下一个弹出的错误'样式,当我运行时,guard我收到此错误消息:
ERROR: Could not load 'guard/eyeball' or find class Guard::Eyeball ERROR: cannot load such file -- guard/eyeball ERROR: Invalid Guardfile, original error is: undefined method `new' for nil:NilClass ERROR: No guards found in Guardfile, please add at least one. Guard uses Growl to send notifications. Guard is now watching at '/Users/my-user-name/dev/my-project-name'
所以,这给了我一个提示,我需要创建一个guard/eyeball.rb文件.也许?但我怎么能从文档中知道这一点?
我已经阅读过(几次)非常详细和有用的Guard README,但是还没有找到一个简单的例子来向某人展示如何做"只是编写自己后卫的基础知识".出乎意料的是,RailsCasts也没有真正回答我的问题:参见 …
设置Textmate 2以使用rbenv的最佳方法是什么?
我读了一个关于设置rbenv的Textmate邮件列表线程,但还没有找到正确的解决方案.
这是在Ruby中设置默认值的常用方法:
class QuietByDefault
def initialize(opts = {})
@verbose = opts[:verbose]
end
end
Run Code Online (Sandbox Code Playgroud)
这是一个容易陷入的陷阱:
class VerboseNoMatterWhat
def initialize(opts = {})
@verbose = opts[:verbose] || true
end
end
Run Code Online (Sandbox Code Playgroud)
这是一种正确的方法:
class VerboseByDefault
def initialize(opts = {})
@verbose = opts.include?(:verbose) ? opts[:verbose] : true
end
end
Run Code Online (Sandbox Code Playgroud)
什么是最好/最干净的编码方式VerboseByDefault?(当然,我可以将其考虑在内.)
一般来说,在Ruby代码中广泛使用哪种模式(如果有的话)?ActiveSupport是否有这种模式?(最小值更好 - 我不需要完整的命令行选项解析器.)
Ranting PS:我不喜欢处理默认true代码的代码与处理默认false选项的代码之间的不对称性.在两者之间进行更改的模式 - 不会导致错误 - 将是一件好事.
我需要在不同的浏览器/用户会话上维护服务器上的全局状态.
我的假设是,当请求进入时创建的所有原子等都是特定于该请求的.一旦返回响应,就会销毁所有状态并释放内存.如果我错了,请纠正我.
可以使用会话中间件在内存中维护对特定会话的请求的状态.
但是,如何在多个用户会话和请求之间维护状态.如果可能的话,我想避免使用memcached/redis等将其存储在外部.是否有可能在内存中实现它?
我的系数从0到39。现在按以下顺序订购:
> levels(items$label)
[1] "0" "1" "10" "11" "12" "13" "14" "15" "16" "17" "18" "19"
[13] "2" "20" "21" "22" "23" "24" "25" "26" "27" "28" "29" "3"
[25] "30" "31" "32" "33" "34" "35" "36" "37" "38" "39" "4" "5"
[37] "6" "7" "8" "9"
Run Code Online (Sandbox Code Playgroud)
如何出于显示目的按数字顺序对其重新排序?我不想更改数据框的含义。
更新:如何items使用排序的因子更新原始数据框labels?这不应实质性地改变数据帧;我只希望这些因素在后续操作中以正确的顺序出现。
在我的Storm拓扑中,在处理流时,我想延迟处理某些消息,直到将来某些时间点.这样做的合理选择是什么?
到目前为止,我已经考虑过以下几点:
Thread.sleep.(但是,根据一些讨论,这不是有效利用Storm资源的推荐方法.)在Clojure中进行路由和URL生成的好方法(库或代码)有哪些?
我查看了Compojure源代码,但没有看到它的路由也意味着也用于生成URL.还有什么呢?
如果你用证据和/或经验来支持,那么说"没有这样的图书馆"的答案实际上非常有用.
此问题的动机来自Rails路由指南的第一部分:"Rails路由器识别URL并将它们分派给控制器的操作.它还可以生成路径和URL,从而无需在视图中对字符串进行硬编码."
亲爱的你:我认识那里的人(也许你?)想说,"不要担心网址生成;只需硬编码网址的字符串".是的,我知道我可以这样做,但这并不能解决这个问题.:)这不是关于组合路由和URL生成的智慧或优点和缺点的问题.这是关于你是怎么做到的?
我想知道缓存中正在使用多少字节.这在确定合理的尺寸方面很有用.有什么好方法可以计算Google Guava缓存中使用的字节数?
该stats方法没有给出我想要的东西; 它不包括缓存中字节数的度量标准.
这种asMap方法是我迄今为止发现的最佳方法.获得此信息后,可以使用In Java中显示的一些技术,确定对象大小的最佳方法是什么?.但是,坦率地说,这些看起来相当痛苦,至少从Clojure代码库来看.为了避免一些依赖,我目前正在使用Nippy,一个Clojure序列化库的粗略快捷方式:(count (nippy/freeze (.asMap cache))).我正在寻找更好的方法.
我正在使用Clojure代码库中的Google Guava缓存,但我的问题不一定是Clojure特有的; 在大多数情况下,Java互操作相对容易.
更新:回应下面的评论的一些背景.首先,我想知道我是否忽略了Google Guava缓存API的有用部分.其次,我不知道我链接的通用方法(用于计算堆上的内存使用情况)是否适用于Guava.更广泛地说,查找缓存大小利用率是一个重要的用例,所以我有点惊讶它没有更好的在线记录.