dripdrop 0.7.1 → 0.8.0

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/Rakefile CHANGED
@@ -17,6 +17,7 @@ begin
17
17
  gem.add_dependency('zmqmachine')
18
18
  gem.add_dependency('msgpack')
19
19
  gem.add_dependency('json')
20
+ gem.add_dependency('em-resolv-replace')
20
21
  end
21
22
  Jeweler::GemcutterTasks.new
22
23
  rescue LoadError
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.7.1
1
+ 0.8.0
data/dripdrop.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{dripdrop}
8
- s.version = "0.7.1"
8
+ s.version = "0.8.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Andrew Cholakian"]
@@ -91,6 +91,7 @@ Gem::Specification.new do |s|
91
91
  s.add_runtime_dependency(%q<zmqmachine>, [">= 0"])
92
92
  s.add_runtime_dependency(%q<msgpack>, [">= 0"])
93
93
  s.add_runtime_dependency(%q<json>, [">= 0"])
94
+ s.add_runtime_dependency(%q<em-resolv-replace>, [">= 0"])
94
95
  else
95
96
  s.add_dependency(%q<ffi-rzmq>, [">= 0"])
96
97
  s.add_dependency(%q<eventmachine>, [">= 0"])
@@ -99,6 +100,7 @@ Gem::Specification.new do |s|
99
100
  s.add_dependency(%q<zmqmachine>, [">= 0"])
100
101
  s.add_dependency(%q<msgpack>, [">= 0"])
101
102
  s.add_dependency(%q<json>, [">= 0"])
103
+ s.add_dependency(%q<em-resolv-replace>, [">= 0"])
102
104
  end
103
105
  else
104
106
  s.add_dependency(%q<ffi-rzmq>, [">= 0"])
@@ -108,6 +110,7 @@ Gem::Specification.new do |s|
108
110
  s.add_dependency(%q<zmqmachine>, [">= 0"])
109
111
  s.add_dependency(%q<msgpack>, [">= 0"])
110
112
  s.add_dependency(%q<json>, [">= 0"])
113
+ s.add_dependency(%q<em-resolv-replace>, [">= 0"])
111
114
  end
112
115
  end
113
116
 
data/example/pubsub.rb CHANGED
@@ -1,9 +1,10 @@
1
+ require 'rubygems'
1
2
  require 'dripdrop/node'
2
3
  Thread.abort_on_exception = true
3
4
 
4
5
  #Define our handlers
5
6
  DripDrop::Node.new do
6
- route :pub, :zmq_publish, 'tcp://127.0.0.1:2200', :bind
7
+ route :pub, :zmq_publish, 'tcp://localhost:2200', :bind
7
8
  route :sub1, :zmq_subscribe, pub.address, :connect, :topic_filter => /[13579]$/
8
9
  route :sub2, :zmq_subscribe, pub.address, :connect, :topic_filter => /[02468]$/
9
10
  route :sub3, :zmq_subscribe, pub.address, :connect
data/lib/dripdrop/node.rb CHANGED
@@ -3,6 +3,8 @@ require 'ffi-rzmq'
3
3
  require 'zmqmachine'
4
4
  require 'eventmachine'
5
5
  require 'uri'
6
+ require 'resolv'
7
+ require 'ipaddr'
6
8
 
7
9
  require 'dripdrop/message'
8
10
  require 'dripdrop/node/nodelet'
@@ -11,6 +13,10 @@ require 'dripdrop/handlers/zeromq'
11
13
  require 'dripdrop/handlers/websockets'
12
14
  require 'dripdrop/handlers/http'
13
15
 
16
+ if defined?(Fiber)
17
+ require 'em-resolv-replace'
18
+ end
19
+
14
20
  class DripDrop
15
21
  class Node
16
22
  attr_reader :zm_reactor, :routing, :nodelets
@@ -276,7 +282,12 @@ class DripDrop
276
282
 
277
283
  def zmq_handler(klass, zm_sock_type, address, socket_ctype, opts={})
278
284
  addr_uri = URI.parse(address)
279
- zm_addr = ZM::Address.new(addr_uri.host,addr_uri.port.to_i,addr_uri.scheme.to_sym)
285
+
286
+ host = Resolv.getaddresses(addr_uri.host).first
287
+ host_addr = Resolv.getaddresses('localhost').map {|a| IPAddr.new(a)}.find {|a| a.ipv4?}
288
+ host_str = host_addr.ipv6? ? "[#{host_addr.to_s}]" : host_addr.to_s
289
+
290
+ zm_addr = ZM::Address.new(host_str,addr_uri.port.to_i,addr_uri.scheme.to_sym)
280
291
  h_opts = handler_opts_given(opts)
281
292
  handler = klass.new(zm_addr,@zm_reactor,socket_ctype,h_opts)
282
293
  @zm_reactor.send(zm_sock_type,handler)
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dripdrop
3
3
  version: !ruby/object:Gem::Version
4
- hash: 1
4
+ hash: 63
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 7
9
- - 1
10
- version: 0.7.1
8
+ - 8
9
+ - 0
10
+ version: 0.8.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Andrew Cholakian
@@ -116,6 +116,20 @@ dependencies:
116
116
  version: "0"
117
117
  type: :runtime
118
118
  version_requirements: *id007
119
+ - !ruby/object:Gem::Dependency
120
+ name: em-resolv-replace
121
+ prerelease: false
122
+ requirement: &id008 !ruby/object:Gem::Requirement
123
+ none: false
124
+ requirements:
125
+ - - ">="
126
+ - !ruby/object:Gem::Version
127
+ hash: 3
128
+ segments:
129
+ - 0
130
+ version: "0"
131
+ type: :runtime
132
+ version_requirements: *id008
119
133
  description: "Evented framework for ZeroMQ and EventMachine Apps. "
120
134
  email: andrew@andrewvc.com
121
135
  executables: []