我的设置有一些奇怪的行为,我似乎无法缩小范围.
我在我的shell中使用tab完成没有任何问题(我的shell是zsh).我遇到的问题是在发出git命令后关于标签完成.
示例1(工作正常):
我创建了一个新目录,并将其更改为git init.然后我touch hello.rb.如果我这样做git add <tab>会将其更改为git add hello.rb.
示例2(不起作用):
我在一个真的不是很大的rails应用程序中,如果我试图以git add G<tab>它将拉动我的意图运行Gemfile,它只是挂起并挂起,直到我用ctrl-c哪个输出杀死它:
Killed by signal in __git_complete_index_file after 159s
Run Code Online (Sandbox Code Playgroud)
在zsh我正在使用:
# completion
autoload -U compinit
compinit
Run Code Online (Sandbox Code Playgroud)
其他人遇到过这个问题吗?我可以解决它,但我必须做错事,我不确定在哪里看.
事物的版本:
git version 2.1.2
zsh 5.0.7
iTerm2 Build 2.0.0.20141103
Run Code Online (Sandbox Code Playgroud)
更新:
Git v 2.2.0修复了这个问题,所以只要你遇到这个问题就升级.
我是编程尝试使用RVM添加Ruby 2.2并接收以下错误的新手.我已经运行rvm get stable并尝试重新安装,但得到了同样的错误.
$ rvm reinstall ruby-2.2.0
Searching for binary rubies, this might take some time.
No binary rubies available for: osx/10.10/x86_64/ruby-2.2.0.
Continuing with compilation. Please read 'rvm help mount' to get more information on binary rubies.
Checking requirements for osx.
Installing requirements for osx.
Updating system.....
Installing required packages: autoconf, automake, libtool, pkg-config, libyaml, readline, libksba, openssl........
Certificates in '/usr/local/etc/openssl/cert.pem' are already up to date.
Requirements installation successful.
Installing Ruby from source to: /usr/local/rvm/rubies/ruby-2.2.0, this may take a …Run Code Online (Sandbox Code Playgroud) 因为我在一段时间后从我的提示中被启动,所以我无法使用Unicorn的pry.这是一个快速概述:
在控制器中的自定义操作中,我有:
def assign
binding.pry
end
Run Code Online (Sandbox Code Playgroud)
走这条路是没问题的,我甚至得到了熟悉的pry提示:
8: def assign
9:
=> 10: binding.pry
11: end
[1] pry(#<RolesController>)>
Run Code Online (Sandbox Code Playgroud)
经过大约一分钟的时间后,我得到了这个让我从撬动提示中解脱出来:
[3] pry(#<RolesController>)> E, [2014-08-21T16:29:01.698472 #4780] ERROR -- : worker=0 PID:4852 timeout (61s > 60s), killing
E, [2014-08-21T16:29:01.721420 #4780] ERROR -- : reaped #<Process::Status: pid 4852 SIGKILL (signal 9)> worker=0
I, [2014-08-21T16:29:01.745491 #5109] INFO -- : worker=0 ready
Run Code Online (Sandbox Code Playgroud)
有没有办法在撬时不杀死进程?
我在Heroku上构建了一个RoR应用程序,该应用程序必须在Docker容器中运行。为此,我使用了官方的Dockerfile。由于Heroku非常常见,因此我需要一些附加组件才能使该应用程序完全运行。在生产中,该变量DATABASE_URL在我的应用程序中可用。但是,如果我尝试使用环境变量的其他附加组件(在我的情况下为Mailtrap),则在运行时不会将变量复制到实例中。
所以我的问题很简单:在Heroku上执行时,如何使Docker实例知道环境变量?
您可能会问,我已经知道我们可以在中指定环境指令docker-compose.yml。我想避免这种情况,以便能够通过项目存储库共享此文件。
我有一个类,它暴露了一个字符串值和一个int值(分别是一个命令输出和退出代码).除了通过to_s和暴露它们之外to_i,我也在使用,to_str并且to_int像这样:
class Status
def to_s
@output
end
alias :to_str :to_s
def to_i
@status.exitstatus
end
alias :to_int :to_i
end
Run Code Online (Sandbox Code Playgroud)
我的想法是能够在尽可能多的情况下使用此对象.将它强制转换为字符串或int会增加可用性.例如,我可以用字符串连接对象:
a_string = "Output was: " + results
Run Code Online (Sandbox Code Playgroud)
(我想用这个作为int强制的例子,但Fixnum.+不喜欢它,所以它实际上不起作用:)
an_int = 1 + results
Run Code Online (Sandbox Code Playgroud)
到目前为止,我所读过的所有内容都表示,这可能是一件"糟糕"的事情.常见的主题是这样的:" 当to_s/ to_i您的对象可以表示为字符串/ int时,to_str//to_int仅当您的对象基本上是字符串/ int时".
毫无疑问,我的课程不是"基本上"字符串或整数.但是我对这个规则有一些问题:
Float.to_int很多提到的.故事说,由于浮点数始终具有整数分量,因此to_int是一种有效的方法.但是,我认为这是虚假的:浮点数不是整数(因为它有一个非整数组件),所以试图将它们的"类型"等同起来并没有多大意义.你可以合法地将 Float 转换为整数(通过截断),但我可以说我也可以将我的状态转换为整数(通过"截断"所有非退出代码信息). …我在Ubuntu 14.04上的Docker容器中有一个Ruby on Rails应用程序.我使用Dokku设置部署,但我不确定如何让我的cron作业正常工作.
目前我正在使用every gem,它允许我做一些简单的事情:
every 5.minutes do
runner 'MyModel.run_something'
end
Run Code Online (Sandbox Code Playgroud)
问题是我认为每次使用git push dokku master它部署时都会重置容器并将其设置回默认设置,从而删除所有我的cron时间表.
所以我想也许cron调度需要在容器外部而在VM级别.
无论我做什么,我目前都没有看到任何cron工作正在运行.这是当我crontab -l在ssh'd 时运行时发生的事情:
root@dashboard:~# crontab -l
no crontab for root
Run Code Online (Sandbox Code Playgroud)
我对容器虚拟化很陌生,所以如果我跳过了关键部分,我很抱歉,但我很难过.
我有一个rake文件设置如下:
require 'rake'
namespace :setup do
puts "I'm in setup"
task :create do
puts "I'm in create"
end
end
task :run do
puts "I'm in run"
end
Run Code Online (Sandbox Code Playgroud)
如果我跑,rake setup:create我得到预期的:
I'm in setup
I'm in create
Run Code Online (Sandbox Code Playgroud)
但是,如果我跑,rake run我得到:
I'm in setup
I'm in run
Run Code Online (Sandbox Code Playgroud)
从我在指南中可以看出,这是出乎意料的,如下所述:
查找任务名称时,rake将从当前命名空间开始,并尝试在那里找到该名称.如果它无法在当前命名空间中找到名称,它将搜索父命名空间,直到找到匹配项(如果没有匹配项则发生错误).
不会假设rake从当前命名空间开始,然后继续寻找某些东西.在我的例子中,我没有提供当前的名称,但它跳进去setup,尽管我给的是它run.
我错过了什么?
我还是新手,虽然我在SO上看到了类似的多个问题,但是我无法重现一些OP所要求的输出(这个答案看起来最接近).
我正在做一些相当简单的事情,我正在使用usersmongo收集一个集合,而我想做的就是将_id值作为字符串返回.我最终会把这些推_id到NSQ,但这是我的首要任务.
var users []bson.M
err = sess.DB("db_name").C("users").Find(bson.M{}).All(&users)
if err != nil {
os.Exit(1)
}
for _, user := range users {
fmt.Printf("%+v \n", user["_id"])
}
Run Code Online (Sandbox Code Playgroud)
今天这个输出:
ObjectIdHex("537f700b537461b70c5f0000")
ObjectIdHex("537f700b537461b70c600000")
ObjectIdHex("537f700b537461b70c610000")
ObjectIdHex("537f700b537461b70c620000")
Run Code Online (Sandbox Code Playgroud)
我浏览了bson #m docs,并认为我正确使用地图以增加价值.所以我认为,我的查询结果如下:
{"_id" : ObjectIdHex("Some_ID") }
Run Code Online (Sandbox Code Playgroud)
但是如果ObjectIdHex("ID")是值,我如何简单地在其中获取字符串.
如此理想的输出:
"537f700b537461b70c5f0000"
"537f700b537461b70c600000"
"537f700b537461b70c610000"
"537f700b537461b70c620000"
Run Code Online (Sandbox Code Playgroud) 我正在使用 nokogiri 解析一个 html 文件并对其进行修改,然后将其输出到这样的文件中:
htext= File.open(inputOpts.html_file).read
h_doc = Nokogiri::HTML(htext)
File.open(outputfile, 'w+') do |file|
file.write(h_doc)
end
Run Code Online (Sandbox Code Playgroud)
输出文件包含第一行:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
Run Code Online (Sandbox Code Playgroud)
我不想要这个,因为我将 html 嵌入到不同的文件中,而这个标签导致了问题。
问题是如何从 h_doc 中删除它。
<% @players.each do |player| %>
<% if rad_win == true %>
<% @mywin = "Radiant Win" %>
<% puts "1111111" %>
<% elsif rad_win == false %>
<% @mywin = "Radiant Loss" %>
<% puts "222222" %>
<% else %>
<% @mywin = "Loss" %>
<% end %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
在我的 test.html.erb 中,我有以下代码。我可以看到 rad_win 为 false,但该代码块未执行。即没有22222222
我有一个看起来像这样的方法:
def get_endpoint(params: {})
end
Run Code Online (Sandbox Code Playgroud)
我希望此方法的调用者能够传递一些可选参数.
我想写YARD文档来支持这个,如果我没有使用关键字参数,我会使用@option 声明.
但是,YARD自己的文档说:
注意:对于关键字参数,请使用@param,而不是@option.
所以我尝试过:
# @param params [Hash] options to be used in request
# @param date [String] date in YYYYMMDD
# @param start_time [Integer] start_time in Epoch
Run Code Online (Sandbox Code Playgroud)
这失败了,因为YARD只看到params我正在使用的关键字参数.确切的失败是:
@param tag has unknown parameter name: date
Run Code Online (Sandbox Code Playgroud)
那么我尝试使用@option替换为param关键字的语法:
# @param params [Hash] options to be used in request
# @param params [String] :date in YYYYMMDD
# @param params [Integer] :start_time in Epoch
Run Code Online (Sandbox Code Playgroud)
这会导致不同的错误:
@param tag has duplicate …Run Code Online (Sandbox Code Playgroud) 我有一系列 ID 和组织,如下所示:
var ids = ['1','2', '3'];
var orgs =
[
{ name: "Org 1", id: 1 },
{ name: "Org 2", id: 2 },
{ name: "Org 3", id: 2 }
]
Run Code Online (Sandbox Code Playgroud)
我想遍历这些以输出如下内容:
{
1: [
{name: "Org 1", id: 1}
],
2: [
{name: "Org 2", id: 2},
{name: "Org 3", id: 2}
]
}
Run Code Online (Sandbox Code Playgroud)
我试过这个没有成功:
var results = orgs.forEach(function (org) {
if (results[org.id]) {
results.push(org)
} else {
results[org.id] = [org]
};
});
Run Code Online (Sandbox Code Playgroud)