小编ako*_*nov的帖子

在Ruby中创建子目录

我想创建一个不存在的目录的子目录,如: /foo/bar

我试过了:

Dir.mkdir("foo/bar")
Run Code Online (Sandbox Code Playgroud)

但这不起作用.

ruby

9
推荐指数
2
解决办法
3773
查看次数

如何 git cherry-pick 提交声明我们的历史包含它

我做了以下事情:

git fetch upstream
git cherry-pick xyz
Run Code Online (Sandbox Code Playgroud)

选择的提交已被干净地应用,只是在其中一个文件中它具有与我在上一次提交中已经完成的完全相同的更改,因此不会重新应用这些更改。

代码方面的一切都很好,但我希望在我的历史中拥有提交哈希。在我的历史中,它以一个新名字出现。这甚至可能吗?就我正在阅读的 git merge “ours” 策略而言,它似乎通常是可能的,但是如何为一次提交做到这一点?

我想要这个,所以以后更容易确定提交upstream有哪些我没有的。目前在 githubnetwork视图中,我认为挑选的提交是我没有的单独的东西。

附加信息:@CharlesB 所说的对我来说很有意义。但是merge -s ours魔法是怎么做的呢?在这种情况下,对我来说并不重要cherry-pick。因为我想进行的更改只有一个并且位于upstream/master. 所以只是为了尝试一下,我做了:git merge -s ours upstream/master

现在git log --graph --pretty=oneline --abbrev-commit我看到类似的东西:

*   9e8108b Merge remote-tracking branch 'mgencur/master' for better github netw
|\  
| * aa7117d Fix displaying watchers/watching for incorrect user // this commit magically appeared after merge -s ours
* | ff05f8c Fix displaying watchers/watching for incorrect user …
Run Code Online (Sandbox Code Playgroud)

git github cherry-pick git-cherry-pick

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

jinja/ansible 将字符串转换为布尔值

我需要简单的事情 - 如果变量是false或空字符串,则评估为false. 否则评估为真。

我试过了,bool(var)但我得到:

UndefinedError: 'bool' is undefined
Run Code Online (Sandbox Code Playgroud)

然后我试过了,var | bool但即使 var 不为空,它的计算结果也是false. 如何使该条件起作用?

jinja2 python-3.x ansible

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

ruby:类实例变量vs实例变量

我的想法是为那些来自java背景的人创建一个社区wiki,因为阅读了大量的解释,直到我真正尝试了几件事情并且拼图的各个部分开始找到他们的位置时,我无法理解任何事情.但我首先需要确保我做对了.从这样的背景来看,我发现这@variable可能意味着两件截然不同的事情让我非常困惑.这是一个例子:

class Test
  @ins = "gah"
  def self.ins
    puts @ins
  end

  def initialize()
    @ins = "wtf?"
  end
  def ins2
    puts @ins
  end
end
Run Code Online (Sandbox Code Playgroud)

据我所知,第一个@ins是表示类的对象的实例变量Test.第二个@ins是类对象中的实例变量Test.

现在事情开始对我有意义了.这里有几个例子:

[14] pry(main)> test.ins2
wtf?
Run Code Online (Sandbox Code Playgroud)

我们正在调用一个对象的方法,它返回对象的实例变量.

[15] pry(main)> test.ins
NoMethodError: undefined method `ins' for #<Test:0x000000017d9348 @ins="wtf?">
Run Code Online (Sandbox Code Playgroud)

我们试图通过一个对象调用一个类方法,这个方法属于类,所以我们得到了 NoMethodError

[16] pry(main)> Test.ins
gah
Run Code Online (Sandbox Code Playgroud)

我们正在调用一个类方法,因此它可以正确地看到类对象的实例变量.

[17] pry(main)> Test.ins2
NoMethodError: undefined method `ins2' for Test:Class
Run Code Online (Sandbox Code Playgroud)

我们通过类调用一个对象方法,这是不正确的抛出NoMethodError.

以上所有都是用ruby 2.0进行的.那我在问什么?

  • 我做对了吗?
  • 我的红宝石术语是否正确?
  • 在正确设计的应用程序中有意义的类实例变量的任何实际用法?或者这些只是更好的@@类变量?

ruby instance-variables class-instance-variables

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