batch_request_client 0.1.4
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 +7 -0
- data/lib/batch_request_client.rb +26 -0
- data/lib/batch_request_client/batch_util.rb +38 -0
- data/lib/batch_request_client/version.rb +3 -0
- metadata +117 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 19fe7a9695314062b22f325baa19e383b32de62b
|
4
|
+
data.tar.gz: d606c4cfc1b3d6379678293049eacc1dc8083c6d
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 4d04f103fafc4f8ef14f7308189ea9d3d849af8e3763bb0bcf7160ad99984d4e1aa77a9042debe1b311ff0a82a0c366816e5f130eb73ccddac761c3ddab3e6c2
|
7
|
+
data.tar.gz: 7c929ee924b4d78f5566d6421238562a181730cb29e1c0623e39678f76182bec051591aa16a778dff9bad23af24f7f6ca254d24180b07ceee4a39894a0e7b14b
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'batch_request_client/version'
|
2
|
+
require 'batch_request_client/batch_util'
|
3
|
+
|
4
|
+
require 'uri'
|
5
|
+
require 'rest-client'
|
6
|
+
require 'json'
|
7
|
+
|
8
|
+
module BatchRequestClient
|
9
|
+
extend BatchUtil
|
10
|
+
|
11
|
+
def self.create(array_objects, url, mode = nil)
|
12
|
+
uri = URI.parse(url)
|
13
|
+
batch_url = get_batch_url(uri, mode)
|
14
|
+
payload = create_payload(array_objects, 'POST', uri.path)
|
15
|
+
response = RestClient.post(batch_url, payload, headers)
|
16
|
+
JSON.parse(response)['responses']['response']
|
17
|
+
end
|
18
|
+
|
19
|
+
def update
|
20
|
+
raise NotImplementedError
|
21
|
+
end
|
22
|
+
|
23
|
+
def delete
|
24
|
+
raise NotImplementedError
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module BatchRequestClient
|
2
|
+
module BatchUtil
|
3
|
+
|
4
|
+
def get_batch_url(uri, mode)
|
5
|
+
base_url = "#{uri.scheme}://#{uri.host}:#{uri.port}"
|
6
|
+
base_url = "#{uri.scheme}://#{uri.host}" if uri.scheme == 'https'
|
7
|
+
batch_url = "#{base_url}/api/v1/batch_sequential"
|
8
|
+
batch_url = "#{base_url}/api/v1/batch_parallel" if mode == :parallel
|
9
|
+
batch_url
|
10
|
+
end
|
11
|
+
|
12
|
+
def create_payload(array_objects, method, url)
|
13
|
+
requests = []
|
14
|
+
array_objects.each do |item|
|
15
|
+
requests << request_signature(item, method, url)
|
16
|
+
end
|
17
|
+
padded_response(requests).to_json
|
18
|
+
end
|
19
|
+
|
20
|
+
def request_signature(item, method, url)
|
21
|
+
{
|
22
|
+
"method": method,
|
23
|
+
"url": "#{url}",
|
24
|
+
"body": item
|
25
|
+
}
|
26
|
+
end
|
27
|
+
|
28
|
+
def padded_response(requests)
|
29
|
+
{
|
30
|
+
"requests": requests
|
31
|
+
}
|
32
|
+
end
|
33
|
+
|
34
|
+
def headers
|
35
|
+
{ 'Content-Type' => 'application/json' }
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
metadata
ADDED
@@ -0,0 +1,117 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: batch_request_client
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.4
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Srinivas Raghunathan
|
8
|
+
- Shishir Kakaraddi
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2017-05-08 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rest-client
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - "~>"
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '2.0'
|
21
|
+
type: :runtime
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - "~>"
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '2.0'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: bundler
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - "~>"
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '1.14'
|
35
|
+
type: :development
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - "~>"
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '1.14'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: rake
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - "~>"
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '10.0'
|
49
|
+
type: :development
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - "~>"
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '10.0'
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: minitest
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - "~>"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '5.0'
|
63
|
+
type: :development
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - "~>"
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '5.0'
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: rdoc
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - "~>"
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '5.1'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - "~>"
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '5.1'
|
84
|
+
description: Batch Request Client.
|
85
|
+
email:
|
86
|
+
executables: []
|
87
|
+
extensions: []
|
88
|
+
extra_rdoc_files: []
|
89
|
+
files:
|
90
|
+
- lib/batch_request_client.rb
|
91
|
+
- lib/batch_request_client/batch_util.rb
|
92
|
+
- lib/batch_request_client/version.rb
|
93
|
+
homepage: https://github.com/Netflix/batch_request_client
|
94
|
+
licenses:
|
95
|
+
- Apache-2.0
|
96
|
+
metadata: {}
|
97
|
+
post_install_message:
|
98
|
+
rdoc_options: []
|
99
|
+
require_paths:
|
100
|
+
- lib
|
101
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
102
|
+
requirements:
|
103
|
+
- - ">="
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
version: '2.1'
|
106
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
requirements: []
|
112
|
+
rubyforge_project:
|
113
|
+
rubygems_version: 2.6.11
|
114
|
+
signing_key:
|
115
|
+
specification_version: 4
|
116
|
+
summary: Ruby Client to make Batch Requests
|
117
|
+
test_files: []
|