luminati 0.0.2 → 0.0.3
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 +4 -4
- data/Gemfile.lock +8 -5
- data/README.md +33 -1
- data/lib/luminati.rb +1 -1
- data/lib/luminati/client.rb +5 -2
- data/lib/luminati/errors.rb +1 -0
- data/luminati.gemspec +3 -1
- data/spec/luminati/client_spec.rb +62 -0
- data/spec/spec_helper.rb +3 -1
- metadata +18 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 100e95b81f766c176f4fb8f97a4a78209728dbfa
|
4
|
+
data.tar.gz: c25c2f7b7da62d1d42eef95b72de8898a1494979
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d5a57daf74528372c6ce2775dbce85db255f1b1efc170ff3d36e53b22686d46c675e6c9552eaca1eb6b8b5938830cd7a72a35bb6abf7aa41aa75b6e19daa1233
|
7
|
+
data.tar.gz: 458abb9ce704f54f54a4add49152cff7da717937143698a933b68e2a5f7570cff58cf9ede60f47edebfe8fcd734c0e6354ec72023e41f66f96abd0551a6326a2
|
data/Gemfile.lock
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
|
4
|
+
luminati (0.0.3)
|
5
5
|
faraday (>= 0.9)
|
6
|
+
faraday_middleware (>= 0.9)
|
6
7
|
|
7
8
|
GEM
|
8
9
|
remote: http://rubygems.org/
|
@@ -10,6 +11,8 @@ GEM
|
|
10
11
|
diff-lcs (1.2.5)
|
11
12
|
faraday (0.9.1)
|
12
13
|
multipart-post (>= 1.2, < 3)
|
14
|
+
faraday_middleware (0.9.1)
|
15
|
+
faraday (>= 0.7.4, < 0.10)
|
13
16
|
metaclass (0.0.4)
|
14
17
|
mocha (1.1.0)
|
15
18
|
metaclass (~> 0.0.1)
|
@@ -19,21 +22,21 @@ GEM
|
|
19
22
|
rspec-core (~> 3.2.0)
|
20
23
|
rspec-expectations (~> 3.2.0)
|
21
24
|
rspec-mocks (~> 3.2.0)
|
22
|
-
rspec-core (3.2.
|
25
|
+
rspec-core (3.2.2)
|
23
26
|
rspec-support (~> 3.2.0)
|
24
27
|
rspec-expectations (3.2.0)
|
25
28
|
diff-lcs (>= 1.2.0, < 2.0)
|
26
29
|
rspec-support (~> 3.2.0)
|
27
|
-
rspec-mocks (3.2.
|
30
|
+
rspec-mocks (3.2.1)
|
28
31
|
diff-lcs (>= 1.2.0, < 2.0)
|
29
32
|
rspec-support (~> 3.2.0)
|
30
|
-
rspec-support (3.2.
|
33
|
+
rspec-support (3.2.2)
|
31
34
|
|
32
35
|
PLATFORMS
|
33
36
|
ruby
|
34
37
|
|
35
38
|
DEPENDENCIES
|
36
|
-
|
39
|
+
luminati!
|
37
40
|
mocha
|
38
41
|
rake
|
39
42
|
rspec
|
data/README.md
CHANGED
@@ -1,5 +1,37 @@
|
|
1
1
|
# Luminati
|
2
2
|
Ruby-wrapper for communicating with the Luminati.io-network.
|
3
3
|
|
4
|
+
## How to use the wrapper
|
5
|
+
Add it to your Gemfile:
|
6
|
+
```ruby
|
7
|
+
gem 'luminati'
|
8
|
+
```
|
9
|
+
|
10
|
+
Basic example:
|
11
|
+
```ruby
|
12
|
+
luminati = Luminati::Client.new('username', 'password', zone: 'gen', port: 22225)
|
13
|
+
connection = luminati.get_connection(country: nil, dns_resolution: nil, session: nil)
|
14
|
+
|
15
|
+
session_id = connection[:session_id]
|
16
|
+
proxy_user = connection[:username]
|
17
|
+
proxy_password = connection[:password]
|
18
|
+
proxy_ip = connection[:ip_address]
|
19
|
+
proxy_port = connection[:port]
|
20
|
+
```
|
21
|
+
|
22
|
+
Use a custom zone, only use american ips and resolve dns remotely (on the client nodes):
|
23
|
+
```ruby
|
24
|
+
luminati = Luminati::Client.new('username', 'password', zone: 'customzone', port: 22225)
|
25
|
+
connection = luminati.get_connection(country: 'us', dns_resolution: :remote, session: nil)
|
26
|
+
```
|
27
|
+
|
28
|
+
Specify a session to re-use a previously used ip-address:
|
29
|
+
```ruby
|
30
|
+
luminati = Luminati::Client.new('username', 'password', zone: 'gen', port: 22225)
|
31
|
+
connection = luminati.get_connection(country: 'us', dns_resolution: :remote, session: '4b21543118c63c5a98397c240bee05ae18d0509d')
|
32
|
+
```
|
33
|
+
|
4
34
|
## Test coverage
|
5
|
-
|
35
|
+
Initial test coverage has since 2015-03-20 been added.
|
36
|
+
|
37
|
+
More tests will be added continously.
|
data/lib/luminati.rb
CHANGED
data/lib/luminati/client.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'faraday'
|
2
|
+
require 'faraday_middleware'
|
2
3
|
|
3
4
|
module Luminati
|
4
5
|
class Client
|
@@ -16,7 +17,8 @@ module Luminati
|
|
16
17
|
}
|
17
18
|
|
18
19
|
self.regexes = {
|
19
|
-
failed_auth:
|
20
|
+
failed_auth: /failed\sauth/i,
|
21
|
+
invalid_params: /invalid\sparams/i
|
20
22
|
}
|
21
23
|
end
|
22
24
|
|
@@ -86,8 +88,9 @@ module Luminati
|
|
86
88
|
end
|
87
89
|
|
88
90
|
def check_response_for_errors(response)
|
89
|
-
if (response && response.is_a?(String) && response.
|
91
|
+
if (response && response.is_a?(String) && !response.empty?)
|
90
92
|
raise Luminati::FailedAuthError, "Failed to authenticate your account with Luminati.io. Please check your credentials or the contract for your account." if response =~ self.regexes[:failed_auth]
|
93
|
+
raise Luminati::InvalidParamsError, "Failed to perform your requested action since invalid parameters were supplied." if response =~ self.regexes[:invalid_params]
|
91
94
|
end
|
92
95
|
end
|
93
96
|
|
data/lib/luminati/errors.rb
CHANGED
data/luminati.gemspec
CHANGED
@@ -3,7 +3,7 @@ Gem::Specification.new do |s|
|
|
3
3
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.3.5") if s.respond_to? :required_rubygems_version=
|
4
4
|
|
5
5
|
s.name = 'luminati'
|
6
|
-
s.version = '0.0.
|
6
|
+
s.version = '0.0.3'
|
7
7
|
|
8
8
|
s.homepage = "https://github.com/Agiley/Luminati"
|
9
9
|
s.email = "sebastian@agiley.se"
|
@@ -12,6 +12,7 @@ Gem::Specification.new do |s|
|
|
12
12
|
s.summary = "Ruby-wrapper for communicating with the Luminati.io-network."
|
13
13
|
|
14
14
|
s.add_dependency "faraday", ">= 0.9"
|
15
|
+
s.add_dependency "faraday_middleware", ">= 0.9"
|
15
16
|
|
16
17
|
s.add_development_dependency 'rake'
|
17
18
|
s.add_development_dependency 'rspec'
|
@@ -28,6 +29,7 @@ Gem::Specification.new do |s|
|
|
28
29
|
lib/luminati/client.rb
|
29
30
|
lib/luminati/errors.rb
|
30
31
|
luminati.gemspec
|
32
|
+
spec/luminati/client_spec.rb
|
31
33
|
spec/spec_helper.rb
|
32
34
|
]
|
33
35
|
# = MANIFEST =
|
@@ -0,0 +1,62 @@
|
|
1
|
+
require File.expand_path('../../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
describe "Luminati::Client" do
|
4
|
+
|
5
|
+
context "initialization" do
|
6
|
+
it "should set the correct instance variables for a new client with default initialization settings" do
|
7
|
+
username = 'user'
|
8
|
+
password = 'password'
|
9
|
+
client = Luminati::Client.new(username, password)
|
10
|
+
|
11
|
+
expect(client.username).to be == username
|
12
|
+
expect(client.password).to be == password
|
13
|
+
expect(client.zone).to be == :gen
|
14
|
+
expect(client.port).to be == 22225
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should set the correct instance variables for a new client with custom initialization settings" do
|
18
|
+
username = 'user'
|
19
|
+
password = 'password'
|
20
|
+
client = Luminati::Client.new(username, password, zone: :custom, port: 12345)
|
21
|
+
|
22
|
+
expect(client.username).to be == username
|
23
|
+
expect(client.password).to be == password
|
24
|
+
expect(client.zone).to be == :custom
|
25
|
+
expect(client.port).to be == 12345
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
context "master proxy" do
|
30
|
+
it "should be able to fetch a master proxy with correct credentials" do
|
31
|
+
client = Luminati::Client.new(CREDENTIALS['username'], CREDENTIALS['password'])
|
32
|
+
proxy = client.fetch_master_proxy
|
33
|
+
|
34
|
+
expect(proxy).not_to be_nil
|
35
|
+
expect(proxy).not_to be_empty
|
36
|
+
expect(proxy).to match(Resolv::IPv4::Regex)
|
37
|
+
end
|
38
|
+
|
39
|
+
it "should not be able to fetch a master proxy with incorrect credentials" do
|
40
|
+
client = Luminati::Client.new('user', 'password')
|
41
|
+
expect{client.fetch_master_proxy}.to raise_error(Luminati::InvalidParamsError)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
context "connection" do
|
46
|
+
it "should successfully be able to retrieve a valid connection with correct credentials" do
|
47
|
+
client = Luminati::Client.new(CREDENTIALS['username'], CREDENTIALS['password'])
|
48
|
+
connection = client.get_connection
|
49
|
+
|
50
|
+
expect(connection).not_to be_nil
|
51
|
+
expect(connection).not_to be_empty
|
52
|
+
expect(connection[:ip_address]).to match(Resolv::IPv4::Regex)
|
53
|
+
expect(connection[:port]).to be == 22225
|
54
|
+
end
|
55
|
+
|
56
|
+
it "should not be able to retrieve a valid connection with incorrect credentials" do
|
57
|
+
client = Luminati::Client.new('user', 'password')
|
58
|
+
expect{client.get_connection}.to raise_error(Luminati::InvalidParamsError)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: luminati
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sebastian Johnsson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-03-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0.9'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: faraday_middleware
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0.9'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0.9'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: rake
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -81,6 +95,7 @@ files:
|
|
81
95
|
- lib/luminati/client.rb
|
82
96
|
- lib/luminati/errors.rb
|
83
97
|
- luminati.gemspec
|
98
|
+
- spec/luminati/client_spec.rb
|
84
99
|
- spec/spec_helper.rb
|
85
100
|
homepage: https://github.com/Agiley/Luminati
|
86
101
|
licenses: []
|
@@ -106,4 +121,5 @@ signing_key:
|
|
106
121
|
specification_version: 2
|
107
122
|
summary: Ruby-wrapper for communicating with the Luminati.io-network.
|
108
123
|
test_files:
|
124
|
+
- spec/luminati/client_spec.rb
|
109
125
|
- spec/spec_helper.rb
|