em-synchrony-moped 0.9.1 → 0.9.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'em-synchrony-moped'
5
- s.version = "0.9.1"
5
+ s.version = "0.9.2"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Adam Lebsack"]
@@ -12,6 +12,18 @@ silence_warnings {
12
12
  end
13
13
 
14
14
  class Node
15
+ def resolve_address
16
+ begin
17
+ parse_address and true
18
+ rescue SocketError
19
+ if logger = Moped.logger
20
+ logger.warn " MOPED: Could not resolve IP address for #{address}"
21
+ end
22
+ @down_at = Time.new
23
+ false
24
+ end
25
+ end
26
+
15
27
  # Override to support non-blocking DNS requests
16
28
  def parse_address
17
29
  host, port = address.split(":")
@@ -27,7 +39,10 @@ silence_warnings {
27
39
  break
28
40
  end
29
41
  end
42
+ raise SocketError unless @ip_address
30
43
  @resolved_address = "#{@ip_address}:#{@port}"
44
+ rescue Resolv::ResolvError
45
+ raise SocketError
31
46
  end
32
47
  end
33
48
 
data/spec/moped_spec.rb CHANGED
@@ -10,6 +10,24 @@ describe "em-synchrony/moped" do
10
10
  host = options.delete(:host) || 'localhost'
11
11
  Moped::Node.new("#{host}:#{FakeMongodHelper::BASE_PORT}", options)
12
12
  end
13
+
14
+ context "ip address caching" do
15
+ subject { new_node }
16
+ around do |block|
17
+ EventMachine.synchrony do
18
+ start_mongod
19
+
20
+ block.call
21
+ EM.stop
22
+ end
23
+ end
24
+
25
+ it "doesn't cache the ip_address" do
26
+ subject.ip_address == "10.0.0.1"
27
+ subject.should_receive(:parse_address)
28
+ subject.refresh
29
+ end
30
+ end
13
31
 
14
32
  context "without ssl" do
15
33
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: em-synchrony-moped
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.1
4
+ version: 0.9.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-05-03 00:00:00.000000000 Z
12
+ date: 2013-05-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: eventmachine