markbates-distribunaut 0.0.2 → 0.0.2.20090406
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.
@@ -40,10 +40,9 @@ module Distribunaut # :nodoc:
|
|
40
40
|
|
41
41
|
end
|
42
42
|
}
|
43
|
-
|
44
|
-
Distribunaut::Distributed::Utils::Rinda.register_or_renew(:space =>
|
45
|
-
|
46
|
-
:object => "Distribunaut::Distributed::#{base}Proxy".constantize.instance)
|
43
|
+
obj = "Distribunaut::Distributed::#{base}Proxy".constantize.instance
|
44
|
+
Distribunaut::Distributed::Utils::Rinda.register_or_renew(:space => "#{base}".to_sym,
|
45
|
+
:object => obj)
|
47
46
|
end
|
48
47
|
end
|
49
48
|
|
@@ -3,21 +3,21 @@ module Distribunaut # :nodoc:
|
|
3
3
|
|
4
4
|
# Looks up and tries to find the missing constant using the ring server.
|
5
5
|
def self.const_missing(const)
|
6
|
-
Distribunaut::Distributed::Utils::Rinda.read(:
|
6
|
+
Distribunaut::Distributed::Utils::Rinda.read(:space => "#{const}".to_sym)
|
7
7
|
end
|
8
8
|
|
9
9
|
# Allows for the specific lookup of services on the ring server
|
10
10
|
#
|
11
11
|
# Examples:
|
12
|
-
# Distribunaut::Distributed::Utils::Rinda.register_or_renew(:
|
13
|
-
# Distribunaut::Distributed::Utils::Rinda.register_or_renew(:
|
12
|
+
# Distribunaut::Distributed::Utils::Rinda.register_or_renew(:app_name => :app_1, :space => :Test, :object => "Hello World!")
|
13
|
+
# Distribunaut::Distributed::Utils::Rinda.register_or_renew(:app_name => :app_2, :space => :Test, :object => "Hello WORLD!")
|
14
14
|
# Distribunaut::Distributed.lookup("distributed://app_1/Test") # => "Hello World!"
|
15
15
|
# Distribunaut::Distributed.lookup("distributed://app_2/Test") # => "Hello WORLD!"
|
16
16
|
def self.lookup(address)
|
17
17
|
uri = Addressable::URI.parse(address)
|
18
18
|
path = uri.path[1..uri.path.size] # remove the first slash
|
19
19
|
host = uri.host
|
20
|
-
Distribunaut::Distributed::Utils::Rinda.read(:
|
20
|
+
Distribunaut::Distributed::Utils::Rinda.read(:space => path.to_sym, :app_name => host.to_sym)
|
21
21
|
end
|
22
22
|
|
23
23
|
end # Distributed
|
@@ -9,14 +9,6 @@ module Distribunaut
|
|
9
9
|
super("APPLICATION: #{app_name} is not a known/registered distributed application.")
|
10
10
|
end
|
11
11
|
end
|
12
|
-
|
13
|
-
# Raised when an unknown distributed route name for a distributed application is referenced.
|
14
|
-
class UnknownRouteName < StandardError
|
15
|
-
# Takes the application name and the route name.
|
16
|
-
def initialize(app_name, route_name)
|
17
|
-
super("ROUTE_NAME: #{route_name}, is not a known/registered distributed route name for application: #{app_name}.")
|
18
|
-
end
|
19
|
-
end
|
20
12
|
|
21
13
|
# Raised when an application doesn't declare it's application name for use in a distributed system.
|
22
14
|
class ApplicationNameUndefined < StandardError
|
@@ -27,7 +19,8 @@ module Distribunaut
|
|
27
19
|
def inititalize(msg)
|
28
20
|
super("Invalid addressable format: #{msg}")
|
29
21
|
end
|
30
|
-
end
|
22
|
+
end
|
23
|
+
|
31
24
|
end # Errors
|
32
25
|
end # Distributed
|
33
26
|
end # Distribunaut
|
@@ -6,7 +6,7 @@ module Distribunaut
|
|
6
6
|
def self.register_or_renew(options = {})
|
7
7
|
options = handle_options(options)
|
8
8
|
begin
|
9
|
-
ring_server.take([options[:
|
9
|
+
ring_server.take([options[:app_name], options[:space], nil, nil], options[:timeout])
|
10
10
|
rescue Exception => e
|
11
11
|
# Distribunaut.logger.error(e)
|
12
12
|
end
|
@@ -15,8 +15,8 @@ module Distribunaut
|
|
15
15
|
|
16
16
|
def self.register(options = {})
|
17
17
|
options = handle_options(options)
|
18
|
-
ring_server.write([options[:
|
19
|
-
options[:
|
18
|
+
ring_server.write([options[:app_name],
|
19
|
+
options[:space],
|
20
20
|
options[:object],
|
21
21
|
options[:description]],
|
22
22
|
::Rinda::SimpleRenewer.new)
|
@@ -34,12 +34,18 @@ module Distribunaut
|
|
34
34
|
|
35
35
|
def self.read(options = {})
|
36
36
|
options = handle_options(options)
|
37
|
-
ring_server.read([options[:
|
37
|
+
ring_server.read([options[:app_name], options[:space], nil, options[:description]], options[:timeout])[2]
|
38
38
|
end
|
39
39
|
|
40
40
|
private
|
41
41
|
def self.handle_options(options = {})
|
42
|
-
|
42
|
+
raise Distribunaut::Distributed::Errors::ApplicationNameUndefined.new if configatron.distribunaut.app_name.nil?
|
43
|
+
{:app_name => configatron.distribunaut.app_name,
|
44
|
+
:space => nil,
|
45
|
+
:object => nil,
|
46
|
+
:description => nil,
|
47
|
+
:timeout => configatron.distribunaut.timeout
|
48
|
+
}.merge(options)
|
43
49
|
end
|
44
50
|
|
45
51
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: markbates-distribunaut
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.2
|
4
|
+
version: 0.0.2.20090406
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- markbates
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-04-
|
12
|
+
date: 2009-04-06 00:00:00 -07:00
|
13
13
|
default_executable: distribunaut_ring_server
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|