class Casbin::SyncedEnforcer

SyncedEnforcer wraps Enforcer and provides synchronized access. It's also a drop-in replacement for Enforcer

Public Instance Methods

auto_loading_running?() click to toggle source

check if SyncedEnforcer is auto loading policies

# File lib/casbin-ruby/synced_enforcer.rb, line 10
def auto_loading_running?
  ThreadLock.lock?
end
start_auto_load_policy(interval) click to toggle source

starts a thread that will call load_policy every interval seconds

# File lib/casbin-ruby/synced_enforcer.rb, line 15
def start_auto_load_policy(interval)
  return if auto_loading_running?

  ThreadLock.thread = Thread.new { auto_load_policy(interval) }
end
stop_auto_load_policy() click to toggle source

stops the thread started by start_auto_load_policy

# File lib/casbin-ruby/synced_enforcer.rb, line 22
def stop_auto_load_policy
  ThreadLock.thread.exit if auto_loading_running?
end

Private Instance Methods

auto_load_policy(interval) click to toggle source
# File lib/casbin-ruby/synced_enforcer.rb, line 32
def auto_load_policy(interval)
  while auto_loading_running?
    sleep(interval)
    load_policy
  end
end