小编Tod*_*obs的帖子

如何使用git-archive导出特定提交?

之前我问了一个类似的问题,但回答不充分,所以我想我会在这里再问,但提供更多信息.我需要获得不同的和旧版本的git存储库,我遇到了麻烦.我试过的是

git checkout master~X 

git archive --format zip --output /full/path/to/zipfile.zip master 

git checkout master 


git checkout master~Y 

git archive --format zip --output /full/path/toDifferent/zipfile.zip master 

git checkout master 
Run Code Online (Sandbox Code Playgroud)

解压缩后,它们最终完全一样.我无法弄清楚为什么或如何解决它.

git export repository

17
推荐指数
1
解决办法
2万
查看次数

什么是受污染的物体,什么时候应该解开它们?

什么时候Ruby对象需要被污染,什么时候应该解开它们?受污染对象的概念如何使Ruby脚本以安全模式运行?任何人都可以详细说明这一点,以便用一些代码片段清楚地理解这个概念吗?

ruby taint taint-checking ruby-1.9

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

我可以在Heroku上更新单个源文件而无需重新编译slug吗?

我正在研究一个在Heroku上托管的rails项目.我想知道是否可以更新一个文件,而无需重新启动应用程序.

为什么.我有一个错误,但我无法追踪它.它在我的本地系统上完美运行,但它似乎停止在heroku处理中途.

由于没有断点,我在代码中散布状态更新.(稍后将删除)但是向rails应用程序添加一行代码就像是一个五分钟的过程.

  1. 改变档案
  2. 舞台文件到git
  3. 提交文件
  4. 推git(以上所有都很快)
  5. 等待heroku下拉应用程序,执行看起来像gem安装,或者至少是gem更新.
  6. 更改几个文件以反映本地URL
  7. 再次启动服务.

有没有办法推动git而不运行所有其他东西?也许是一个特殊的参数添加到推?



更令人烦恼的是,我的git现在有一堆检查,我不希望我的同事看到.我的目标是我自己的heroku非生产实例(仅测试),并且没有理由在全局源代码控制中包含所有这些尝试.

git ruby-on-rails heroku

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

如何并行运行命令列表?

我有一个包含我想要运行的命令行的文件.该文件包含大约2,000行.

我有8个核心可用.是否可以解析文件并启动8个进程,然后在其中一个程序完成时从文件中执行另一个进程?我希望这一直持续到文件结束.

parallel-processing bash system systems-programming

13
推荐指数
2
解决办法
2万
查看次数

当内省模块类时,"#map(&proc)"成语如何工作?

介绍成语

我发现了一个有趣但无法解释的替代方案.代码清楚地在REPL中起作用.例如:

module Foo
  class Bar
    def baz
    end
  end
end
Foo.constants.map(&Foo.method(:const_get)).grep(Class)
=> [Foo::Bar]
Run Code Online (Sandbox Code Playgroud)

但是,我并不完全理解这里使用的习语.特别是,我不理解使用&Foo,这似乎是某种闭包,或者#grep的这种特定调用如何对结果进行操作.

解析成语

到目前为止,我已经能够解析这部分内容了,但我并没有真正看到它们是如何组合在一起的.以下是我认为我对示例代码的理解.

  1. Foo.constants 返回模块常量数组作为符号.

  2. method(:const_get)使用Object#方法执行方法查找并返回闭包.

  3. Foo.method(:const_get).call :Bar 是一个闭包,它返回类中常量的限定路径.

  4. &Foo似乎是某种特殊的lambda.文档说:

    如果Proc对象由&参数给出,&参数将保留技巧.

    我不确定我是否完全理解这在特定背景下的含义.为什么选择Proc?什么"诡计",为什么这里有必要?

  5. grep(Class)正在运行#map方法的值,但其功能并不明显.

问题,重申

我真的很想完全理解这个成语.任何人都可以在这里填补空白,并解释这些部分是如何组合在一起的吗?

ruby idioms constants introspection proc

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

在JavaScript中,除非单词列在被排除的单词列表中,否则如何使用正则表达式进行匹配?

除了某些单词列表外,如何使用正则表达式匹配任何单词(\ w)?例如:

我希望匹配单词useutilize之后的任何单词,除非单词是somethingfish.

use this  <-- match
utilize that  <-- match
use something   <-- don't want to match this
utilize fish <-- don't want to match this
Run Code Online (Sandbox Code Playgroud)

如何指定我不想匹配的单词列表?

javascript regex

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

如何在不迭代元素的情况下检查字符串是否在数组中?

有没有办法检查一个字符串数组中是否存在字符串 - 没有遍历数组?

例如,给定下面的脚本,我如何正确地实现它来测试存储在变量$ test中的值是否存在于$ array中?

array=('hello' 'world' 'my' 'name' 'is' 'perseus')

#pseudo code
$test='henry'
if [$array[$test]]
   then
      do something
   else
      something else
fi
Run Code Online (Sandbox Code Playgroud)

注意

我正在使用bash 4.1.5

bash

12
推荐指数
2
解决办法
3万
查看次数

在纯ruby脚本中使用gem(不是Rails)

一个ruby文件:

gem "my-gem", git: "https://github.com/gem123.git", branch: "some-branch"
require "my-gem"

var1 = SomeGem::some_method123
puts var1
Run Code Online (Sandbox Code Playgroud)

它说Could not find 'my-gem' (>= 0) among 330 total gem(s) (Gem::LoadError).为什么不?我需要一个gem的特殊分支,不想克隆存储库.

ruby require bundler

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

如何在Rails 3.2中翻译ActiveRecord属性名称?

我的模型(用户)中有以下验证:

  validates :first_name,:length => {:minimum => 2,:maximum => 50},:format => { :with => /[a-zA-Z]+/ }
Run Code Online (Sandbox Code Playgroud)

我的yml语言环境文件中有以下内容:

 attributes:
   first_name:
     too_short: "First name is too short"
     too_long: "First name is too long"
     invalid: "First name is not valid"
Run Code Online (Sandbox Code Playgroud)

现在,如果我开始rails console,并写下以下内容:

a = User.new
a.valid?
a.errors.full_messages
Run Code Online (Sandbox Code Playgroud)

我会看到以下错误:

["First name First name is too short", "First name First name is not valid"]
Run Code Online (Sandbox Code Playgroud)

如您所见,属性名称也预先添加到字段错误中.到目前为止,在我的代码中,我已经使用了model.errors[:field],这将始终显示我在yml文件中的字符串,但我想将字符串更改为:

 attributes:
   first_name:
     too_short: " is too short"
     too_long: " is too long"
     invalid: " is not valid" …
Run Code Online (Sandbox Code Playgroud)

activerecord ruby-on-rails internationalization

11
推荐指数
1
解决办法
2万
查看次数

如何使用File#flock对独占锁进行非阻塞请求?

我该如何申请非阻塞锁?

为什么在单独尝试锁定文件时,Ruby的File#flock不能按预期工作?锁定块中的文件不是解决此问题的正确方法,因为重点是显示锁定持久锁的行为.在块中使用File#flock会在块退出时释放锁定,因此它不能正确显示问题.

File#flock以各种方式失败,尤其是在请求非阻塞锁定时.一些例子如下.

File#flock失败的例子

  • 使用多个独占锁时无限等待,因为#flock不提供超时锁定请求的方法.

    # First lock succeeds.
    f1 = File.open('foo', File::RDWR|File::CREAT, 0644)
    f1.flock(File::LOCK_EX)
    # => 0
    
    # This never returns.
    f2 = File.open('foo', File::RDWR|File::CREAT, 0644)
    f2.flock(File::LOCK_EX)
    
    Run Code Online (Sandbox Code Playgroud)
  • 在文件被独占锁定时请求非阻塞锁定会导致无效的参数异常.

    f1 = File.open('foo', File::RDWR|File::CREAT, 0644)
    f1.flock(File::LOCK_EX)
    # => 0
    
    f2 = File.open('foo', File::RDWR|File::CREAT, 0644)
    f2.flock(File::LOCK_NB)
    # => Errno::EINVAL: Invalid argument - foo
    
    Run Code Online (Sandbox Code Playgroud)
  • 文档说#flock"根据locking_constant(逻辑或下表中的值)锁定或解锁文件." 但是,Logical OR会提升Errno::EINVALErrno::EBADF取决于平台.

    f1 = File.open('foo', File::RDWR|File::CREAT, 0644)
    f1.flock(File::LOCK_EX)
    # => 0
    
    f2 = File.open('foo', File::RDWR|File::CREAT, 0644)
    f2.flock(File::LOCK_NB || File::LOCK_EX)
    # …
    Run Code Online (Sandbox Code Playgroud)

ruby locking flock fcntl

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