小编Kei*_*ett的帖子

Ruby语言中的%q,%w等定义了什么?

这么多的Ruby语言的方法,而不是语法,所以我希望能够找到%q,%w等等,定义为方法Kernel类.但是,他们不在那里.

那他们在哪里定义?他们是语言关键词吗?

ruby

30
推荐指数
3
解决办法
7858
查看次数

使用`module_function`定义模块函数与在Ruby中使用`self`定义模块函数相同吗?

定义模块函数module_functionself.在Ruby中定义模块函数相同吗?也就是说,它们是否都会导致实例和模块方法的创建?

ruby

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

如何确保Ansible shell命令在每个主机上仅执行一次?

我希望能够保证,在给定主机上成功运行了长时间运行的shell命令后,该主机上随后运行的剧本不会执行该命令。

我很高兴得知createsAnsible shell任务的选项(请参阅http://docs.ansible.com/ansible/shell_module.html);使用此命令,我可以在shell命令成功执行之后创建文件,并且在以后的运行中不再执行该命令:

- name: Install Jupiter theme
  shell: wp theme install ~/downloads/jupiter-theme.zip --activate
         && touch ~/ansible-flags/install-jupiter-theme
  args:
    creates: ~/ansible-flags/install-jupiter-theme
Run Code Online (Sandbox Code Playgroud)

如您所见,ansible-flags我的活动用户(deploy)的主目录中有一个用于这些控制文件的目录。

但是,这是一个很大的麻烦。有一个更好的方法吗?

另外,当我需要以其他用户身份运行某个步骤时,情况变得更加复杂。在这种情况下,我无权访问deploy主目录及其子目录。我当然可以授予访问权限,但这会增加更多的复杂性。您如何建议我处理这个问题?

shell ansible

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

在Rails中调用Postgres存储函数的最佳方法是什么?

我在Postgres中创建了一个函数,该函数想从我的Rails代码中调用。最好的方法是什么?我可以使用ActiveRecord方法吗?还是我需要使用SQL Arel.sql

postgresql activerecord ruby-on-rails

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

布尔选项的 Ruby OptionParser 短代码?

我正在使用 Ruby 的 OptionParser ( require 'optparse') 处理一个“详细”选项,该选项可以是 true 也可以是 false。它在代码中是这样的:

  parser.on('-v', '--[no-]verbose', 'Verbose mode') do |v|
    self.verbose = v
  end
Run Code Online (Sandbox Code Playgroud)

我支持在环境变量中指定选项(我将其内容添加到 ARGV),因此可以在该环境变量中设置详细模式,并在命令行上使用--no-verbose. 但是,我找不到用简短选项覆盖它的方法。我试过这些没有成功:

-v-
-v0
-v=0
Run Code Online (Sandbox Code Playgroud)

我在https://github.com/ruby/ruby/blob/trunk/lib/optparse.rb找到了源代码,但无法从中找出答案。

我怎样才能做到这一点?

ruby flags boolean optparse optionparser

4
推荐指数
1
解决办法
1493
查看次数

在 Lua 中自调用匿名函数时出错

我正在尝试在 Lua 中使用自调用匿名函数,并且看到了一些奇怪的行为。

这个:

(function ()
  print("self-invoking approach")
end)()

print("standard approach")
Run Code Online (Sandbox Code Playgroud)

工作正常并打印以下输出:

self-invoking approach
standard approach
Run Code Online (Sandbox Code Playgroud)

但颠倒两者:

print("standard approach")

(function ()
  print("self-invoking approach")
end)()
Run Code Online (Sandbox Code Playgroud)

导致此错误:

?  hammerspoon  ? lua temp.lua
standard approach
lua: temp.lua:1: attempt to call a nil value
stack traceback:
    temp.lua:1: in main chunk
    [C]: in ?
Run Code Online (Sandbox Code Playgroud)

奇怪的是,当代码在 Lua REPL 中运行时,只有在函数形式为 second 时才会发生失败,并且两个调用都包装在一个被调用的外部函数中:

function foo()
    print("standard approach")

    (function ()
      print("self-invoking approach")
    end)()
end

foo()
Run Code Online (Sandbox Code Playgroud)

这里发生了什么事?

lambda lua interpreter function

3
推荐指数
1
解决办法
214
查看次数

如何在一次调用中获取隐藏和非隐藏文件

我有一个隐藏(名称以...开头.)和非隐藏文件的目录,如下所示:

$ ls -a1
.
..
.hidden
not-hidden
Run Code Online (Sandbox Code Playgroud)

如何在一次通话中获得所有这些列表?

我希望Dir['*']返回所有文件,但它不会:

Dir['*']
# => ["not-hidden"]
Run Code Online (Sandbox Code Playgroud)

我能想到的最好的是:

Dir['*'] + Dir['.*']
# => ["not-hidden", ".", "..", ".hidden"]
Run Code Online (Sandbox Code Playgroud)

而且我也期望有一种方法可以使用正则表达式,但我找不到一个,并且它不可能使用select,grep因为没有调用能够同时获取隐藏和非隐藏的调用.

ruby

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

在 JavaScript 中获取给定类的所有 id 的干净简洁的方法是什么?

我需要获取给定类(例如“主菜单项”)的元素的所有元素 ID 的数组。这是我到目前为止:

Array.prototype.map.call(document.querySelectorAll(".main-menu-item"), (elem => elem.id));

有没有更干净和/或更简洁的方法来做到这一点?

javascript

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