torckapi 0.0.24 → 0.0.25

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 128514fdb065b8c1127accfd9d1f34faa850abbb
4
- data.tar.gz: 9ec91b782fb80a643e27a29b59d23913cbf9c5ab
3
+ metadata.gz: d82ffa7dcf64ca80c1738eb536fed6cf73786623
4
+ data.tar.gz: 64e2f1d9ad145bc7c38aa6b9121aa57528db7ef7
5
5
  SHA512:
6
- metadata.gz: 11251aa9696786eb80c58cd38e108de956363cceb110120e9b2df4f65cc7628645520088571f4c86aa446cfbc7b7f4f89588482c71841e9217279480a2de4c80
7
- data.tar.gz: 236b55602c853b01eb0882c0f6852559e9378dedb79c78658c4bc08f57e7004f0647442b947ceb5b7afe24e71c2663837ea09910a72043d6929aeab8e2b85eda
6
+ metadata.gz: e7555cf614c83626c7b10a1a22dbac4bc0180f6c930cd6c9b376bb0dd6c7d806e1706574d902b23049012e94ca63b1a844beaf8656dfd96f4773e2749f5f6b08
7
+ data.tar.gz: 8a7a80d24eb9857bef9feae68acd969e0fe65436b466e0472df4cf4d4672a1cbc89707306d11fd98af086640184eb53fab13639476755f9ebbae02a0e288e9df
@@ -1,10 +1,13 @@
1
1
  GEM
2
2
  remote: https://rubygems.org/
3
3
  specs:
4
- bencode (0.8.0)
4
+ bencode (0.8.2)
5
5
 
6
6
  PLATFORMS
7
7
  ruby
8
8
 
9
9
  DEPENDENCIES
10
10
  bencode
11
+
12
+ BUNDLED WITH
13
+ 1.11.2
data/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # Torckapi — torrent tracker querying API
2
2
 
3
- [![Gem Version](https://badge.fury.io/rb/torckapi.png)](http://badge.fury.io/rb/torckapi)
4
- [![Code Climate](https://codeclimate.com/github/krupenik/torckapi.png)](https://codeclimate.com/github/krupenik/torckapi)
5
- [![Dependency Status](https://gemnasium.com/krupenik/torckapi.png)](https://gemnasium.com/krupenik/torckapi)
3
+ [![Gem Version](https://img.shields.io/gem/v/torckapi.svg)](https://rubygems.org/gems/torckapi)
4
+ [![Dependencies Status](https://img.shields.io/gemnasium/krupenik/torckapi.svg)](https://gemnasium.com/krupenik/torckapi)
5
+ [![Code Climate](https://img.shields.io/codeclimate/github/krupenik/torckapi.svg)](https://codeclimate.com/github/krupenik/torckapi)
6
6
 
7
7
  ## Description
8
8
 
@@ -36,4 +36,4 @@ tracker.scrape(["0123456789ABCDEF0123456789ABCDEF01234567", "123456789ABCDEF0123
36
36
 
37
37
  Add tests.
38
38
 
39
- Document everything.
39
+ Document everything.
@@ -21,7 +21,7 @@ module Torckapi
21
21
  when "udp"
22
22
  Torckapi::Tracker::UDP.new url, options
23
23
  else
24
- raise InvalidSchemeError, "'#{tracker_url}' cannot be recognized as valid tracker url"
24
+ raise Tracker::InvalidSchemeError, "'#{tracker_url}' cannot be recognized as valid tracker url"
25
25
  end
26
26
  end
27
27
  end
@@ -76,7 +76,7 @@ module Torckapi
76
76
 
77
77
  Timeout::timeout(timeout, CommunicationTimeoutError) do
78
78
  @socket.send(packet, 0, @url.host, @url.port)
79
- response = parse_response @socket.recvfrom(65536), transaction_id
79
+ response = process_response @socket.recvfrom(65536)[0], transaction_id
80
80
  @communicated_at = Time.now
81
81
  end
82
82
  rescue CommunicationTimeoutError, LittleEndianResponseError => e
@@ -88,19 +88,30 @@ module Torckapi
88
88
  response
89
89
  end
90
90
 
91
- def parse_response data, transaction_id
92
- response = data[0]
91
+ def process_response response, transaction_id
92
+ check_transaction_id response, transaction_id
93
+ response_code = extract_response_code response
94
+ check_response_length response, response_code
93
95
 
94
- raise TransactionIdMismatchError, response.inspect if transaction_id != response[4..7]
96
+ {code: response_code, data: response[8..-1]}
97
+ end
98
+
99
+ def check_transaction_id response, transaction_id
100
+ raise TransactionIdMismatchError, response if transaction_id != response[4..7]
101
+ end
95
102
 
96
- response_code, response_code_le = response[0..3].unpack('L>')[0], response[0..3].unpack('L<')[0]
103
+ def extract_response_code response
104
+ response_code, response_code_le = [response[0..3]].flat_map { |x| [x.unpack('L>')[0], x.unpack('L<')[0]] }
97
105
 
98
106
  unless RESPONSE_CODES.include?(response_code)
99
- raise (RESPONSE_CODES.include?(response_code_le) ? LittleEndianResponseError : MalformedResponseError), response.inspect
107
+ raise (RESPONSE_CODES.include?(response_code_le) ? LittleEndianResponseError : MalformedResponseError), response
100
108
  end
101
- raise MalformedResponseError, response.inspect if RESPONSE_MIN_LENGTHS[response_code] > response.length
102
109
 
103
- {code: response_code, data: response[8..-1]}
110
+ response_code
111
+ end
112
+
113
+ def check_response_length response, response_code
114
+ raise MalformedResponseError, response if RESPONSE_MIN_LENGTHS[response_code] > response.length
104
115
  end
105
116
  end
106
117
  end
@@ -1,3 +1,3 @@
1
1
  module Torckapi
2
- VERSION = "0.0.24"
2
+ VERSION = "0.0.25"
3
3
  end
@@ -17,8 +17,8 @@ Gem::Specification.new do |gem|
17
17
 
18
18
  gem.licenses = ["MIT"]
19
19
 
20
- gem.add_development_dependency 'rake', '~> 0'
21
- gem.add_development_dependency 'minitest', '~> 0'
20
+ gem.add_development_dependency 'rake', '>= 0'
21
+ gem.add_development_dependency 'minitest', '>= 0'
22
22
 
23
- gem.add_runtime_dependency 'bencode', '~> 0'
23
+ gem.add_runtime_dependency 'bencode', '>= 0'
24
24
  end
metadata CHANGED
@@ -1,55 +1,55 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: torckapi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.24
4
+ version: 0.0.25
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dennis Krupenik
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-29 00:00:00.000000000 Z
11
+ date: 2016-05-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: minitest
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: bencode
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  description: torrent tracker api
@@ -94,7 +94,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
94
94
  version: '0'
95
95
  requirements: []
96
96
  rubyforge_project:
97
- rubygems_version: 2.2.2
97
+ rubygems_version: 2.5.1
98
98
  signing_key:
99
99
  specification_version: 4
100
100
  summary: torckapi is a tool for quering torrent trackers