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 CHANGED
@@ -1,7 +1,15 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 9185e1752bbf3655a12f16eda86dd414771f9c16
4
- data.tar.gz: 8bb5a579ade1935f22976c09bd5c80c14b55a1f5
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ NTZiM2QzYWFiODhhNDI3ZjRkYTJhM2FiM2VkNzMwMjUzMmNkNDZhYQ==
5
+ data.tar.gz: !binary |-
6
+ NzdjMjZlMDY0NjAyNDc3Njc5MjM3MjlmOWZlOWJmYjE5NTllMTMzMg==
5
7
  SHA512:
6
- metadata.gz: 21c6fd89e254af298f661d850e129b1594cbe2cf3f8a7e50c19ccaac7f430a07a8c2281e74e3eb35c599e9fa9f7c6cf275161816d60515f432657d29b48d86c6
7
- data.tar.gz: bda8068353f6bbc539a5951855d5093fefa4bd87f1d7d4e05531d87578f7904b883d4d33c5972cd17f8e499d38e9c88650a98ec049df11bbd62bffd065ce8e38
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.summary = 'Simple api to manage aria2c via api'
12
- spec.description = ''
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")
@@ -57,7 +57,7 @@ module Aria2Driver
57
57
  private
58
58
 
59
59
  def supported_request?(request)
60
- [:get_version, :add_uri].include?(request)
60
+ [:get_version, :add_uri, :tell_status].include?(request)
61
61
  end
62
62
 
63
63
  def snake_lower_camel(snake)
@@ -1,3 +1,3 @@
1
1
  module Aria2Driver
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -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
- 'https://localhost:80/jsonrpc', {id: 'local_client', token: 'abcd-1234'})
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[:version])
46
- expect(response.result['enabledFeatures']).to eq(mock_response.result[:enabledFeatures])
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
- 'https://localhost:80/jsonrpc', {id: 'local_client', token: 'abcd-1234'})
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
- 'https://localhost:80/jsonrpc', {id: 'local_client', token: 'abcd-1234'})
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[:version])
79
- expect(response.result['enabledFeatures']).to eq(mock_response.result[:enabledFeatures])
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
- 'https://localhost:80/jsonrpc', {id: 'local_client', token: 'abcd-1234'})
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: ["BitTorrent",
11
- "Firefox3 Cookie",
12
- "GZip", "HTTPS",
13
- "Message Digest",
14
- "Metalink", "XML-RPC"],
15
- version: "1.18.9"
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.3
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-04 00:00:00.000000000 Z
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
- - ".gitignore"
92
- - ".travis.yml"
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
- homepage: ''
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