问题标签 [ruby-block]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
576 浏览

ruby-on-rails-4 - 需要 rest-client 到 Chef 中的模块

我需要将 res-client 包含到我的模块中才能使用 RestClient::Resource。

我在 Chef 配方(ruby_block 资源)中使用模块中的方法。

当我的 ruby​​_block 资源尝试在模块中运行该方法时,它会输出此错误:

错误:无法加载此类文件--rest-client

以下是我位于库文件夹中的模块:

以下是调用模块中函数的资源:

这只是我食谱中的几个食谱之一。此配方在目标节点几乎准备好并且“捆绑安装”已在目标节点上运行后运行。

我还在目标节点中安装了rest-client。我在 ruby​​_block 资源之前尝试了以下每个资源:

我的问题是如何包含“rest-client”并在厨师食谱中使用它?

0 投票
1 回答
346 浏览

mysql - Chef ruby​​_block ShellOut mysql 结果标准输出永远为空

有下一个案例:

期望 test4 将结果作为 test3 返回

我想也许mysql不会将结果返回到stdout,然后在哪里以及如何获得结果

PS我知道我可以用来做这些事情的ruby gem mysql2,但老实说没有时间实现这样的事情只是为了得到一个简单的SQL结果,我也尝试过没有--silent和--skip的运行命令-column-names 标志,这也无济于事。

0 投票
0 回答
109 浏览

chef-infra - Chef set node attribute value from a regex matching

I am trying to set node attribute with sub string from a file, but I am not able to achieve that successfully.

Content of #{ENV['TEMP']}\fullname.txt is

And I want to assign only "King Arthur" to node attribute node.default[user_name]

This is the ruby_block I am trying

Nothing gets assigned to this node attribute.

0 投票
1 回答
634 浏览

ruby - 模块或类中的 Ruby 块

Ruby 中的块可以写在类或模块中吗?根据文档,可以从使用 yield 的方法调用块......即它也应该可以从类中的方法调用。但是对于以下代码,因为我收到以下错误:

$ ruby​​ course1.rb Traceback(最近一次调用最后一次):2:来自 course1.rb:1:in <main>' 1: from lesson1.rb:2:in' course1.rb:9:in <class:Sample>': undefined methodsay_hi' for M1::Sample:Class (NoMethodError)

文件名:lesson1.rb

0 投票
1 回答
252 浏览

ruby - ruby_block 厨师资源中无法逃脱美元符号

我正在编写一个运行 sql 命令的厨师食谱。

但是当我检查日志时,它并没有运行 SQL 命令。它运行,

似乎它正在尝试输入 $DATABASE 的值。我试过使用反斜杠来转义 $. 我用过双美元符号。我尝试将 SQL 放入变量中,但它仍然没有运行正确的 SQL。有没有不同的方法来逃避美元符号?

编辑:使用双反斜杠或三重反斜杠失败,

0 投票
2 回答
404 浏览

ruby - `block_given?` 是否呈现 `&block` 参数可选?

我对以下内容感到满意:

所以我学会了将块(和过程)与yield关键字分开。

但是,我遇到了以下代码:

当我在 irb 中执行此代码时,参数&block似乎无关紧要:

并执行以下操作:

&block由 in 呈现为可选block_given?

0 投票
1 回答
76 浏览

ruby - Ruby:如何使变量在块内的方法内可见?

下面的代码给了我 NameError: undefined local variable or method `dir' extract_snapshots方法

该代码旨在从视频中提取快照,将它们存储在创建的临时目录中,将快照发送到服务并在之后删除目录。

我认为,该dir变量应该在extract_snapshotssend_snapshots中可见,因为它处于同一级别。但这不在这些方法的范围内。是否可以在不执行以下操作的情况下使dir变量可见:

?

0 投票
1 回答
202 浏览

ruby-on-rails - Ruby 块作为用于在 public_send 中喷溅的数组元素

我正在尝试使用元编程来构建一个通用方法,其中它使用methods 来array操作send对象splat,以下是工作片段:

到目前为止它工作得很好,直到我们决定添加另一个数据类型并且它需要调用方法 on array,例如

现在我被卡住了,因为它是一个障碍。从技术上讲,以下代码工作正常:

但是将其添加block到数组中会引发错误

我知道我可以创建一个proc并用 amp 调用它,&但我希望你明白它正在失去一致性,我需要一些可以与splat操作员一起使用的东西,如使用定义的那样#define_method

我现在没有想法,请帮助。

0 投票
1 回答
46 浏览

ruby-on-rails - Rails helper_method 可以像在相应视图中调用它一样使用 yield 吗?

我有以下手风琴生成器,当直接包含在视图中时可以正常工作:

现在我想通过以下方式实现更干净的实现:

  • 移动collapser到匹配的控制器
  • generic_collapser(name, parent)一个
    • 在代码库的其他部分可以更广泛地访问它
    • 这个特定的折叠器可以实现为调用generic_collapeser(name, 'accordion_id')

但是我坚持第一步,因为我无法正确处理上下文更改。首先,tag不再可访问,但简单地分配tag = view_context.tag似乎可以完成这项工作。但是,我没有找到转置yield语句的方法。我尝试了以下

  • 保持tag.div(class: 'uncode_text_column') { yield }
  • 利用tag.div(class: 'uncode_text_column') { view_contex{yield} }
  • tag.div(class: 'uncode_text_column') { view_contex(&block) }一起使用def collapser(name, &block)

但没有人给出预期的结果。

对好的资源的提示以更好地理解view_contextyield块管理也将受到欢迎,尤其是带有练习的教程。

Ruby 中的 &block 是什么?它是如何在这里通过方法传递的?

0 投票
1 回答
216 浏览

ruby - 为什么将块参数传递给 ruby​​ 中的函数?

我不清楚为什么在调用函数时需要传递块参数。为什么不直接作为函数参数传入,块参数会发生什么,它们是如何传递和使用的?