小编art*_*ave的帖子

Haskell函数组成问题

如果这样做:

Prelude Data.Char> map toUpper ("sdfsd" ++ "dfgfdg")
"SDFSDDFGFDG"
Run Code Online (Sandbox Code Playgroud)

那为什么不这样呢?

Prelude Data.Char> map toUpper . (++) "sdfsd" "dfgfdg"

<interactive>:1:14:
    Couldn't match expected type `a -> [Char]'
           against inferred type `[Char]'
    In the second argument of `(.)', namely `(++) "sdfsd" "dfgfdg"'
    In the expression: map toUpper . (++) "sdfsd" "dfgfdg"
    In the definition of `it': it = map toUpper . (++) "sdfsd" "dfgfdg"
Run Code Online (Sandbox Code Playgroud)

haskell

9
推荐指数
2
解决办法
504
查看次数

Capybara'拖放'不起作用

我在Mac上使用黄瓜/水豚/硒/火狐.所有工作都很好,除了d&d.拖放可通过drag_node.drag_to(drop_node).调用时,它不会引发任何错误,但实际的拖放从未发生过.

现在,我发现这个示例应用程序(由显然有类似问题的人编写)证明了这个问题,而不是复制粘贴的碎片.

然而谷歌却没有意识到drag_to()被打破了.据我所见.这给了我一个希望,就是我错过了一些东西而不是一个bug.那是什么?我错过了什么?一个bug?

ruby selenium ruby-on-rails cucumber capybara

9
推荐指数
2
解决办法
5955
查看次数

水豚的访问无缘无故

我们有一个用于铁轨项目的大型黄瓜套件.它都是水豚,主要是通过Firefox.

最近我们开始经历一次失败,我正在努力思考.这是它的样子:

  • 在某些时候(总是一样),capybara visit陷入试图加载页面,而capybara最终会超时寻找任何正在寻找的元素(见下面的跟踪); 其他所有功能的后续访问也会超时;
  • 如果它发生的功能独立运行,问题就会消失;
  • 如果在失败之前粘贴调试器(binding.pry),问题就会消失;
  • 当它被卡住时,如果我点击进入firefox地址栏,请求立即通过,测试继续并完成没有任何问题.

一个可能相关或不相关的细节:我们使用多个会话(capybara using_session),因此在失败时有三个firefox实例.但话说回来,有三个例子在此之前愉快地过去了.

同伴的行为出现在我队友的机器上.

rails日志中没有任何可疑之处.没有尝试通过该请求的迹象.

OSX 10.8.2,ruby 1.9.3,rails 3.2.6,sqlite3,最新的capybara/selenium.


错误堆栈跟踪:

  Timeout::Error (Timeout::Error)
  /Users/artem/.rbenv/versions/1.9.3-p194-perf/lib/ruby/1.9.1/net/protocol.rb:146:in `rescue in rbuf_fill'
  /Users/artem/.rbenv/versions/1.9.3-p194-perf/lib/ruby/1.9.1/net/protocol.rb:140:in `rbuf_fill'
  /Users/artem/.rbenv/versions/1.9.3-p194-perf/lib/ruby/1.9.1/net/protocol.rb:122:in `readuntil'
  /Users/artem/.rbenv/versions/1.9.3-p194-perf/lib/ruby/1.9.1/net/protocol.rb:132:in `readline'
  /Users/artem/.rbenv/versions/1.9.3-p194-perf/lib/ruby/1.9.1/net/http.rb:2562:in `read_status_line'
  /Users/artem/.rbenv/versions/1.9.3-p194-perf/lib/ruby/1.9.1/net/http.rb:2551:in `read_new'
  /Users/artem/.rbenv/versions/1.9.3-p194-perf/lib/ruby/1.9.1/net/http.rb:1319:in `block in transport_request'
  /Users/artem/.rbenv/versions/1.9.3-p194-perf/lib/ruby/1.9.1/net/http.rb:1316:in `catch'
  /Users/artem/.rbenv/versions/1.9.3-p194-perf/lib/ruby/1.9.1/net/http.rb:1316:in `transport_request'
  /Users/artem/.rbenv/versions/1.9.3-p194-perf/lib/ruby/1.9.1/net/http.rb:1293:in `request'
  /Users/artem/.rbenv/versions/1.9.3-p194-perf/lib/ruby/1.9.1/net/http.rb:1286:in `block in request'
  /Users/artem/.rbenv/versions/1.9.3-p194-perf/lib/ruby/1.9.1/net/http.rb:745:in `start'
  /Users/artem/.rbenv/versions/1.9.3-p194-perf/lib/ruby/1.9.1/net/http.rb:1284:in `request'
  (eval):2:in `has_css?'
  ./features/step_definitions/home_page_steps.rb:70:in `/^I am taken to the products page on the retailer site$/'
  features/home_page.feature:21:in `Then I am taken to the products page on the retailer site' …
Run Code Online (Sandbox Code Playgroud)

selenium ruby-on-rails cucumber capybara

9
推荐指数
1
解决办法
1605
查看次数

如何让黄瓜显示完整(rails)错误信息?

似乎cuke没有显示完整的错误消息(至少在模板中出现问题时),这使得很难找到问题.

以下是它输出的一些错误:

 
...
    And I am on checkout page                                   # features/step_definitions/webrat_steps.rb:6
      You have a nil object when you didn't expect it!
      The error occurred while evaluating nil.items (ActionView::TemplateError)
      features/manage_orders.feature:9:in `And I am on checkout page'
...

以下是rails在浏览器中重现相同问题时显示的内容:

Showing app/views/cart/show.erb where line #46 raised:

You have a nil object when you didn't expect it!
The error occurred while evaluating nil.items

Extracted source (around line #46):

43: </script>
44: 
45: <% ths = %w{th_title th_price th_subtotal th_quantity}.collect {|th| t th.intern} %>
46: …
Run Code Online (Sandbox Code Playgroud)

testing integration-testing ruby-on-rails cucumber

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

ruby hash autovivification(facets)

这是一个聪明的技巧,在ruby中启用哈希自动修复(取自facet):

  # File lib/core/facets/hash/autonew.rb, line 19
  def self.autonew(*args)
    leet = lambda { |hsh, key| hsh[key] = new( &leet ) }
    new(*args,&leet)
  end
Run Code Online (Sandbox Code Playgroud)

虽然它有效(当然),但我发现我无法弄清楚这两个衬垫是如何做到的.

leet被置为默认值.所以,然后只是h['new_key']以某种方式访问它,并创建'new_key' => {}

现在,我希望h['new_key']返回默认值对象而不是评估它.也就是说,'new_key' => {}不会自动创建.那么leet实际上是如何被调用的呢?特别是有两个参数?

ruby

8
推荐指数
2
解决办法
2464
查看次数

如何获取整个文档的文本内容?

我正在构建Chrome扩展程序,在某些时候应该确定当前页面语言.为了做到这一点,我的计划是提取页面的文本内容(或至少部分内容)并将其传递给翻译API.然而,我找不到任何直接的方式来获取所有textNode的文件.

有一个备份计划是递归分析,$('body').contents()直到有足够的文本内容,但感觉有点不稳定.也许有更好的方法?


注意:Chrome扩展程序API允许您的脚本访问用户页面dom,就好像它是它的一部分一样.

javascript jquery google-chrome google-chrome-extension

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

TMUX:如何在启动shell命令时停止新窗口?

在tmux命令模式下,以下内容创建新窗口并在其中打开vim:

:new-window vim
Run Code Online (Sandbox Code Playgroud)

退出vim时,窗口也会关闭.有没有办法让它留下来?

shell tmux

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

Vim:有没有办法'隐藏'vim来看底层外壳?

像缓冲切换一样轻的东西.所以我可以快速跳转并返回检查最后一个!命令的输出示例.

我知道有:sh,但是你必须退出它才能回到vim,所以它有点重.

我也知道http://vim.wikia.com/wiki/Display_output_of_shell_commands_in_new_window但我并不是分裂的忠实粉丝.

vim

7
推荐指数
2
解决办法
1456
查看次数

Haskell:功能组合刚刚损坏了我的大脑

如果

*Main> :t concatMap
concatMap :: (a -> [b]) -> [a] -> [b]
Run Code Online (Sandbox Code Playgroud)

*Main> :t replicate
replicate :: Int -> a -> [a]
Run Code Online (Sandbox Code Playgroud)

那怎么办呢?

*Main> :t concatMap . replicate
concatMap . replicate :: Int -> [b] -> [b]
Run Code Online (Sandbox Code Playgroud)

给定:

*Main> :t (.)
(.) :: (b -> c) -> (a -> b) -> a -> c
Run Code Online (Sandbox Code Playgroud)

我的意思是,我对函数组合的理解是replicate应该返回任何concatMap期望作为参数才能(.)工作.但事实并非如此.那捕获的是什么?

haskell

7
推荐指数
2
解决办法
363
查看次数

在git中获取提交标记

Gitk习惯向我展示Tags:,Follows:和Precedes:for commit.如何从命令行获取相同的信息?

git

6
推荐指数
2
解决办法
482
查看次数