ruby-jq 0.1.6 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +8 -3
- data/ext/jq_core.c +9 -3
- data/lib/jq/version.rb +1 -1
- data/spec/jq_spec.rb +10 -2
- metadata +18 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5cec2eb595c9df2296574f2c0f8e451517feead1
|
4
|
+
data.tar.gz: e2537b1e04395fb0eee5f53bdcde7683d0ac9fe9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c0cf18747748b7d27d73bfa93059d6ed492954971a6fb5d8b5b5ee5baccf36c0f427d165e1941766b858b180941a1df3e9fc270433ccdc5b2ab3dd892a19473c
|
7
|
+
data.tar.gz: a102046963d2664782213e77ddb961e9def674c1af04c6458cc60eacde79eebcfa077b3f7bee89c057366c08218b97272091b7fbb2942dd37422d615c0e19b9e
|
data/.travis.yml
CHANGED
@@ -1,8 +1,12 @@
|
|
1
1
|
language: ruby
|
2
2
|
rvm:
|
3
|
-
- 2.
|
4
|
-
- 2.
|
5
|
-
- 2.
|
3
|
+
- 2.2.9
|
4
|
+
- 2.3.6
|
5
|
+
- 2.4.3
|
6
|
+
- 2.5.0
|
7
|
+
before_install:
|
8
|
+
- gem update --system
|
9
|
+
- gem install bundler
|
6
10
|
before_script:
|
7
11
|
- wget http://ftp.gnu.org/gnu/bison/bison-3.0.2.tar.gz
|
8
12
|
- tar xf bison-3.0.2.tar.gz
|
@@ -16,6 +20,7 @@ before_script:
|
|
16
20
|
- cd jq
|
17
21
|
- autoreconf -i
|
18
22
|
- ./configure --enable-shared
|
23
|
+
- rm $PWD/docs/Gemfile.lock
|
19
24
|
- BUNDLE_GEMFILE="$PWD/docs/Gemfile" bundle install
|
20
25
|
- BUNDLE_GEMFILE="$PWD/docs/Gemfile" bundle exec make
|
21
26
|
- sudo make install
|
data/ext/jq_core.c
CHANGED
@@ -56,7 +56,7 @@ static VALUE rb_jq_close(VALUE self) {
|
|
56
56
|
return Qnil;
|
57
57
|
}
|
58
58
|
|
59
|
-
static void jq_process(jq_state *jq, jv value, VALUE (*proc)(), int *status) {
|
59
|
+
static void jq_process(jq_state *jq, jv value, VALUE (*proc)(), int *status, VALUE *errmsg) {
|
60
60
|
jq_start(jq, value, 0);
|
61
61
|
jv result;
|
62
62
|
|
@@ -66,14 +66,20 @@ static void jq_process(jq_state *jq, jv value, VALUE (*proc)(), int *status) {
|
|
66
66
|
rb_protect(proc, rb_str_new2(str), status);
|
67
67
|
}
|
68
68
|
|
69
|
-
|
69
|
+
if (jv_invalid_has_msg(jv_copy(result))) {
|
70
|
+
jv msg = jv_invalid_get_msg(result);
|
71
|
+
*errmsg = rb_str_new2(jv_string_value(msg));
|
72
|
+
jv_free(msg);
|
73
|
+
} else {
|
74
|
+
jv_free(result);
|
75
|
+
}
|
70
76
|
}
|
71
77
|
|
72
78
|
static void jq_parse(jq_state *jq, struct jv_parser *parser, VALUE (*proc)(), int *status, VALUE *errmsg) {
|
73
79
|
jv value;
|
74
80
|
|
75
81
|
while (jv_is_valid((value = jv_parser_next(parser))) && *status == 0) {
|
76
|
-
jq_process(jq, value, proc, status);
|
82
|
+
jq_process(jq, value, proc, status, errmsg);
|
77
83
|
}
|
78
84
|
|
79
85
|
if (jv_invalid_has_msg(jv_copy(value))) {
|
data/lib/jq/version.rb
CHANGED
data/spec/jq_spec.rb
CHANGED
@@ -229,11 +229,11 @@ describe JQ do
|
|
229
229
|
|
230
230
|
expect(searched.length).to eq(1)
|
231
231
|
expect(searched[0]).to be_kind_of(String)
|
232
|
-
expect(
|
232
|
+
expect(MultiJson.load(searched[0])).to eq(MultiJson.load(expected))
|
233
233
|
|
234
234
|
JQ(src, :parse_json => false).search('.') do |value|
|
235
235
|
expect(value).to be_kind_of(String)
|
236
|
-
expect(
|
236
|
+
expect(MultiJson.load(value)).to eq(MultiJson.load(expected))
|
237
237
|
end
|
238
238
|
end
|
239
239
|
|
@@ -269,6 +269,14 @@ describe JQ do
|
|
269
269
|
}.to raise_error(RuntimeError)
|
270
270
|
end
|
271
271
|
|
272
|
+
it 'runtime halt in jq raises error' do
|
273
|
+
expect {
|
274
|
+
JQ('{}').search('.data | keys') do |value|
|
275
|
+
value
|
276
|
+
end
|
277
|
+
}.to raise_error(JQ::Error).with_message('null (null) has no keys')
|
278
|
+
end
|
279
|
+
|
272
280
|
it 'query for hash' do
|
273
281
|
src = {'FOO' => 100, 'BAR' => [200, 200]}
|
274
282
|
|
metadata
CHANGED
@@ -1,83 +1,83 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-jq
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- winebarrel
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-01-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: multi_json
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '1.3'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '1.3'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rake-compiler
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rspec
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
description: Ruby bindings for jq
|
@@ -87,9 +87,9 @@ extensions:
|
|
87
87
|
- ext/extconf.rb
|
88
88
|
extra_rdoc_files: []
|
89
89
|
files:
|
90
|
-
- .gitignore
|
91
|
-
- .rspec
|
92
|
-
- .travis.yml
|
90
|
+
- ".gitignore"
|
91
|
+
- ".rspec"
|
92
|
+
- ".travis.yml"
|
93
93
|
- Gemfile
|
94
94
|
- LICENSE.txt
|
95
95
|
- README.md
|
@@ -114,17 +114,17 @@ require_paths:
|
|
114
114
|
- lib
|
115
115
|
required_ruby_version: !ruby/object:Gem::Requirement
|
116
116
|
requirements:
|
117
|
-
- -
|
117
|
+
- - ">="
|
118
118
|
- !ruby/object:Gem::Version
|
119
119
|
version: '0'
|
120
120
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
|
-
- -
|
122
|
+
- - ">="
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
125
|
requirements: []
|
126
126
|
rubyforge_project:
|
127
|
-
rubygems_version: 2.
|
127
|
+
rubygems_version: 2.6.13
|
128
128
|
signing_key:
|
129
129
|
specification_version: 4
|
130
130
|
summary: Ruby bindings for jq
|