aria2_driver 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +13 -5
- data/aria2_driver.gemspec +3 -3
- data/lib/aria2_driver/json_rpc/client.rb +1 -1
- data/lib/aria2_driver/version.rb +1 -1
- data/spec/aria2_driver/json_rpc/client_spec.rb +54 -8
- data/spec/support/mocks/json_rpc/get_version.rb +6 -6
- data/spec/support/mocks/json_rpc/tell_status.rb +57 -0
- metadata +20 -18
checksums.yaml
CHANGED
@@ -1,7 +1,15 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
NTZiM2QzYWFiODhhNDI3ZjRkYTJhM2FiM2VkNzMwMjUzMmNkNDZhYQ==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
NzdjMjZlMDY0NjAyNDc3Njc5MjM3MjlmOWZlOWJmYjE5NTllMTMzMg==
|
5
7
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
YzI0ZDBmZGFlZTQyOTE2MzlmYzA2YWZjZjZkYzM1ZTg5Y2U0ZmZlNjhiYjlm
|
10
|
+
ZmE5NGZkMjkyOTAxYmEyMzA2NDVjYmI5NDY1OWVjNTIyYWVjOTYzNDZlZmM5
|
11
|
+
ZDQxNzU1ZDU1MmExYmYxNTM2NjA5YTk2MTViMWQ1NTE0NDY5M2U=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
M2Q0OGMxZjE3NjQ1MDY5Nzc4ZTY1ZjZlOWRiZWQ0ZGZkMjRkN2Q4ZTEzNDM4
|
14
|
+
ZWVlM2U4NzVkZDYzOGU0OThhYjZhNWY2YWE2YjJhNTg0MTgyYmM0Nzg0MDI2
|
15
|
+
ZDM0YzdhMWRhZGMwNGVlYjc1NjJlZTUwMWM5ODBjMjVlZTQ3MjQ=
|
data/aria2_driver.gemspec
CHANGED
@@ -8,9 +8,9 @@ Gem::Specification.new do |spec|
|
|
8
8
|
spec.version = Aria2Driver::VERSION
|
9
9
|
spec.authors = ['Roberto Ciatti', 'Matteo Foccoli']
|
10
10
|
spec.email = ['info@overhilllab.com']
|
11
|
-
spec.
|
12
|
-
spec.
|
13
|
-
spec.homepage = ""
|
11
|
+
spec.description = 'Simple api to manage aria2c via api'
|
12
|
+
spec.summary = spec.description
|
13
|
+
spec.homepage = "https://github.com/OverHillLab/aria2_driver"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
16
16
|
spec.files = `git ls-files -z`.split("\x0")
|
data/lib/aria2_driver/version.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
require 'support/mocks/json_rpc/get_version'
|
3
3
|
require 'support/mocks/json_rpc/add_uri'
|
4
|
+
require 'support/mocks/json_rpc/tell_status'
|
4
5
|
|
5
6
|
module Aria2Driver
|
6
7
|
module JsonRpc
|
@@ -38,12 +39,12 @@ module Aria2Driver
|
|
38
39
|
stubbed_request.with_response(mock_response)
|
39
40
|
|
40
41
|
client = Aria2Driver::JsonRpc::Client.from_url(
|
41
|
-
'
|
42
|
+
'http://localhost:80/jsonrpc', {id: 'local_client', token: 'abcd-1234'})
|
42
43
|
response = client.request(Aria2Driver::JsonRpc::Request.new 'aria2.getVersion')
|
43
44
|
|
44
45
|
expect(response.error?).to be_falsey
|
45
|
-
expect(response.result['version']).to eq(mock_response.result[
|
46
|
-
expect(response.result['enabledFeatures']).to eq(mock_response.result[
|
46
|
+
expect(response.result['version']).to eq(mock_response.result['version'])
|
47
|
+
expect(response.result['enabledFeatures']).to eq(mock_response.result['enabledFeatures'])
|
47
48
|
end
|
48
49
|
|
49
50
|
it 'simple unsuccessful generic request' do
|
@@ -52,7 +53,7 @@ module Aria2Driver
|
|
52
53
|
stubbed_request.with_response(mock_error_response)
|
53
54
|
|
54
55
|
client = Aria2Driver::JsonRpc::Client.from_url(
|
55
|
-
'
|
56
|
+
'http://localhost:80/jsonrpc', {id: 'local_client', token: 'abcd-1234'})
|
56
57
|
response = client.request(Aria2Driver::JsonRpc::Request.new 'aria2.getVersion')
|
57
58
|
|
58
59
|
expect(response.error?).to be_truthy
|
@@ -61,24 +62,28 @@ module Aria2Driver
|
|
61
62
|
message: mock_error_response.message
|
62
63
|
})
|
63
64
|
end
|
65
|
+
end
|
64
66
|
|
67
|
+
describe 'version' do
|
65
68
|
it 'get_version request' do
|
66
69
|
stubbed_request = Mocks::JsonRpc::GetVersionRequest.new('localhost', {port: 80, params: ["token:abcd-1234"]})
|
67
70
|
mock_response = Mocks::JsonRpc::GetVersionSuccessfulResponse.new
|
68
71
|
stubbed_request.with_response(mock_response)
|
69
72
|
|
70
73
|
aria2 = Aria2Driver::JsonRpc::Client.from_url(
|
71
|
-
'
|
74
|
+
'http://localhost:80/jsonrpc', {id: 'local_client', token: 'abcd-1234'})
|
72
75
|
|
73
76
|
expect(aria2.respond_to?(:get_version)).to be true
|
74
77
|
|
75
78
|
response = aria2.get_version
|
76
79
|
|
77
80
|
expect(response.error?).to be_falsey
|
78
|
-
expect(response.result['version']).to eq(mock_response.result[
|
79
|
-
expect(response.result['enabledFeatures']).to eq(mock_response.result[
|
81
|
+
expect(response.result['version']).to eq(mock_response.result['version'])
|
82
|
+
expect(response.result['enabledFeatures']).to eq(mock_response.result['enabledFeatures'])
|
80
83
|
end
|
84
|
+
end
|
81
85
|
|
86
|
+
describe 'add uri' do
|
82
87
|
it 'add_uri request' do
|
83
88
|
stubbed_request = Mocks::JsonRpc::AddUriRequest.new('localhost',
|
84
89
|
{
|
@@ -93,13 +98,54 @@ module Aria2Driver
|
|
93
98
|
stubbed_request.with_response(mock_response)
|
94
99
|
|
95
100
|
aria2 = Aria2Driver::JsonRpc::Client.from_url(
|
96
|
-
'
|
101
|
+
'http://localhost:80/jsonrpc', {id: 'local_client', token: 'abcd-1234'})
|
97
102
|
|
98
103
|
response = aria2.add_uri({params: [['http://www.example.com/a.jpg'], {"dir" => "/tmp/"}]})
|
99
104
|
|
100
105
|
expect(response.error?).to be_falsey
|
101
106
|
expect(response.result).to eq(mock_response.result)
|
102
107
|
end
|
108
|
+
end
|
109
|
+
|
110
|
+
describe 'status' do
|
111
|
+
it 'tell_status simple request' do
|
112
|
+
stubbed_request = Mocks::JsonRpc::TellStatusRequest.new('localhost',
|
113
|
+
{
|
114
|
+
port: 80,
|
115
|
+
params: [
|
116
|
+
"token:abcd-1234",
|
117
|
+
"2089b05ecca3d829"
|
118
|
+
]
|
119
|
+
})
|
120
|
+
mock_response = Mocks::JsonRpc::TellStatusSuccessfulResponse.new
|
121
|
+
stubbed_request.with_response(mock_response)
|
122
|
+
|
123
|
+
aria2 = Aria2Driver::JsonRpc::Client.new 'localhost', {port: 80, id: 'local_client', token: 'abcd-1234'}
|
124
|
+
response = aria2.tell_status({params: ["2089b05ecca3d829"]})
|
125
|
+
|
126
|
+
expect(response.error?).to be_falsey
|
127
|
+
expect(response.result).to eq(mock_response.result)
|
128
|
+
end
|
129
|
+
|
130
|
+
it 'tell_status request with selected keys' do
|
131
|
+
stubbed_request = Mocks::JsonRpc::TellStatusRequest.new('localhost',
|
132
|
+
{
|
133
|
+
port: 80,
|
134
|
+
params: [
|
135
|
+
"token:abcd-1234",
|
136
|
+
"2089b05ecca3d829",
|
137
|
+
["gid", "status"]
|
138
|
+
]
|
139
|
+
})
|
140
|
+
mock_response = Mocks::JsonRpc::TellStatusSuccessfulResponse.new
|
141
|
+
stubbed_request.with_response(mock_response)
|
142
|
+
|
143
|
+
aria2 = Aria2Driver::JsonRpc::Client.new 'localhost', {port: 80, id: 'local_client', token: 'abcd-1234'}
|
144
|
+
response = aria2.tell_status({params: ["2089b05ecca3d829", ['gid', 'status']]})
|
145
|
+
|
146
|
+
expect(response.error?).to be_falsey
|
147
|
+
expect(response.result).to eq({"gid"=>"2089b05ecca3d829", "status"=>"active"})
|
148
|
+
end
|
103
149
|
|
104
150
|
end
|
105
151
|
end
|
@@ -7,12 +7,12 @@ module Mocks
|
|
7
7
|
class GetVersionSuccessfulResponse < SuccessfulResponse
|
8
8
|
def result
|
9
9
|
{
|
10
|
-
enabledFeatures
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
version
|
10
|
+
'enabledFeatures' => ["BitTorrent",
|
11
|
+
"Firefox3 Cookie",
|
12
|
+
"GZip", "HTTPS",
|
13
|
+
"Message Digest",
|
14
|
+
"Metalink", "XML-RPC"],
|
15
|
+
'version' => "1.18.9"
|
16
16
|
}
|
17
17
|
end
|
18
18
|
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
require_relative './request'
|
2
|
+
require_relative './response'
|
3
|
+
|
4
|
+
module Mocks
|
5
|
+
module JsonRpc
|
6
|
+
|
7
|
+
class TellStatusSuccessfulResponse < SuccessfulResponse
|
8
|
+
def result
|
9
|
+
keys = request.params[2] || []
|
10
|
+
{}.tap do |result_hash|
|
11
|
+
general_result.each do |k, v|
|
12
|
+
result_hash[k] = v if keys.empty? || keys.include?(k.to_s)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def general_result
|
20
|
+
{
|
21
|
+
'gid' => '2089b05ecca3d829',
|
22
|
+
'status' => 'active',
|
23
|
+
'errorCode' => 0,
|
24
|
+
'totalLength' => '34896138',
|
25
|
+
'completedLength' => '901120',
|
26
|
+
'uploadLength' => '0',
|
27
|
+
'bitfield' => '0000000',
|
28
|
+
'downloadSpeed' => '2000',
|
29
|
+
'uploadSpeed' => '0',
|
30
|
+
'connections' => '1',
|
31
|
+
'pieceLength' => '1048576',
|
32
|
+
'numPieces' => '34',
|
33
|
+
'files' => [{
|
34
|
+
'index' => '1',
|
35
|
+
'length' => '34896138',
|
36
|
+
'completedLength' => '34896138',
|
37
|
+
'path' => '/downloads/file',
|
38
|
+
'selected' => 'true',
|
39
|
+
'uris' => [{
|
40
|
+
'status' => 'used',
|
41
|
+
'uri' => 'http://example.org/file'}]}],
|
42
|
+
'dir' => '/downloads'
|
43
|
+
}
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
class TellStatusRequest < Request
|
48
|
+
|
49
|
+
protected
|
50
|
+
|
51
|
+
def rpc_method
|
52
|
+
'aria2.tellStatus'
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aria2_driver
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Roberto Ciatti
|
@@ -9,87 +9,87 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-03-
|
12
|
+
date: 2015-03-05 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- -
|
18
|
+
- - ~>
|
19
19
|
- !ruby/object:Gem::Version
|
20
20
|
version: '1.7'
|
21
21
|
type: :development
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- -
|
25
|
+
- - ~>
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: '1.7'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: rake
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- -
|
32
|
+
- - ~>
|
33
33
|
- !ruby/object:Gem::Version
|
34
34
|
version: '10.0'
|
35
35
|
type: :development
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- -
|
39
|
+
- - ~>
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: '10.0'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: rspec
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
|
-
- -
|
46
|
+
- - ! '>='
|
47
47
|
- !ruby/object:Gem::Version
|
48
48
|
version: '0'
|
49
49
|
type: :development
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
|
-
- -
|
53
|
+
- - ! '>='
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: '0'
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: json_spec
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
|
-
- -
|
60
|
+
- - ! '>='
|
61
61
|
- !ruby/object:Gem::Version
|
62
62
|
version: '0'
|
63
63
|
type: :development
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
|
-
- -
|
67
|
+
- - ! '>='
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
version: '0'
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: webmock
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|
73
73
|
requirements:
|
74
|
-
- -
|
74
|
+
- - ! '>='
|
75
75
|
- !ruby/object:Gem::Version
|
76
76
|
version: '0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
79
|
version_requirements: !ruby/object:Gem::Requirement
|
80
80
|
requirements:
|
81
|
-
- -
|
81
|
+
- - ! '>='
|
82
82
|
- !ruby/object:Gem::Version
|
83
83
|
version: '0'
|
84
|
-
description:
|
84
|
+
description: Simple api to manage aria2c via api
|
85
85
|
email:
|
86
86
|
- info@overhilllab.com
|
87
87
|
executables: []
|
88
88
|
extensions: []
|
89
89
|
extra_rdoc_files: []
|
90
90
|
files:
|
91
|
-
-
|
92
|
-
-
|
91
|
+
- .gitignore
|
92
|
+
- .travis.yml
|
93
93
|
- Gemfile
|
94
94
|
- LICENSE
|
95
95
|
- README.md
|
@@ -112,7 +112,8 @@ files:
|
|
112
112
|
- spec/support/mocks/json_rpc/get_version.rb
|
113
113
|
- spec/support/mocks/json_rpc/request.rb
|
114
114
|
- spec/support/mocks/json_rpc/response.rb
|
115
|
-
|
115
|
+
- spec/support/mocks/json_rpc/tell_status.rb
|
116
|
+
homepage: https://github.com/OverHillLab/aria2_driver
|
116
117
|
licenses:
|
117
118
|
- MIT
|
118
119
|
metadata: {}
|
@@ -122,12 +123,12 @@ require_paths:
|
|
122
123
|
- lib
|
123
124
|
required_ruby_version: !ruby/object:Gem::Requirement
|
124
125
|
requirements:
|
125
|
-
- -
|
126
|
+
- - ! '>='
|
126
127
|
- !ruby/object:Gem::Version
|
127
128
|
version: '0'
|
128
129
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
129
130
|
requirements:
|
130
|
-
- -
|
131
|
+
- - ! '>='
|
131
132
|
- !ruby/object:Gem::Version
|
132
133
|
version: '0'
|
133
134
|
requirements: []
|
@@ -147,3 +148,4 @@ test_files:
|
|
147
148
|
- spec/support/mocks/json_rpc/get_version.rb
|
148
149
|
- spec/support/mocks/json_rpc/request.rb
|
149
150
|
- spec/support/mocks/json_rpc/response.rb
|
151
|
+
- spec/support/mocks/json_rpc/tell_status.rb
|