grape-batch 2.0.0 → 2.0.1

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 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