小编All*_*ate的帖子

使用 JSON 架构为名为“type”的属性创建类型定义

我正在尝试为现有 JSON 文件创建一个 JSON 架构,如下所示:

{
  "variable": {
    "name": "age",
    "type": "integer"
  }
}
Run Code Online (Sandbox Code Playgroud)

在架构中,我想确保该type属性具有值stringinteger

{
  "variable": {
    "name": "string",
    "type": {
      "type": "string",
      "enum": ["string", "integer"]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

不幸的是它爆炸了消息:ValidationError {is not any of [subschema 0]...

我读到 JSON 模式中没有“保留字”,所以我假设某种类型是有效的,假设我声明它正确?

json jsonschema

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

禁用Jest setTimeout mock

我正在为依赖于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的解决方法吗?

javascript jasmine jestjs

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

RxJS具有不可变数据结构?

我正在研究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对此进行了攻击,但没有一个被积极维护.

我想知道是否有广泛采用的不可变实现模式,如果没有,为什么?

immutability rxjs immutable.js

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

使用Paperclip上传CSV并处理,而不保存CSV

我目前正在允许用户上传CSV文件,处理它们,根据内容保存数据库条目,然后必须返回并清理CSV.我想知道是否可以上传,并通过将CSV保留在内存中而不触及磁盘来进行处理?

如何告诉回形针不保存原始文件?

...似乎暗示离开迁移的领域会做到这一点,但我没有运气这种方法.有任何想法吗?

csv ruby-on-rails paperclip

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

为什么Clojure向量函数结果会排除停止值?

原谅我提出新问题和可能不正确的术语.

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] => [:黄油,:和:果冻]

显然这些是非常不同的语言,但我想知道是否有一些潜在的原因,除了语言设计者的个人偏好?

vector clojure

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

Clojure中的单元测试副作用

我有一个从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中是否有一种惯用的单元测试副作用?我的第一个想法是模拟/存根,但如果有更好的东西.

unit-testing side-effects clojure

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

Capistrano 3 版本的 on_rollback?

升级到 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)

是否有新任务等可以做到这一点?

capistrano capistrano3

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

在第一个元素的基础上对数组进行分组,而不在Ruby中重复

我正在执行一个活动的记录命令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)

ruby arrays grouping

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

返回并使用匹配的泛型类型

我正在开发一个简单的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)

rust

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

确保数组属性的每个元素符合React中的自定义形状

我想确保数组属性的每个元素都符合特定的形状.

与具有形状的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

properties reactjs

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