load_balance_client 0.1.1 → 0.1.2
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.
- data/VERSION +1 -1
- data/lib/load_balance_client.rb +17 -0
- data/load_balance_client.gemspec +2 -2
- data/test/client_test.rb +9 -0
- metadata +8 -8
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.2
|
data/lib/load_balance_client.rb
CHANGED
@@ -33,6 +33,23 @@ class LoadBalanceClient
|
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
36
|
+
def self.post(url, body)
|
37
|
+
server = @@servers[rand(@@servers.length)]
|
38
|
+
begin
|
39
|
+
RestClient.post(server + url, body) do |response, request, result, &block|
|
40
|
+
case response.code
|
41
|
+
when 200
|
42
|
+
JSON.parse(response.body)
|
43
|
+
else
|
44
|
+
{}
|
45
|
+
end
|
46
|
+
end
|
47
|
+
rescue Errno::ECONNREFUSED => e
|
48
|
+
@@servers.delete(server)
|
49
|
+
return post(url, body) unless @@servers.length == 0
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
36
53
|
def self.delete(url)
|
37
54
|
server = @@servers[rand(@@servers.length)]
|
38
55
|
begin
|
data/load_balance_client.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "load_balance_client"
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Nathan Acuff", "Justin Hill", "Matt Brown"]
|
12
|
-
s.date = "2012-
|
12
|
+
s.date = "2012-03-09"
|
13
13
|
s.description = "Simple wrapper around RestClient to make load balanced http requests"
|
14
14
|
s.email = "support@igodigital.com"
|
15
15
|
s.extra_rdoc_files = [
|
data/test/client_test.rb
CHANGED
@@ -11,6 +11,15 @@ class ClientTest < MiniTest::Unit::TestCase
|
|
11
11
|
assert_equal ['http://localhost:9200'], LoadBalanceClient.server_list
|
12
12
|
end
|
13
13
|
|
14
|
+
def test_bad_node_for_post
|
15
|
+
LoadBalanceClient.server_list=['http://localhost:9200', 'http://localhost:46250']
|
16
|
+
10.times do
|
17
|
+
LoadBalanceClient.post '/igodigital/users/abc123', {'foo'=>'bar'}.to_json
|
18
|
+
end
|
19
|
+
assert_equal 1, LoadBalanceClient.server_list.length
|
20
|
+
assert_equal ['http://localhost:9200'], LoadBalanceClient.server_list
|
21
|
+
end
|
22
|
+
|
14
23
|
def test_bad_node_for_get
|
15
24
|
LoadBalanceClient.server_list=['http://localhost:9200', 'http://localhost:46250']
|
16
25
|
10.times do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: load_balance_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -11,11 +11,11 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2012-
|
14
|
+
date: 2012-03-09 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: rest-client
|
18
|
-
requirement: &
|
18
|
+
requirement: &70234161800420 !ruby/object:Gem::Requirement
|
19
19
|
none: false
|
20
20
|
requirements:
|
21
21
|
- - ~>
|
@@ -23,10 +23,10 @@ dependencies:
|
|
23
23
|
version: 1.6.7
|
24
24
|
type: :runtime
|
25
25
|
prerelease: false
|
26
|
-
version_requirements: *
|
26
|
+
version_requirements: *70234161800420
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: jeweler
|
29
|
-
requirement: &
|
29
|
+
requirement: &70234161796540 !ruby/object:Gem::Requirement
|
30
30
|
none: false
|
31
31
|
requirements:
|
32
32
|
- - ~>
|
@@ -34,10 +34,10 @@ dependencies:
|
|
34
34
|
version: 1.6.4
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
|
-
version_requirements: *
|
37
|
+
version_requirements: *70234161796540
|
38
38
|
- !ruby/object:Gem::Dependency
|
39
39
|
name: json
|
40
|
-
requirement: &
|
40
|
+
requirement: &70234161795100 !ruby/object:Gem::Requirement
|
41
41
|
none: false
|
42
42
|
requirements:
|
43
43
|
- - ! '>='
|
@@ -45,7 +45,7 @@ dependencies:
|
|
45
45
|
version: '0'
|
46
46
|
type: :runtime
|
47
47
|
prerelease: false
|
48
|
-
version_requirements: *
|
48
|
+
version_requirements: *70234161795100
|
49
49
|
description: Simple wrapper around RestClient to make load balanced http requests
|
50
50
|
email: support@igodigital.com
|
51
51
|
executables: []
|