小编Jus*_*rce的帖子

JSLint:使用命名参数

所以我在bit.ly/jqsource上提供最新版本的jQuery上运行JSLint.我让测试尽可能松散,但我仍然会遇到错误.其中一个是第327行的"使用命名参数":

target = arguments[0] || {},

这是什么意思?即便是这篇博文也不提供信息.

jquery jslint

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

为什么Ruby中的FixNum#to_s方法只接受2到36的基数?

我查看了文档,甚至偷看了C源代码,我不明白为什么他们将接受的基数限制在2..36.有人知道吗?

ruby radix

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

为什么不能用Ruby声明方法中的常量?

考虑以下情况,StubFoo是Foo的存根,我希望将其用于某些测试.

class Runner

  def run
      Foo = StubFoo
      foo = Foo.new
      # using Foo...
  end

end
Run Code Online (Sandbox Code Playgroud)

这会生成以下错误消息: Dynamic constant assignment

然而,在RSpec我可以做以下工作,这是有效的,并且完全合法:

it "should be an example" do
  Foo = StubFoo
  foo = Foo.new
  foo.to_s.should == "I am stubbed!"
end
Run Code Online (Sandbox Code Playgroud)

关于这一点的一些问题.

  • 为什么这适用于RSpec测试用例,而不是上述方法?
  • 据我所知,"它"只是RSpec中的一种方法,但我能够在"方法"中重新声明一个常量.

我在使用模拟框架之前做这个,纯粹想知道如何在Ruby中进行模拟,存根等等.我听说动态语言更容易模拟/存根,并且互联网上有指南,其中简单的类重新分配如上所述.根据我的研究,在Ruby中,不可能在方法中声明常量,但我如上所述会感到困惑.

编辑

对,这开始变得更有意义了.我已经更新了run,现在正在使用const_set.

  def run
      old = Foo
      self.class.const_set(:Foo, StubFoo)
      foo = Foo.new
      puts foo.to_s
      self.class.const_set(:Foo, old)
      foo = Foo.new
      puts foo.to_s
  end
Run Code Online (Sandbox Code Playgroud)

这会产生一个警告,然而,这是什么/如何模拟框架在Ruby中工作?显然更优雅,功能齐全,但他们只是压制这个警告?

ruby constants

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

将行尾注释添加到vim语法

并非Vim中的每个命令都允许您添加行尾注释.有时"它作为一个参数是有效的,所以它是模棱两可的.但是,如果插入管道,命令将结束,您可以插入注释.因此,您实际上可以在vim中实现可靠的行尾注释:

noremap ' ` |" Use single quote as alternate range key
Run Code Online (Sandbox Code Playgroud)

干净吧?但该syntax/vim.vim文件并未将此视为行尾注释.我如何告诉Vim识别这种语法?

我发现这个syntax/vim.vim:

syn match   vimLineComment  +^[ \t:]*".*$+  contains=@vimCommentGroup,vimCommentString,vimCommentTitle
Run Code Online (Sandbox Code Playgroud)

我尝试将这样的东西加到我身上~/.vimrc,但没有效果.VimScript很难.:/

syntax match vimLineComment '|".*$+'
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

syntax vim comments

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

标签 统计

ruby ×2

comments ×1

constants ×1

jquery ×1

jslint ×1

radix ×1

syntax ×1

vim ×1