Listing 7. Standalone SOAP Server

require 'soap/rpc/standaloneServer'

class LocalizationServer < SOAP::RPC::StandaloneServer
  def on_init
    @log.level = Logger::Severity::DEBUG
    add_method(
      self,
      'locate',
      'street',
      'house_number',
      'postal_code',
      'city',
      'state'
    )
  end

  def locate(street, house_number, postal_code, city, state)
    [97.03, 32.90]
  end
end

server = LocalizationServer.new(
  'localization', 'urn:LocService', '0.0.0.0', 2000
)
trap(:INT) { server.shutdown }
server.start

