我有一个从CLI触发的方法,它有一些明确退出或中止的逻辑路径.我发现在为此方法编写规范时,RSpec将其标记为失败,因为退出是异常.这是一个简单的例子:
def cli_method
if condition
puts "Everything's okay!"
else
puts "GTFO!"
exit
end
end
Run Code Online (Sandbox Code Playgroud)
我可以将规范包装在lambda中should raise_error(SystemExit)
,但是忽略了块内发生的任何断言.要明确:我不是在测试退出本身,而是在它之前发生的逻辑.我该如何选择这种方法呢?
我正在编写一个带有通过Thor启动的嵌入式Sinatra应用程序的库.我想挂载Sprockets::Environment
at的实例,/css
并将/js
主应用程序映射到/
.这Rack::URLMap
在config.ru
文件中很容易使用,但在这种情况下没有一个因为我以编程方式启动Sinatra应用程序Sinatra::Application.run!
.我怎样才能做到这一点?
tsc --strict
注意:下面显示的所有代码都会调用 TypeScript 。
给定一个单例对象o
:
const o = {\n foo: 1,\n bar: 2,\n baz: 3,\n};\n
Run Code Online (Sandbox Code Playgroud)\n如果我有一个在编译时无法知道的字符串值(比如来自用户输入),我想安全地使用该字符串来索引o
。我不想添加索引签名,o
因为它不是动态的或可扩展的\xe2\x80\x94它总是具有这三个键。
如果我尝试简单地使用字符串来索引o
:
const input = prompt("Enter the key you\'d like to access in `o`");\n\nif (input) {\n console.log(o[input]);\n}\n
Run Code Online (Sandbox Code Playgroud)\n正如预期的那样,TypeScript 报告此错误:
\nerror TS7053: Element implicitly has an \'any\' type because expression of type \'string\' can\'t be used to index type \'{ foo: number; bar: number; baz: number; }\'.\n No index signature …
Run Code Online (Sandbox Code Playgroud) 我在JQuery中注意到使用了以下代码结构
(function(){var l=this,g,y=l.jQuery,p=l.$,...})()
这似乎创建了一个功能,并称之为.
采用这种方法与内联函数的内容相比有什么好处?
我想开始使用qUnit在我的Rails应用程序中测试JavaScript,我想知道如何将测试JavaScript和测试运行器HTML页面保持在版本控制之下(当然我正在使用Git)但是当他们将它们从生产服务器上移开时我使用Capistrano部署应用程序.我的第一个想法是让Capistrano像往常一样发送所有代码,包括测试文件,并编写一个任务,在部署过程结束时删除它们.不过,这看起来像是一种黑客攻击.有没有更简洁的方法告诉Capistrano在部署时忽略存储库的某些部分?
Pytest允许您通过实现pytest_runtest_teardown
插件中调用的函数来挂钩每个测试的拆解阶段:
def pytest_runtest_teardown(item, nextitem):
pass
Run Code Online (Sandbox Code Playgroud)
是否有一个属性或方法item
,我可以用来确定刚刚完成运行的测试是通过还是失败?我找不到任何文档pytest.Item
和搜索源代码并在游戏中ipdb
没有透露任何明显的东西.
我有两个独立的Kubernetes集群,分别用于登台和生产环境.我希望我将向每个集群提交Kubernetes API对象的YAML清单,但是某些对象在两个环境之间的配置会略有不同.
想象一下,在每个集群上运行一个内部Docker注册表,一个使用S3作为存储后端,一个使用GCS后端.注册表容器可以接受这些配置值作为环境变量或从文件中读取,这两个Kubernetes都表示支持,但是我应该如何为每个环境填充这些值?
基本上我想要的是一种让清单看起来像这样的方法,其中$()
语法是在提交清单时在服务器上发生的变量插值:
---
apiVersion: v1
kind: Pod
metadata:
name: foo
spec:
containers:
- name: foo
image: foo
env:
- name: bar
value: $(etcdctl get /path/to/bar)
Run Code Online (Sandbox Code Playgroud)
我可以编写使用占位符作为值的模板,然后处理模板,从一些外部源中提取实际值,以生成实际提交给集群的最终清单.但是,我想我先问一个这样做的工具已经存在,或者有一些我不知道的Kubernetes祝福方式.这似乎是许多人为了使用Kubernetes而需要做的事情.
我曾经有过的其他想法包括在主机节点上使用etcd,confd和scripts的某些组合,但是这开始进入主机配置管理领域,我想以几乎所有成本避免这些领域.我正在使用CoreOS,主机完全通过coreos-cloudinit进行配置.换句话说,在创建节点时未定义的主机系统上没有任何操作,因此像Ansible这样的传统配置管理工具已经完成.
我知道Kubernetes的秘密系统,但其中一些变量值可能非常大,而且大多数都不是秘密.
给定一个表示ISO8601格式的日期/时间的字符串(例如20100723T073000
),我需要使用通用strftime
格式字符串最终将其解析为用户提供的格式.为此,我需要将ISO8601时间戳转换为Unix时间戳.Perl有大量的日期/时间操作模块,我有点不知所措.有关如何做到这一点的任何建议?
如果它目前在太平洋时区的DST,我需要将时间抵消一个小时.无论用户的当地时区如何,我如何确定太平洋时区的当前夏令时状态?
这是我到目前为止所拥有的.第4行中的"dst"只是一个函数的占位符,它可以告诉我该区域的夏令时是否有效.
function checkTime() {
var d = new Date();
var hour = d.getUTCHours();
var offset = dst ? 7 : 8; // is pacific time currently in daylight savings?
// is it currently 6 AM, 2 PM, or 10 PM?
if (hour === ((6 + offset) % 24) || hour === ((14 + offset) % 24) || hour === ((22 + offset) % 24)) {
// do stuff
}
}
checkTime();
Run Code Online (Sandbox Code Playgroud) 我正在设置一个使用SASS的项目,它使用FSEvents来防止轮询磁盘.但是,这似乎与RVM不相称.这意味着当我跑步时,sass --watch
我得到这个警告:
Warning: Unable to load CarbonCore. FSEvents will be unavailable.
我意识到它仍然可以工作,但我不想不断地轮询我的磁盘.我想让它与FSEvents一起工作.我能找到的最好的信息就是这个帖子:
http://groups.google.com/group/compass-users/browse_thread/thread/df7d9d0da9ec1eb1
我按照Brandon Mathis的描述重新安装了我的RVM Ruby(使用1.9.2)并下载了链接的RubyCocoa.但是,我在安装RubyCocoa的第一步时遇到错误:
[rvm 1.9.2] ~/Downloads/RubyCocoa-1.0.0 $ ruby install.rb config --build-universal=yes
install.rb: entering config phase...
create ext/rubycocoa/extconf.rb
create framework/GeneratedConfig.xcconfig
create framework/src/objc/Version.h
create tests/Makefile
---> framework
create /Users/xxx/Downloads/RubyCocoa-1.0.0/framework/src/objc/osx_ruby.h ...
config failed
hook /Users/xxx/Downloads/RubyCocoa-1.0.0/framework/post-config.rb failed:
No such file or directory - /Users/xxx/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/x86_64-darwin10.6.0/ruby.h
try 'ruby install.rb --help' for usage
Run Code Online (Sandbox Code Playgroud)
看起来问题源于这是RubyCocoa的旧版本(我注意到丢失的文件在路径中有1.9.1),但在Google Groups帖子中,Brandon Mathis特意说使用他链接的版本而不是最新版本一.
有没有人知道如何配置这个,或者链接到最近的,希望更简单和更清晰的指南,让FSEvents使用RVM?
有问题的版本:
谢谢!
javascript ×2
ruby ×2
capistrano ×1
closures ×1
confd ×1
datetime ×1
deployment ×1
dst ×1
fsevents ×1
git ×1
iso8601 ×1
kubernetes ×1
macos ×1
perl ×1
pytest ×1
python ×1
qunit ×1
rack ×1
rspec ×1
rvm ×1
sass ×1
sinatra ×1
sprockets ×1
timezone ×1
typescript ×1