Class: BMF::AddressStore

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/bmf/lib/address_store.rb

Instance Method Summary collapse

Constructor Details

#initializeAddressStore

Returns a new instance of AddressStore.



17
18
19
20
# File 'lib/bmf/lib/address_store.rb', line 17

def initialize
  @addresses = {}
  # update
end

Instance Method Details

#addressesObject

attr_reader :addresses



13
14
15
# File 'lib/bmf/lib/address_store.rb', line 13

def addresses
  Mutex.new.synchronize { @addresses.dup.freeze }
end

#log(x) ⇒ Object



22
23
24
# File 'lib/bmf/lib/address_store.rb', line 22

def log x
  puts x
end

#updateObject



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/bmf/lib/address_store.rb', line 26

def update
  address_infos = JSON.parse(BMF::XmlrpcClient.instance.listAddresses)['addresses']

  lock = Mutex.new

  lock.synchronize do
    new_addresses = 0

    address_infos.each do |address_info|
      address = address_info['address']
      if !@addresses.has_key? address
        new_addresses += 1
        @addresses[address] = address_info
      end
    end

    log "Added #{new_addresses} addresses..." if new_addresses > 0
  end
end