Module: Fraggle

Defined in:
lib/fraggle.rb,
lib/fraggle/client.rb,
lib/fraggle/msg.pb.rb,
lib/fraggle/request.rb,
lib/fraggle/version.rb,
lib/fraggle/response.rb,
lib/fraggle/connection.rb

Defined Under Namespace

Modules: Connection Classes: Client, Request, Response

Constant Summary collapse

DEFAULT_URI =
"doozer:?" + [
  "ca=127.0.0.1:8046",
  "ca=127.0.0.1:8041",
  "ca=127.0.0.1:8042",
  "ca=127.0.0.1:8043"
].join("&")
VERSION =
"2.0.0"

Class Method Summary collapse

Class Method Details

.connect(uri = nil) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/fraggle.rb', line 12

def self.connect(uri=nil)
  uri = uri || ENV["DOOZER_URI"] || DEFAULT_URI

  addrs = uri(uri)

  if addrs.length == 0
    raise ArgumentError, "there were no addrs supplied in the uri (#{uri.inspect})"
  end

  addr = addrs.shift
  host, port = addr.split(":")

  cn = EM.connect(host, port, Connection, addr)
  Client.new(cn, addrs)
end

.uri(u) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/fraggle.rb', line 28

def self.uri(u)
  if u =~ /^doozer:\?(.*)$/
    parts = $1.split("&")
    parts.inject([]) do |m, pt|
      k, v = pt.split("=")
      if k == "ca"
        m << v
      end
      m
    end
  else
    raise ArgumentError, "invalid doozer uri"
  end
end