Class: SBSM::AdminServer

Inherits:
Object
  • Object
show all
Defined in:
lib/sbsm/admin_server.rb

Overview

AdminClass must be tied to an Rack app

Instance Method Summary collapse

Constructor Details

#initialize(app:, multi_threaded: false) ⇒ AdminServer

Returns a new instance of AdminServer.



40
41
42
43
# File 'lib/sbsm/admin_server.rb', line 40

def initialize(app:, multi_threaded: false)
  @session = SBSM::SessionStore.new(app: app, multi_threaded: multi_threaded)
  @admin_threads = ThreadGroup.new
end

Instance Method Details

#_admin(src, result, priority = 0) ⇒ Object



44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/sbsm/admin_server.rb', line 44

def _admin(src, result, priority=0)
  t = Thread.new {
    Thread.current.abort_on_exception = false
    result << begin
      response = begin
        instance_eval(src)
      rescue NameError => e
        e
      end
      str = response.to_s
      if(str.length > 200)
        response.class
      else
        str
      end
    rescue StandardError => e
      e.message
    end.to_s
  }
  t[:source] = src
  t.priority = priority
  @admin_threads.add(t)
  t
end