小编Pis*_*tos的帖子

如何在Perl中创建嵌套哈希作为常量?

我想在Perl中做,相当于以下Ruby代码:

class Foo
  MY_CONST = {
    'foo' => 'bar',
    'baz' => {
      'innerbar' => 'bleh'
    },
  }

  def some_method
    a = MY_CONST[ 'foo' ]
  end

end

# In some other file which uses Foo...

b = Foo::MY_CONST[ 'baz' ][ 'innerbar' ]
Run Code Online (Sandbox Code Playgroud)

也就是说,我只想声明一个常量的嵌套哈希结构,以便在类和外部使用.如何?

perl hash constants perl-data-structures

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

Javascript 测试相当于 Ruby 的 rspec let

在 Ruby 世界中,使用 rspec,我们有一个可用的功能,称为let( https://relishapp.com/rspec/rspec-core/docs/helper-methods/let-and-let )。它的主要好处是它是惰性求值的,所以我们可以像这样编写测试:

describe Thing do
  describe "#process" do
    let(:arg) { nil }
    let(:result) { Thing.new.process(arg) }

    context "given 3" do
      let(:arg) { 3 }

      it "returns 12" do
        expect(result).to eq 12
      end
    end

    context "given 7" do
      let(:arg) { 7 }

      it "returns 42" do
        expect(result).to eq 42
      end
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

关键是我们不必有一条线来计算result每个it块的内部。

我的问题是:在 Javascript 世界中,是否有提供等效功能的库或框架?

我习惯用 Jasmine 写作,但我不喜欢它,如果它有我正在寻找的这种懒惰的评估功能,我可以使用 Mocha 或其他东西。

我怀疑有一种方法可以使用beforeEachfunction () {...}声明之类的冗长卷积来做到这一点,但理想情况下提出的解决方案应该有一个漂亮、简洁和优雅的语法。

我知道 …

javascript testing

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

如何使用rake为特定插件生成rDoc

好吧,我正在尝试为回形针生成rDoc,但是rake任务在它到达之前会阻塞另一个插件,所以这是不可能的:

rake doc:plugins
Run Code Online (Sandbox Code Playgroud)

我可以去修复破碎的插件,但我很忙,很懒,所以我只想生成回形针的文档.有没有办法做到这一点?

ruby rake ruby-on-rails rdoc

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

如何检测Gnome终端?

我正在编写一个使用F1键的控制台应用程序(求助).不幸的是,虽然Konsole(KDE)不使用此密钥,Gnome终端会这样做,因此我的应用程序无法访问F1密钥.我不认为有一种方法可以检测F1键是否已经在事物的GUI端映射(Gnome Terminal),但是如果有,那么答案将消除这个问题.:)

因此,我的下一个最好的选择是尝试检测我是否在Gnome终端内运行.有办法做到这一点吗?我主要感兴趣的是从Ruby中收集它,但如果可以通过shell或环境变量或虚拟文件系统(/ proc,/ dev等)来完成,那么这就足够了.

我希望有一个可靠的方法来做到这一点,但我可以满足于"最好的猜测"方法,比如贪图环境变量以寻找可以让我合理地假设Gnome Terminal是包装终端的线索.

额外信息:其他钥匙也被Gnome Terminal"偷走".我打算为Gnome用户显示一些关于替代密钥的信息性消息.

ruby linux terminal console gnome

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

为zsh编程自定义选项卡完成

很抱歉,如果我的谷歌功能太弱,但是:我只是想调整zsh以便我可以完成选项卡

someappname -s
Run Code Online (Sandbox Code Playgroud)

使用〜/ somedir的内容(文件名)

例如:

someapp -s f<tab>
Run Code Online (Sandbox Code Playgroud)

应该根据以〜/ somedir中的字母f开头的文件循环完成完成.所以我最终可能会得到一个命令行:"someapp -s foobar".

tabs zsh tab-completion completion

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

ffmpeg:帧的缩略图,保留纵横比,应用背景/填充/填充颜色

我已经找到了如何缩放缩略图以保持在指定的边界尺寸内,同时保持纵横比。例如,要将第 6 秒显示的帧放入 input.mp4 视频文件中,并将其缩放以适合 96x60(16:10 宽高比):

ffmpeg -y -i input.mp4 -ss 6 -vframes 1 -vf scale="'if(gt(a,16/10),96,-1)':'if(gt(a,16/10),-1,60)'" output.png

这很好,它有效。

接下来,我想做同样的事情,但如果视频的长宽比不完全是 16:10,那么我想通过执行上述转换,并填充或填充来强制输出图像的长宽比为 16:10用白色填充空间。也就是说,我希望输出就像我拍摄了一张 96x48 图像,并将其放置在 96x60 白色背景上,从而在 96x48 图像上方和下方出现白色条。

理想情况下,我不想诉诸使用其他工具或库,例如 ImageMagick。如果 ffmpeg 能自己做到这一点那就最好了。

ffmpeg

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