小编Dav*_* J.的帖子

Mechanize - 如何在rails中关注或"单击"Meta刷新

我对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

ruby ruby-on-rails mechanize

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

如何构建一个非常基本的Guard示例?

我的目标是用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也没有真正回答我的问题:参见 …

ruby guard

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

为rbenv配置Textmate 2

设置Textmate 2以使用rbenv的最佳方法是什么?

我读了一个关于设置rbenvTextmate邮件列表线程,但还没有找到正确的解决方案.

textmate2

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

默认情况下将选项设为false

这是在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选项的代码之间的不对称性.在两者之间进行更改的模式 - 不会导致错误 - 将是一件好事.

ruby options

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

如何在环形应用程序中维护不同用户会话的状态

我需要在不同的浏览器/用户会话上维护服务器上的全局状态.

我的假设是,当请求进入时创建的所有原子等都是特定于该请求的.一旦返回响应,就会销毁所有状态并释放内存.如果我错了,请纠正我.

可以使用会话中间件在内存中维护对特定会话的请求的状态.

但是,如何在多个用户会话和请求之间维护状态.如果可能的话,我想避免使用memcached/redis等将其存储在外部.是否有可能在内存中实现它?

clojure ring

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

在数据框中以数字方式对因子进行重新排序

我的系数从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?这不应实质性地改变数据帧;我只希望这些因素在后续操作中以正确的顺序出现。

sorting r

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

Storm中的延迟队列/消息处理

在我的Storm拓扑中,在处理流时,我想延迟处理某些消息,直到将来某些时间点.这样做的合理选择是什么?

到目前为止,我已经考虑过以下几点:

  • 使用Java的Thread.sleep.(但是,根据一些讨论,这不是有效利用Storm资源的推荐方法.)
  • 使用延迟队列......
  • Storm是否有一些API来延迟我忽略的消息?
  • ZeroMQ是否提供Storm(如果已修改)可以利用的延迟消息传递API?

java clojure apache-storm

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

Clojure中的反向路由/ URL生成?

在Clojure中进行路由和URL生成的好方法(库或代码)有哪些?

我查看了Compojure源代码,但没有看到它的路由也意味着也用于生成URL.还有什么呢?

如果你用证据和/或经验来支持,那么说"没有这样的图书馆"的答案实际上非常有用.

此问题的动机来自Rails路由指南的第一部分:"Rails路由器识别URL并将它们分派给控制器的操作.它还可以生成路径和URL,从而无需在视图中对字符串进行硬编码."

亲爱的你:我认识那里的人(也许?)想说,"不要担心网址生成;只需硬编码网址的字符串".是的,我知道我可以这样做,但这并不能解决这个问题.:)这不是关于组合路由和URL生成的智慧或优点和缺点的问题.这是关于怎么做到的?

url routes clojure

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

目前Google Guava缓存使用的字节数?

我想知道缓存中正在使用多少字节.这在确定合理的尺寸方面很有用.有什么好方法可以计算Google Guava缓存中使用的字节数?

stats方法没有给出我想要的东西; 它不包括缓存中字节数的度量标准.

这种asMap方法是我迄今为止发现的最佳方法.获得此信息后,可以使用In Java中显示的一些技术,确定对象大小的最佳方法是什么?.但是,坦率地说,这些看起来相当痛苦,至少从Clojure代码库来看.为了避免一些依赖,我目前正在使用Nippy,一个Clojure序列化库的粗略快捷方式:(count (nippy/freeze (.asMap cache))).我正在寻找更好的方法.

我正在使用Clojure代码库中的Google Guava缓存,但我的问题不一定是Clojure特有的; 在大多数情况下,Java互操作相对容易.

更新:回应下面的评论的一些背景.首先,我想知道我是否忽略了Google Guava缓存API的有用部分.其次,我不知道我链接的通用方法(用于计算堆上的内存使用情况)是否适用于Guava.更广泛地说,查找缓存大小利用率是一个重要的用例,所以我有点惊讶它没有更好的在线记录.

java clojure guava

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

IntelliJ IDEA 代码高亮插件使用 ANTLR 语法吗?

我使用 ANTLRv4 语法来解析我的DSL。我想为我的 DSL 创建一个插件来支持 IntelliJ IDEA 中的代码突出显示和代码完成。

据我所知,IntelliJ 使用BNFFlex格式进行解析。

是否有可能:

  1. 使用 ANTLR 语法,或者
  2. 将 ANTLR 语法转换为 BNF 和 Flex ...

...为我的 DSL 制作一个 IntelliJ 插件?

grammar antlr jetbrains-ide intellij-idea intellij-plugin

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