Ruby代码块与javascript匿名函数distiction

我正在做我的第一次实习,这很好,我正在努力跟上其他程序员所谈论的一切。 一位高级程序员前几天告诉我,Ruby将代码块直接传递给函数的能力比在JavaScript中使用匿名函数要好得多。 我的理解是JS匿名函数完全相同 – 只需通过变量作为参数传递代码块。 是否存在代码块参数优于匿名函数的真实示例? 或者仅仅是一种语言优先于另一种语言,代码可读性/可重用性问题,还是我只是误解了其他一些基本概念? 这是一个关于某种任务使用哪种语言的相对优点的传递对话,而不是具体的工作问题,这也许是为什么我感到困惑。 我用Google搜索了几个简单的代码块示例,并且在JS中实现它们没什么问题。 期待有关此事的任何意见(匿名或其他)。

基于数组生成文件列表

我尝试了一些事情,但本周我觉得我的大脑正在度假,我需要完成这件事……所以我希望有人可以帮助我。 我需要根据保存到数据库中的哈希创建一个文件列表。 看起来像这样: [‘file1’, ‘dir1/file2’, ‘dir1/subdir1/file3’] 输出应该是这样的: 文件1 DIR1 文件2 subdir1 文件3 在HTML中,最喜欢这样(用js扩展它以折叠和多选) file1 dir1 file2 subdir1 file3 我正在使用Ruby on Rails并试图在RJS模板中实现这一点。 但这并不重要。 你也可以帮我一些详细的伪代码。 有人知道如何解决这个问题吗? 编辑 感谢所有人提供这些解决方案。 列表工作,我将其扩展为可折叠的解决方案,以显示/隐藏目录内容。 我仍然有一个问题:代码的目的是在同步条目后面的复选框中有完整的文件路径。 基于sris的解决方案,我只能读取当前文件并且它是subs,但不能读取root的整个路径。 为了更好地理解: 目前: [x] dir1 [x] dir2 [x] file1 给我 显示相同值的复选框,例如[x] file1的“file1”。 但我需要的是一个完整的路径,例如[x] file1的“dir1 / dir2 / file1”。 有人有另外一个提示如何添加这个?

如何从我的c扩展中访问ruby数组?

我收到了这个错误 ev.c:11: error: subscripted value is neither array nor pointer 这条线 printf(“%d\n”, pairs[0][0]); 在这段代码中 static VALUE EV; static VALUE PairCounter; static VALUE sort_pairs_2(VALUE self) { VALUE pairs; pairs = rb_ivar_get(self, rb_intern(“pairs”)); printf(“%d\n”, pairs[0][0]); return Qnil; } void Init_ev() { rb_eval_string(“require ‘./lib/ev/pair_counter'”); VALUE PairCounter = rb_path2class(“EV::PairCounter”); rb_define_method(PairCounter, “sort_pairs_2”, sort_pairs_2, 0); } 我是否正确使用自我,并且rb_ivar_get实际上并未指向PairCounter类?

如何通过rails上的ruby中的websocket发送保活包

我想寄一个 “让客户保持活力” 我的websocket连接每30秒发送一条消息。 这是我在websocket初始化程序中的代码如下所示: ws = WebSocket::Client::Simple.connect ‘wss://bitcoin.toshi.io/’ ws.on :message do |msg| rawJson = msg.data message_response = JSON.parse(rawJson) end ws.on :open do ws.send “{\”subscribe\”:\”blocks\”}” end ws.on :close do |e| puts “WEBSOCKET HAS CLOSED #{e}” exit 1 end ws.on :error do |e| puts “WEBSOCKET ERROR #{e}” end 没有任何“保持活力”,连接将在大约45秒内关闭。 我应该如何发送’心跳’数据包? 似乎连接由他们的服务器关闭,而不是我的。

从Ruby或PHP或Cocoa访问Mac应用程序

我想从Ruby中访问几个不同的Mac OS X应用程序,但我会选择PHP。 应用程序是Elgato的turbo.264和Apple的iTunes。 两者都定义了Applescript Libraries,允许我从Applescript做我想做的事情,但我不想在Applescript中做到这一点。 如果我不能在Ruby或PHP中这样做,也许我可以在目标C / Cocoa中创建它并创建一些我可以从Ruby调用的包装器。 这有可能吗? 似乎这些方法在Applescript中可用,它们应该以其他语言提供,我几乎找不到任何东西。

capybara-webkit:自动保存RSpec测试失败的屏幕截图

如果使用带有Rspec的capybara-webkit测试失败,如何自动保存html和屏幕截图? 如何在RSpec测试失败时执行回调。 加分:如何避免出现以下错误: Capybara::Driver::Webkit::WebkitInvalidResponseError 执行此代码时: require ‘capybara/util/save_and_open_page’ path = “/#{Time.now.strftime(‘%Y-%m-%d-%H-%M-%S’)}” png = Capybara.save_and_open_page_path + “#{path}.png” page.driver.render Rails.root.join(png)

是`respond_to_missing?’的第二个参数对任何事情都有用吗?

在Ruby中使用method_missing时,定义respond_to_missing? 几乎总是一个好主意 respond_to_missing? 同样。 respond_to_missing? 有两个论点; 我们正在检查的方法的名称( symbol ),以及一个布尔值,它指示我们是否应该在check( include_all )中包含私有方法。 现在这就是我所困惑的: method_missing不会接受任何可能指示它是否应该调用私有方法的参数,如respond_to_missing? 确实。 此外,无论原始方法调用是在公共或私有上下文中,并且无论respond_to_missing?是什么,都会调用method_missing respond_to_missing? 在适当的上下文中返回给定方法。 因此, method_missing所有操作都可以公开访问。 如果是这种情况,那么第二个参数对于respond_to_missing?目的是什么respond_to_missing? ( include_all )服务? 给定对象是否响应丢失的方法不会受到调用缺失方法的上下文的影响,那么为什么甚至会有这个参数呢?

用于解析ERB文件的库

我试图解析,而不是评估,以Hpricot / Nokogiri类型方式导轨ERB文件。 我试图解析的文件包含混合了使用ERB生成的动态内容的HTML片段(标准的rails视图文件)我正在寻找一个不仅会解析周围内容的库,就像Hpricot或Nokogiri那样,但也会对待ERB符号,<%,<%=等,就好像它们是html / xml标签一样。 理想情况下,我会回到DOM结构,其中<%,<%= etc符号将作为自己的节点类型包含在内。 我知道可以使用正则表达式一起破解某些东西,但我正在寻找一些更可靠的东西,因为我正在开发一个工具,我需要在一个非常大的视图代码库上运行,其中包含html内容和erb内容是重要的。 例如,内容如: 等等等等等等 我的精彩文字 将返回一个树结构,如: 根 – text_node(等等等等) – 元素(div) – text_node(我的好文字) – erb_node(<%=)

如何阅读别人的论坛

我的朋友有一个论坛,里面有很多包含信息的post。 有时她想查看她论坛中的post,并得出结论。 目前,她通过点击她的论坛来评论post,并生成一个不一定准确的数据图片(在她的大脑中),她从中得出结论。 我今天的想法是,我可能会发出一个快速的Ruby脚本来解析必要的HTML,让她真正了解数据的含义。 我今天第一次使用Ruby的net / http库,我遇到了一个问题。 虽然我的浏览器没有查看我朋友的论坛,但似乎Net :: HTTP.new(“forumname.net”)方法产生以下错误: 无法建立连接,因为目标计算机主动拒绝它。 – 连接(2) 谷歌搜索这个错误,我已经知道它与MySQL(或类似的东西)有关,不希望像我这样的爱管闲事的人在那里远程探索:出于安全原因。 这对我来说很有意义,但它让我想知道:我的浏览器是如何在我朋友的论坛上找到的,但我的小Ruby脚本没有任何戳戳权利。 我的脚本是否有某种方式告诉服务器它不是威胁? 我只想要阅读权而不是写权利? 多谢你们, ž。

Ruby:如何将数据数组转换为hash和json格式?

我是Ruby数组和哈希操作的新手。 我该怎么做这个简单的转换? array = [#, #, #] json中所需的输出: [{id : 1, car : ‘red’} , {id:2, car :’yellow’} ,{id:3 , car: “green”}] 有人有任何提示吗?