views:

33

answers:

1

I have a Sinatra::Base object that I would like to include in all of my web apps. In that base class I have the configure method which is called on start-up.

I would like that configure code to 'register' that service with a centralized database. The information that needs to be sent when registering is the information on how to contact this web-service... things like host and port.

I then plan on having a monitoring service that will spin over all registered services and occasionally ping them to make sure they are still up and running.

In the configure method I am having trouble getting the port information. The 'self.settings.port' variable doesn't seem to work in this method.

a) any ideas on how to get the port? I have the host.

b) is there a sinatra plug-in that already does something like this so I don't have to write it myself? :-)

//in my Sinatra::Base code. lets call it register_me.rb

RegisterMe < Sinatra::Base

configure do

//save host and port information to database

end

get '/check_status'

//return status

end


//in my web service code

require register_me //at this point, sinatra will initialize the RegisterMe object and call configure

post ('/blah')

//example of a method for this particular web service

end

A: 

Sinatra::Application.port will return the correct port

Poul