Class: Sparoid::Instance

Inherits:
Object
  • Object
show all
Includes:
Sparoid
Defined in:
lib/sparoid.rb

Overview

Instance of SPAroid that resolves its public IP once and reuses it

Constant Summary

Constants included from Sparoid

GOOGLE_DNS_V6, SPAROID_CACHE_PATH, URLS, VERSION

Instance Method Summary collapse

Methods included from Sparoid

#auth, #fdpass, #keygen

Constructor Details

#initializeInstance

Returns a new instance of Instance.



264
265
266
267
# File 'lib/sparoid.rb', line 264

def initialize
  @resolve_mutex = Mutex.new
  @public_ips = []
end

Instance Method Details

#cached_public_ipsObject



269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
# File 'lib/sparoid.rb', line 269

def cached_public_ips
  return @public_ips if @public_ips.any?

  @resolve_mutex.synchronize do
    return @public_ips if @public_ips.any?

    ips = public_ips
    if ips.empty?
      warn "Sparoid: Failed to retrieve public IPs"
    else
      @public_ips = ips
    end
    ips
  end
end