Module: Gts

Defined in:
lib/gts.rb,
lib/gts/server.rb,
lib/gts/command.rb,
lib/gts/storage.rb,
lib/gts/version.rb,
lib/gts/command_parser.rb,
lib/gts/commands/dump_command.rb,
lib/gts/commands/help_command.rb,
lib/gts/handlers/tk102_handler.rb,
lib/gts/storages/redis_storage.rb,
lib/gts/commands/uptime_command.rb,
lib/gts/commands/dump_size_command.rb,
lib/gts/abstract_gps_tracker_handler.rb,
lib/gts/commands/storage_info_command.rb,
lib/gts/commands/list_known_devices_command.rb

Defined Under Namespace

Modules: Server Classes: AbstractGPSTrackerHandler, Command, CommandParser, DumpCommand, DumpSizeCommand, HelpCommand, ListKnownDevicesCommand, RedisStorage, Storage, StorageInfoCommand, TK102Handler, UptimeCommand

Constant Summary collapse

VERSION =
"0.1.9"

Class Method Summary collapse

Class Method Details

.daemonizeObject



82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# File 'lib/gts.rb', line 82

def self.daemonize
  if RUBY_VERSION < "1.9"
    exit if fork
    Process.setsid
    exit if fork
    Dir.chdir "/" 
    STDIN.reopen "/dev/null"
    STDERR.reopen "/dev/null", "a" 
  else
    orig_stdout = STDOUT.clone
    Process.daemon
    STDOUT.reopen orig_stdout
  end 
  puts "Running in background with PID #{Process.pid}"
  STDOUT.reopen "/dev/null", "a"
  set_logger # reopen logger, just to make sure
end

.log_filenameObject



58
59
60
61
62
63
64
# File 'lib/gts.rb', line 58

def self.log_filename
  begin 
    @@log_filename 
  rescue
    @@log_filename = STDOUT
  end
end

.log_levelObject



26
27
28
29
30
31
32
33
# File 'lib/gts.rb', line 26

def self.log_level
  begin
    @@log_level
  rescue
    set_log_level
    @@log_level
  end
end

.loggerObject



35
36
37
38
39
40
41
42
# File 'lib/gts.rb', line 35

def self.logger
  begin 
    @@logger
  rescue
    set_logger
    @@logger
  end
end

.register_handler(klass) ⇒ Object



6
7
8
9
10
11
# File 'lib/gts.rb', line 6

def self.register_handler(klass)
  @@registered_handlers ||= {}
  klass.devices.each do |d|
    @@registered_handlers[d] = klass
  end
end

.registered_handlersObject



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

def self.registered_handlers
  @@registered_handlers
end

.serverObject



70
71
72
# File 'lib/gts.rb', line 70

def self.server
  @@server
end

.server=(server_instance) ⇒ Object



66
67
68
# File 'lib/gts.rb', line 66

def self.server=(server_instance)
  @@server = server_instance
end

.set_log_filename(filename) ⇒ Object



53
54
55
56
# File 'lib/gts.rb', line 53

def self.set_log_filename(filename)
  @@log_filename = filename
  FileUtils.touch filename
end

.set_log_level(level = :info) ⇒ Object



17
18
19
20
21
22
23
24
# File 'lib/gts.rb', line 17

def self.set_log_level(level=:info)
  case level
  when :debug
    @@log_level = Logger::DEBUG
  else 
    @@log_level = Logger::INFO
  end
end

.set_loggerObject



44
45
46
47
48
49
50
51
# File 'lib/gts.rb', line 44

def self.set_logger
  @@logger = Logger.new(log_filename)
  @@logger.datetime_format = "%d.%m.%Y %H:%M:%S"
  @@logger.formatter = proc do |severity, datetime, progname, msg|
    "#{datetime} #{severity}: #{msg}\n"
  end
  @@logger.level = log_level
end

.storageObject



78
79
80
# File 'lib/gts.rb', line 78

def self.storage
  @@storage
end

.storage=(storage) ⇒ Object



74
75
76
# File 'lib/gts.rb', line 74

def self.storage=(storage)
  @@storage = storage
end