grape-batch 2.0.0 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 72ecca1274e9f2e1f1d2a896d85a75dc538b5b89
4
- data.tar.gz: 6892ba66a0aa07eb03434d9f385208135bde27c2
3
+ metadata.gz: bbbf72e7d25fcf89c630726e596e076196efe570
4
+ data.tar.gz: afdfe942d8894569147cec3e7665c1f7ef03811e
5
5
  SHA512:
6
- metadata.gz: 7a8e2550213099227213f61f904636d13145eb295b4f2069fd16042f7ad4e10612587a204cab4c603f6ca7231e18ba37ae4a724bfd4b82a9de96d985f51f4400
7
- data.tar.gz: 168dc3ca5de9a49c36d2f7b87659f3ad15127ee65d47bc4f2b8cc5c95c138219f6ffb4fa198d8cc6143c979936d8e1a6849c92ddc8addc807cd79361465be0fc
6
+ metadata.gz: 792bfb7fa1ad3361706e79035093e3b4ec9b26764f3d1810584345e72ee37f2365a1d404a958ce96de6790bb8179cbf21dafd4bfd335e336a54a03798c1d7774
7
+ data.tar.gz: 49ca34252acda3520aac0c20eb8efc597422ac2a1e1e3764bb828e71d8705cedc1d9fe50198823d86d34ef21d39a0717f48220695f3fe617b64ff44f9d589a1a
data/CHANGELOG.md CHANGED
@@ -1,6 +1,10 @@
1
+ # 2.0.1 (30th September 2015)
2
+ * Removed obsolete gem dependencies
3
+ * Now ensures the response is properly formatted and not empty, or returns an error
4
+
1
5
  # 2.0.0 (26rd August 2015)
2
6
  * Removed session_header from configuration options
3
- # Now passes the whole env to the session Proc
7
+ * Now passes the whole env to the session Proc
4
8
 
5
9
  # 1.2.1 (24rd July 2015)
6
10
  * Using env['HTTP_X_REQUEST_ID'] or env['rack-timeout.info'][:id] or generate unique hex to identify request batch
data/grape-batch.gemspec CHANGED
@@ -17,10 +17,8 @@ Gem::Specification.new do |spec|
17
17
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
18
18
  spec.require_paths = ['lib']
19
19
 
20
- spec.add_runtime_dependency 'rack', '>= 1.5'
21
20
  spec.add_runtime_dependency 'grape', '>= 0.7.0'
22
21
  spec.add_runtime_dependency 'multi_json', '>= 1.0'
23
- spec.add_runtime_dependency 'activesupport', '>= 4.1.0'
24
22
 
25
23
  spec.add_development_dependency 'bundler', '~> 1.6'
26
24
  spec.add_development_dependency 'rake', '~> 10.3.2'
data/lib/grape/batch.rb CHANGED
@@ -57,7 +57,7 @@ module Grape
57
57
  status, headers, response = @app.call(tmp_env)
58
58
 
59
59
  # format response
60
- @response_klass::format(status, headers, response)
60
+ @response_klass::format(status, headers, response, tmp_env)
61
61
  end
62
62
  end
63
63
 
@@ -23,4 +23,4 @@ module Grape
23
23
  end
24
24
  end
25
25
  end
26
- end
26
+ end
@@ -1,10 +1,22 @@
1
1
  class Grape::Batch::Response
2
- def self.format(status, headers, response)
2
+ def self.format(status, headers, response, env)
3
3
  if response
4
4
  body = response.respond_to?(:body) ? response.body.join : response.join
5
- result = MultiJson.decode(body)
5
+ parsing_failed = true
6
+
7
+ begin
8
+ result = MultiJson.decode(body)
9
+ parsing_failed = false
10
+ rescue MultiJson::ParseError
11
+ # Captain planet to the rescue
12
+ end
13
+ end
14
+
15
+ if parsing_failed || result.empty?
16
+ status = 404
17
+ result = { 'error' => "#{env['PATH_INFO']} not found" }
6
18
  end
7
19
 
8
- (200..299).include?(status) ? {success: result} : {code: status, error: result['error']}
20
+ (200..299).include?(status) ? { success: result } : { code: status, error: result['error'] }
9
21
  end
10
22
  end
@@ -1,5 +1,5 @@
1
1
  module Grape
2
2
  module Batch
3
- VERSION = '2.0.0'
3
+ VERSION = '2.0.1'
4
4
  end
5
5
  end
@@ -134,6 +134,12 @@ RSpec.describe Grape::Batch::Base do
134
134
  it { expect(response.body).to eq(encode([{ success: 'status 856' }])) }
135
135
  end
136
136
 
137
+ context 'with an unknown version' do
138
+ let(:request_body) { encode({ requests: [{ method: 'GET', path: '/api/v2/status', body: { id: 856 } }] }) }
139
+ it { expect(response.status).to eq(200) }
140
+ it { expect(response.body).to eq(encode([{ code: 404, error: '/api/v2/status not found' }])) }
141
+ end
142
+
137
143
  context 'with a body and nested hash' do
138
144
  let(:complex) do
139
145
  { a: { b: { c: 1 } } }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grape-batch
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lionel Oto
@@ -10,22 +10,8 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2015-08-26 00:00:00.000000000 Z
13
+ date: 2015-09-30 00:00:00.000000000 Z
14
14
  dependencies:
15
- - !ruby/object:Gem::Dependency
16
- name: rack
17
- requirement: !ruby/object:Gem::Requirement
18
- requirements:
19
- - - ">="
20
- - !ruby/object:Gem::Version
21
- version: '1.5'
22
- type: :runtime
23
- prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- version: '1.5'
29
15
  - !ruby/object:Gem::Dependency
30
16
  name: grape
31
17
  requirement: !ruby/object:Gem::Requirement
@@ -54,20 +40,6 @@ dependencies:
54
40
  - - ">="
55
41
  - !ruby/object:Gem::Version
56
42
  version: '1.0'
57
- - !ruby/object:Gem::Dependency
58
- name: activesupport
59
- requirement: !ruby/object:Gem::Requirement
60
- requirements:
61
- - - ">="
62
- - !ruby/object:Gem::Version
63
- version: 4.1.0
64
- type: :runtime
65
- prerelease: false
66
- version_requirements: !ruby/object:Gem::Requirement
67
- requirements:
68
- - - ">="
69
- - !ruby/object:Gem::Version
70
- version: 4.1.0
71
43
  - !ruby/object:Gem::Dependency
72
44
  name: bundler
73
45
  requirement: !ruby/object:Gem::Requirement