Module: Gts::Server
- Defined in:
- lib/gts/server.rb
Overview
Defined Under Namespace
Classes: CantDetermineIMEI, DontKnowHowToHandleThisDevice, GtsError
Constant Summary
collapse
- @@tracker_requests_count =
0
- @@started_at =
nil
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.list_known_devices ⇒ Object
74
75
76
|
# File 'lib/gts/server.rb', line 74
def self.list_known_devices
@@imei_handlers.map{ |k,v| "#{k}: #{v}" }.join "\n"
end
|
.logger ⇒ Object
20
21
22
|
# File 'lib/gts/server.rb', line 20
def self.logger
Gts.logger
end
|
.start!(opts = {}) ⇒ Object
47
48
49
50
51
52
53
54
55
56
57
58
|
# File 'lib/gts/server.rb', line 47
def self.start!(opts={})
@@address = opts[:address]
@@port = opts[:port]
@@output_file = opts[:output_file]
@@started_at ||= Time.now
EventMachine::run {
EventMachine::start_server @@address, @@port, self
puts "Server started. Press Ctrl+C to stop."
puts "Hunting for data..."
}
self
end
|
.stop! ⇒ Object
60
61
62
63
|
# File 'lib/gts/server.rb', line 60
def self.stop!
EventMachine::stop
puts "Bye!"
end
|
.uptime ⇒ Object
65
66
67
68
69
70
71
72
|
# File 'lib/gts/server.rb', line 65
def self.uptime
sum = Time.now - @@started_at
days = (sum / (3600 * 24)).to_i
hours = (sum / 3600 - (days * (3600 * 24))).to_i
minutes = (sum / 60 - hours * 60).to_i
seconds = (sum % 60).to_i
"#{days}d #{hours}h #{minutes}m #{seconds}s"
end
|
Instance Method Details
#logger ⇒ Object
16
17
18
|
# File 'lib/gts/server.rb', line 16
def logger
Gts.logger
end
|
#post_init ⇒ Object
35
36
37
|
# File 'lib/gts/server.rb', line 35
def post_init
logger.info "New connection from #{client_ip_address}"
end
|
#receive_data(data) ⇒ Object
39
40
41
42
43
44
45
|
# File 'lib/gts/server.rb', line 39
def receive_data data
if data =~ /^%/
handle_command(data.gsub(/^%\s*?/, ''))
else
handle_tracker_data(data)
end
end
|