183: def execute_request(default=nil, timeout=nil, &request)
184: timeout ||= 30
185: raise "No block provided" unless request
186: response = nil
187: begin
188: Timeout::timeout(timeout) do
189: response = request.call
190: end
191:
192: rescue Timeout::Error => ex
193: Rudy::Huxtable.le "Timeout (#{timeout}): #{ex.message}!"
194: rescue SocketError => ex
195:
196:
197: raise SocketError, "Check your Internets!" unless Rudy::Huxtable.global.offline
198: ensure
199: response ||= default
200: end
201: response
202: end