Tag: 建设者

Rails 3 / Cucumber问题:“…已激活构建器3.0.0,但您的Gemfile需要构建器2.1.2”

我已经使用黄瓜毫无困难地使用Rails 3了一段时间,但是经过今天的一大堆修补(包括gem清理),每当我运行“黄瓜function”时我都会收到以下错误 您已经激活了构建器3.0.0,但您的Gemfile需要构建器2.1.2。 考虑使用bundle exec。 (gem:: LoadError) 在我的机器上的多个铁轨项目中尝试过 – 所有这些都受到影响。 不太确定如何解决这个问题 – 尝试安装2.1.2并在gemfile中指定它,但没有快乐。 “捆绑exec黄瓜function”确实有效,但它似乎与自动测试没有很好的配合。 关于我所做的事情(以及更好的解决方法)的任何建议都非常感激。

Nokogiri构建器在巨大的XML上表现?

我需要构建一个大约1-50 MB的巨大XML文件。 我认为使用构建器会足够有效,而且有点。 问题是,在程序到达最后一行后它不会立即结束,但Ruby仍在做几秒钟的事情,可能是垃圾收集? 之后程序终于结束了。 举一个真实的例子,我测量了构建XML文件的时间。 在构建XML时,它输出55秒(后面有一个数据库,所以需要很长时间),但是Ruby仍然会处理大约15秒钟,处理器就会变得疯狂。 伪/实际代码如下: … builder = Nokogiri::XML::Builder.with(doc) do |xml| build_node(xml) end … def build_node(xml) … xml[“#{namespace}”] if namespace xml.send(“#{elem_name}”, attrs_hash) do |elem_xml| … if has_children if type case type when XML::TextContent::PLAIN elem_xml.text text_content when XML::TextContent::COMMENT elem_xml.comment text_content when XML::TextContent::CDATA elem_xml.cdata text_content end else build_node(elem_xml) end end end end 请注意,我使用自己的类结构使用不同的方法,并且构建的速度是相同的,但在最后一行程序通常结束,但现在我被迫使用Nokogiri所以我必须找到一个解决方案。 在构建XML之后,我可以做些什么来避免X秒长的开销? […]