class SBSM::AdminServer

AdminClass must be tied to an Rack app

Public Class Methods

new(app:, multi_threaded: false) click to toggle source
# 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

Public Instance Methods

_admin(src, result, priority=0) click to toggle source
# 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