小编ant*_*tun的帖子

使用jq一次删除多个键

我需要从一些JSON(使用jq)一次删除多个键,并且我试图了解是否有更好的方法来执行此操作,而不是每次都调用map和del.这是我的输入数据:

test.json

[
  {
    "label": "US : USA : English",
    "Country": "USA",
    "region": "US",
    "Language": "English",
    "locale": "en",
    "currency": "USD",
    "number": "USD"
  },
  {
    "label": "AU : Australia : English",
    "Country": "Australia",
    "region": "AU",
    "Language": "English",
    "locale": "en",
    "currency": "AUD",
    "number": "AUD"
  },
  {
    "label": "CA : Canada : English",
    "Country": "Canada",
    "region": "CA",
    "Language": "English",
    "locale": "en",
    "currency": "CAD",
    "number": "CAD"
  }
]
Run Code Online (Sandbox Code Playgroud)

对于每个项目,我想删除数字,语言和国家/地区键.我可以用这个命令做到这一点:

$ cat test.json | jq 'map(del(.Country)) | map(del(.number)) | map(del(.Language))'
Run Code Online (Sandbox Code Playgroud)

这很好,我得到了所需的输出:

[
  {
    "label": "US …
Run Code Online (Sandbox Code Playgroud)

jq

11
推荐指数
6
解决办法
1万
查看次数

在 Chrome DevTools 中,如何判断使用 HTTP/2 服务器推送发送了哪些响应?

HTTP/2 服务器推送允许服务器在浏览器实际请求资源之前将资源“推送”到浏览器。

使用 Chrome DevTools 的网络选项卡时,如何区分哪些资源是“推送”的,哪些是传统方式请求的?

我知道我可以启用网络选项卡中的协议列,并且将一些调用显示为“h2”,我认为这意味着 HTTP/2。但是我要寻找什么来判断它是否真的被推送了?

在此处输入图片说明

google-chrome-devtools http2

9
推荐指数
1
解决办法
3662
查看次数

javascript_include_tag :defaults 不起作用

我正在将应用程序迁移到 Rails 3。以下 - 我在几个地方看到推荐 - 不起作用:

<%= javascript_include_tag :defaults %>
Run Code Online (Sandbox Code Playgroud)

就我而言,它扩展为:

<script src="/assets/defaults.js" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)

...这会导致 404。据我所知,:defaults 不应该包含一个名为“defaults.js”的文件;它应该包括一些基本的东西,比如prototype.js 和application.js。

请注意,在我的情况下,以下工作正常。只是如果可能的话,我宁愿使用官方推荐的方式:

<%= javascript_include_tag :prototype %>
<%= javascript_include_tag :application %>
Run Code Online (Sandbox Code Playgroud)

我正在使用 ruby​​ 1.9.3 运行 Rails 3.2.8。

我的config/application.rb (以任何形式)中没有以下行。为了迁移到 Rails 3,我创建了一个新的 Rails 3 应用程序,并使用该 application.rb 作为起点:

config.action_view.javascript_expansions[:defaults] = %w(foo.js bar.js)
Run Code Online (Sandbox Code Playgroud)

在 app/assets/javascripts 中,我有:

Util.js
application.js
controls.js
dragdrop.js
effects.js
prototype.js
Run Code Online (Sandbox Code Playgroud)

...和一堆特定于我的应用程序的东西。

ruby-on-rails-3

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

如何运行特定版本的rake

背景:

  • 每当我在一个较旧的项目中运行rake时,我都会收到错误.(未初始化的常量Rake :: DSL).
  • 有问题的rails项目是一个以Rails 2.1(我认为)开始的旧项目,从那时起我在笔记本电脑上更新了操作系统几次,并在此过程中进行了更新以使其运行.
  • 现在,只要我将RAILS_GEM_VERSION设置为2.3.5,rails应用程序就可以正常工作.我不确定该应用程序是否已完全更新为Rails 2.3.5.
  • 我的旧项目中没有Gemfile.
  • 如果我创建一个全新的rails项目(并取消设置RAILS_GEM_VERSION),rake运行正常.

我的问题:要排除故障,我想尝试更新版本的rake.我想知道如何强制使用一个特定版本,因为看起来我安装了多个版本.

有关我的环境的信息:

$ gem list rake

*** LOCAL GEMS ***

rake (0.9.2.2, 0.9.2, 0.8.7, 0.8.3)


$ rake --version
rake, version 0.8.7
Run Code Online (Sandbox Code Playgroud)

所以看起来它正在拿起0.8.7版本.

在线的所有帮助文件似乎告诉我在Gemfile中指定rake版本,但是这个项目中没有一个.(也许它早于gemfiles?)

如果我完全取消设置RAILS_GEM_ENVIRONMENT变量,并尝试运行rake,我得到:

rake aborted!
can't activate rails (= 2.3.5, runtime) for [], already activated rails-3.2.8 for []
Run Code Online (Sandbox Code Playgroud)

我的旧项目中的所有环境配置文件都没有设置该变量.

ruby-on-rails

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

规范化node.js中的文件路径

我有一个node.js脚本,它接受一个filename参数,然后使用require()消耗它:

json2csv.js

var filename = process.argv[2]; 
var parsedJSON = require(filename);
Run Code Online (Sandbox Code Playgroud)

我运行如下:

$ node json2csv.js ./inputFile.json
Run Code Online (Sandbox Code Playgroud)

只要我使用"./"明确地为文件(如果是本地)添加前缀或者使用绝对文件路径,这就可以工作.但是,如果我省略"./",例如:

$ node json2csv.js inputFile.json
Run Code Online (Sandbox Code Playgroud)

我收到"无法找到模块"错误,因为node正在将文件名解释为模块名称.是否有一种标准的方法来在节点中使用munge文件路径,以便它们作为显式本地路径或绝对路径输出?

我知道为我的场景写作并不困难; 我只是在寻找一种适用于跨平台的标准方法.我找到了Path.normalize(),但这实际上剥离了任何前导"./".

谢谢!

node.js

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

Vagrant ubuntu/trusty64不是mac上的端口转发

我正在尝试在Vagrant中设置一个简单的Rails应用程序.这是我第一次设置Vagrant + rails.这是Vagrant文​​件.正如您所看到的,我将localhost:3000映射到guest:3000.

Vagrant.configure(2) do |config|
    config.vm.box = "ubuntu/trusty64"
    config.vm.network 'forwarded_port', guest: 3000, host: 3000
    config.vm.provision 'shell', path: 'bootstrap/bootstrap_vagrant.sh'
end
Run Code Online (Sandbox Code Playgroud)

这是我的bootstrap文件,为简洁起见,我已将其删除:

#!/usr/bin/env bash

set -e
apt-get update
echo "LC_ALL=\"en_US.UTF-8\"" >> /etc/default/locale
locale-gen en_US.UTF-8
update-locale LANG=en_US.UTF-8
apt-get -y install build-essential curl git-core python-software-properties htop vim
apt-get -y install nodejs # needed by Rails to have a Javascript runtime
apt-get -y install zlib1g-dev libssl-dev libreadline6-dev libyaml-dev libncurses5-dev libxml2-dev libxslt-dev
sudo -u vagrant printf 'cd /vagrant\n' >> /home/vagrant/.profile
su vagrant -c "mkdir -p …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails vagrant

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

brew医生说我已经对Homebrew进行了未经修改的修改,但是git status说"没什么可提交的"

我是第一次安装brew,当我运行brew doctor时出现一个错误:

Warning: You have uncommitted modifications to Homebrew
If this a surprise to you, then you should stash these modifications.
Stashing returns Homebrew to a pristine state but can be undone
should you later need to do so for some reason.
    cd /usr/local && git stash
Run Code Online (Sandbox Code Playgroud)

如果我cd到/ usr/local并运行"git status",我得到:

On branch master
nothing to commit (working directory clean)
Run Code Online (Sandbox Code Playgroud)

如果我运行:cd/usr/local && git stash,我得到:

No local changes to save
Run Code Online (Sandbox Code Playgroud)

我应该忽略这个警告吗?我在OSX 10.8上.

homebrew

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