我正在尝试为现有 JSON 文件创建一个 JSON 架构,如下所示:
{
"variable": {
"name": "age",
"type": "integer"
}
}
Run Code Online (Sandbox Code Playgroud)
在架构中,我想确保该type属性具有值string或integer:
{
"variable": {
"name": "string",
"type": {
"type": "string",
"enum": ["string", "integer"]
}
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是它爆炸了消息:ValidationError {is not any of [subschema 0]...。
我读到 JSON 模式中没有“保留字”,所以我假设某种类型是有效的,假设我声明它正确?
我正在为依赖于websocket库的代码编写Jest测试.
websocket库被模拟了.我想发送消息,等待异步操作完成,然后检查响应.
it('sends a message and gets a response', () => {
processor(ws).sendMessage() // do a bunch of async stuff, call websocket.sendMessage()
setTimeout(() => {
expect(ws.getResponse()).toEqual('all done')
}, 100)
})
Run Code Online (Sandbox Code Playgroud)
不幸的是因为Jest模拟了setTimeout,setTimeout失败了.如果我运行jest.runAllTimers(),超时会立即发生,因此无法接收消息.
知道如何说服jest取消模拟setTimeout或Jasmine的解决方法吗?
我正在研究RxJSKoans,我看到一系列结果反复出现,用户将新值推送到:
var Rx = require('rx'),
Subject = Rx.Subject
var result = [];
var s1 = new Subject();
s1.subscribe(result.push.bind(result));
s1.onNext('foo');
result; // ['foo']
Run Code Online (Sandbox Code Playgroud)
这显然是一个不纯的功能; 该result数组由subscribe变异.
我已经看到Github上的小规模项目使用Immutable.js对此进行了攻击,但没有一个被积极维护.
我想知道是否有广泛采用的不可变实现模式,如果没有,为什么?
我目前正在允许用户上传CSV文件,处理它们,根据内容保存数据库条目,然后必须返回并清理CSV.我想知道是否可以上传,并通过将CSV保留在内存中而不触及磁盘来进行处理?
...似乎暗示离开迁移的领域会做到这一点,但我没有运气这种方法.有任何想法吗?
原谅我提出新问题和可能不正确的术语.
Clojure向量函数生成不包含停止值的值.例如:
=> (subvec [:peanut :butter :and :jelly] 1 3)
[:butter :and]
=> (range 1 5)
(1 2 3 4)
Run Code Online (Sandbox Code Playgroud)
范围的doc明确地说明了这一点,但没有给出理性:"......从开始(包括)到结束(独占)......返回一个懒惰的num seq.".
在Ruby中,这些操作是包容性的:
(1..5).to_a => [1,2,3,4,5] [:花生,黄油,和:,果冻] [1,3] => [:黄油,:和:果冻]
显然这些是非常不同的语言,但我想知道是否有一些潜在的原因,除了语言设计者的个人偏好?
我有一个从AMPQ消息总线中提取消息的函数:
(defn get-message [queue client]
(let [msg (mq/get-message client queue)]
(if msg
(logit msg))))
Run Code Online (Sandbox Code Playgroud)
mq/get-message和logit都是副作用,一个取决于网络访问,另一个取决于本地计算机上的磁盘IO.
在Clojure中是否有一种惯用的单元测试副作用?我的第一个想法是模拟/存根,但如果有更好的东西.
升级到 capistrano 3,以下内容似乎不再起作用:
namespace :project do
desc "Prevents executing by creating lockfile"
task :disable do
on roles(:app) do
execute "touch /tmp/proj_lockfile"
end
on_rollback do
execute "rm /tmp/proj_lockfile"
end
end
end
...
NoMethodError: undefined method `on_rollback' for main:Object
config/deploy.rb:34:in `block (2 levels) in <top (required)>'
Tasks: TOP => deploy:starting => transformer:disable
(See full trace by running task with --trace)
Run Code Online (Sandbox Code Playgroud)
是否有新任务等可以做到这一点?
我正在执行一个活动的记录命令Product.pluck(:category_id,:price),它返回一个包含2个元素数组的数组:
[
[1, 500],
[1, 100],
[2, 300]
]
Run Code Online (Sandbox Code Playgroud)
我想在第一个元素的基础上进行分组,创建一个看起来像这样的哈希:
{1 => [500, 100], 2 => [300]}
Run Code Online (Sandbox Code Playgroud)
group_by似乎是合乎逻辑的,但复制了整个数组.即a.group_by(&:first)产生:
{1=>[[1, 500], [1, 100]], 2=>[[2, 300]]}
Run Code Online (Sandbox Code Playgroud) 我正在开发一个简单的Rust应用程序,它接受stdin并根据它进行操作.我想让每个命令返回一个结果向量.
不同的命令可以返回不同类型的向量; 该list方法返回PathBufs 的向量,但默认匹配arm返回字符串:
use std::{io, fs};
use std::path::PathBuf;
fn main() {
let mut input = String::new();
io::stdin().read_line(&mut input).expect("Failed to read line");
let chars_to_trim: &[char] = &['\n'];
let trimmed_input: &str = input.trim_matches(chars_to_trim);
let no_match = vec!["No Match"];
let result = match trimmed_input {
"list" => list(),
_ => no_match,
};
}
fn list() -> Vec<PathBuf> {
println!("{}", "list of lockfiles here");
let entries = fs::read_dir("/tmp").expect("Failed to read /tmp");
let all: Result<_, _> = entries.map(|entry| entry.map(|e| e.path())).collect(); …Run Code Online (Sandbox Code Playgroud) 我想确保数组属性的每个元素都符合特定的形状.
这与具有形状的React proptype数组中回答的问题不同.他们测试了每个元素是否与给定的预定义React proptype验证器匹配,在这种情况下React.propTypes.number. 我有兴趣测试自定义对象形状.
例如:
class MyClass extends React.Component {
constructor(props) {
super(props);
}
static propTypes = {
data: React.PropTypes.arrayOf({
name: React.PropTypes.string,
year: React.PropTypes.number,
})
}
}
Run Code Online (Sandbox Code Playgroud)
这会触发警告: Failed propType: typeChecker is not a function Check the render method
clojure ×2
arrays ×1
capistrano ×1
capistrano3 ×1
csv ×1
grouping ×1
immutability ×1
immutable.js ×1
jasmine ×1
javascript ×1
jestjs ×1
json ×1
jsonschema ×1
paperclip ×1
properties ×1
reactjs ×1
ruby ×1
rust ×1
rxjs ×1
side-effects ×1
unit-testing ×1
vector ×1