jsonrpc-client 0.0.5 → 0.1.0
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/jsonrpc/client.rb +25 -10
- data/lib/jsonrpc/version.rb +1 -1
- data/spec/client_spec.rb +3 -3
- metadata +29 -45
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: cdc0de17501cfe5b82fa8ab093a3f55e2c396ac2
|
4
|
+
data.tar.gz: c24326d048f05722dcf4dd67918b4d971aa7f284
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 9310e8fd0f4ba0fe44f7e0337147ae88468297bf8a39f0c91c2c5fa3e06f6a75839eb763fa816da4df360428c9cc3574cf1f3bf1a7a26c6f5da8d0b65801cc1b
|
7
|
+
data.tar.gz: 4aad59795552a01e3d3957d9571dc2a995b781a0c190eef4e18cf2641ab27fdd32073cc077969c9c61891b08a4e01c37cd192aadbebfc6e9fc9ee9accb5f4a6a
|
data/lib/jsonrpc/client.rb
CHANGED
@@ -24,6 +24,28 @@ module JSONRPC
|
|
24
24
|
|
25
25
|
@decode_options = {}
|
26
26
|
|
27
|
+
class Helper
|
28
|
+
def initialize(options)
|
29
|
+
@options = options
|
30
|
+
@options[:content_type] ||= 'application/json'
|
31
|
+
end
|
32
|
+
|
33
|
+
def options(additional_options = nil)
|
34
|
+
if additional_options
|
35
|
+
additional_options.merge(@options)
|
36
|
+
else
|
37
|
+
@options
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def connection
|
42
|
+
@options[:connection] || ::Faraday.new { |connection|
|
43
|
+
connection.response :logger, ::JSONRPC.logger
|
44
|
+
connection.adapter ::Faraday.default_adapter
|
45
|
+
}
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
27
49
|
class Base < BasicObject
|
28
50
|
JSON_RPC_VERSION = '2.0'
|
29
51
|
|
@@ -33,8 +55,7 @@ module JSONRPC
|
|
33
55
|
|
34
56
|
def initialize(url, opts = {})
|
35
57
|
@url = ::URI.parse(url).to_s
|
36
|
-
@
|
37
|
-
@opts[:content_type] ||= 'application/json'
|
58
|
+
@helper = ::JSONRPC::Helper.new(opts)
|
38
59
|
end
|
39
60
|
|
40
61
|
def to_s
|
@@ -79,10 +100,7 @@ module JSONRPC
|
|
79
100
|
private
|
80
101
|
def send_batch_request(batch)
|
81
102
|
post_data = ::MultiJson.encode(batch)
|
82
|
-
resp =
|
83
|
-
connection.response :logger, ::JSONRPC.logger
|
84
|
-
connection.adapter ::Faraday.default_adapter
|
85
|
-
}.post(@url, post_data, @opts)
|
103
|
+
resp = @helper.connection.post(@url, post_data, @helper.options)
|
86
104
|
if resp.nil? || resp.body.nil? || resp.body.empty?
|
87
105
|
raise ::JSONRPC::Error::InvalidResponse.new
|
88
106
|
end
|
@@ -148,10 +166,7 @@ module JSONRPC
|
|
148
166
|
'params' => args,
|
149
167
|
'id' => ::JSONRPC::Base.make_id
|
150
168
|
})
|
151
|
-
resp =
|
152
|
-
connection.response :logger, ::JSONRPC.logger
|
153
|
-
connection.adapter ::Faraday.default_adapter
|
154
|
-
}.post(@url, post_data, (options || {}).merge(@opts))
|
169
|
+
resp = @helper.connection.post(@url, post_data, @helper.options(options))
|
155
170
|
|
156
171
|
if resp.nil? || resp.body.nil? || resp.body.empty?
|
157
172
|
raise ::JSONRPC::Error::InvalidResponse.new
|
data/lib/jsonrpc/version.rb
CHANGED
data/spec/client_spec.rb
CHANGED
@@ -5,8 +5,8 @@ module JSONRPC
|
|
5
5
|
BOILERPLATE = {'jsonrpc' => '2.0', 'id' => 1}
|
6
6
|
|
7
7
|
before(:each) do
|
8
|
-
@resp_mock =
|
9
|
-
Base.stub
|
8
|
+
@resp_mock = double('http_response')
|
9
|
+
Base.stub(:make_id).and_return(1)
|
10
10
|
end
|
11
11
|
|
12
12
|
after(:each) do
|
@@ -104,7 +104,7 @@ module JSONRPC
|
|
104
104
|
{"jsonrpc" => "2.0", "result" => ["hello", 5], "id" => "9"}
|
105
105
|
])
|
106
106
|
|
107
|
-
Base.stub
|
107
|
+
Base.stub(:make_id).and_return('1', '2', '5', '9')
|
108
108
|
Faraday::Connection.any_instance.should_receive(:post).with(SPEC_URL, batch, {:content_type => 'application/json'}).and_return(@resp_mock)
|
109
109
|
@resp_mock.should_receive(:body).at_least(:once).and_return(response)
|
110
110
|
client = Client.new(SPEC_URL)
|
metadata
CHANGED
@@ -1,80 +1,71 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jsonrpc-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
version: 0.0.5
|
4
|
+
version: 0.1.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Pavel Forkert
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-01-31 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
|
-
version_requirements: !ruby/object:Gem::Requirement
|
16
|
-
none: false
|
17
|
-
requirements:
|
18
|
-
- - ! '>='
|
19
|
-
- !ruby/object:Gem::Version
|
20
|
-
version: '0'
|
21
14
|
name: faraday
|
22
|
-
prerelease: false
|
23
15
|
requirement: !ruby/object:Gem::Requirement
|
24
|
-
none: false
|
25
16
|
requirements:
|
26
|
-
- -
|
17
|
+
- - ">="
|
27
18
|
- !ruby/object:Gem::Version
|
28
19
|
version: '0'
|
29
20
|
type: :runtime
|
30
|
-
|
21
|
+
prerelease: false
|
31
22
|
version_requirements: !ruby/object:Gem::Requirement
|
32
|
-
none: false
|
33
23
|
requirements:
|
34
|
-
- -
|
24
|
+
- - ">="
|
35
25
|
- !ruby/object:Gem::Version
|
36
|
-
version:
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
37
28
|
name: multi_json
|
38
|
-
prerelease: false
|
39
29
|
requirement: !ruby/object:Gem::Requirement
|
40
|
-
none: false
|
41
30
|
requirements:
|
42
|
-
- -
|
31
|
+
- - ">="
|
43
32
|
- !ruby/object:Gem::Version
|
44
33
|
version: 1.1.0
|
45
34
|
type: :runtime
|
46
|
-
|
35
|
+
prerelease: false
|
47
36
|
version_requirements: !ruby/object:Gem::Requirement
|
48
|
-
none: false
|
49
37
|
requirements:
|
50
|
-
- -
|
38
|
+
- - ">="
|
51
39
|
- !ruby/object:Gem::Version
|
52
|
-
version:
|
40
|
+
version: 1.1.0
|
41
|
+
- !ruby/object:Gem::Dependency
|
53
42
|
name: rspec
|
54
|
-
prerelease: false
|
55
43
|
requirement: !ruby/object:Gem::Requirement
|
56
|
-
none: false
|
57
44
|
requirements:
|
58
|
-
- -
|
45
|
+
- - ">="
|
59
46
|
- !ruby/object:Gem::Version
|
60
47
|
version: '0'
|
61
48
|
type: :development
|
62
|
-
|
49
|
+
prerelease: false
|
63
50
|
version_requirements: !ruby/object:Gem::Requirement
|
64
|
-
none: false
|
65
51
|
requirements:
|
66
|
-
- -
|
52
|
+
- - ">="
|
67
53
|
- !ruby/object:Gem::Version
|
68
54
|
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
69
56
|
name: rake
|
70
|
-
prerelease: false
|
71
57
|
requirement: !ruby/object:Gem::Requirement
|
72
|
-
none: false
|
73
58
|
requirements:
|
74
|
-
- -
|
59
|
+
- - ">="
|
75
60
|
- !ruby/object:Gem::Version
|
76
61
|
version: '0'
|
77
62
|
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
78
69
|
description: Simple JSON-RPC 2.0 client implementation
|
79
70
|
email:
|
80
71
|
- fxposter@gmail.com
|
@@ -82,7 +73,7 @@ executables: []
|
|
82
73
|
extensions: []
|
83
74
|
extra_rdoc_files: []
|
84
75
|
files:
|
85
|
-
- .gitignore
|
76
|
+
- ".gitignore"
|
86
77
|
- Gemfile
|
87
78
|
- LICENSE.txt
|
88
79
|
- README.md
|
@@ -98,33 +89,26 @@ files:
|
|
98
89
|
- spec/spec_helper.rb
|
99
90
|
homepage: https://github.com/fxposter/jsonrpc-client
|
100
91
|
licenses: []
|
92
|
+
metadata: {}
|
101
93
|
post_install_message:
|
102
94
|
rdoc_options: []
|
103
95
|
require_paths:
|
104
96
|
- lib
|
105
97
|
required_ruby_version: !ruby/object:Gem::Requirement
|
106
|
-
none: false
|
107
98
|
requirements:
|
108
|
-
- -
|
99
|
+
- - ">="
|
109
100
|
- !ruby/object:Gem::Version
|
110
|
-
segments:
|
111
|
-
- 0
|
112
|
-
hash: -23030267990398906
|
113
101
|
version: '0'
|
114
102
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
115
|
-
none: false
|
116
103
|
requirements:
|
117
|
-
- -
|
104
|
+
- - ">="
|
118
105
|
- !ruby/object:Gem::Version
|
119
|
-
segments:
|
120
|
-
- 0
|
121
|
-
hash: -23030267990398906
|
122
106
|
version: '0'
|
123
107
|
requirements: []
|
124
108
|
rubyforge_project:
|
125
|
-
rubygems_version:
|
109
|
+
rubygems_version: 2.2.1
|
126
110
|
signing_key:
|
127
|
-
specification_version:
|
111
|
+
specification_version: 4
|
128
112
|
summary: JSON-RPC 2.0 client
|
129
113
|
test_files:
|
130
114
|
- spec/client_spec.rb
|