Class: Pebblebed::Security::Listener

Inherits:
Object
  • Object
show all
Defined in:
lib/pebblebed/security/listener.rb

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ Listener

Returns a new instance of Listener.



7
8
9
10
11
12
# File 'lib/pebblebed/security/listener.rb', line 7

def initialize(options)
  @app_name = options[:app_name]
  @handlers = {:access_group => {},
    :access_group_membership => {},
    :access_group_subtree => {}}
end

Instance Method Details

#on_group_declared(&block) ⇒ Object



25
26
27
28
# File 'lib/pebblebed/security/listener.rb', line 25

def on_group_declared(&block)
  @handlers[:access_group][:create] = block
  @handlers[:access_group][:update] = block
end

#on_group_removed(&block) ⇒ Object



30
31
32
# File 'lib/pebblebed/security/listener.rb', line 30

def on_group_removed(&block)
  @handlers[:access_group][:delete] = block
end

#on_membership_declared(&block) ⇒ Object



43
44
45
46
# File 'lib/pebblebed/security/listener.rb', line 43

def on_membership_declared(&block)
  @handlers[:access_group_membership][:create] = block
  @handlers[:access_group_membership][:update] = block
end

#on_membership_removed(&block) ⇒ Object



48
49
50
# File 'lib/pebblebed/security/listener.rb', line 48

def on_membership_removed(&block)
  @handlers[:access_group_membership][:delete] = block
end

#on_subtree_declared(&block) ⇒ Object



34
35
36
37
# File 'lib/pebblebed/security/listener.rb', line 34

def on_subtree_declared(&block)
  @handlers[:access_group_subtree][:create] = block
  @handlers[:access_group_subtree][:update] = block
end

#on_subtree_removed(&block) ⇒ Object



39
40
41
# File 'lib/pebblebed/security/listener.rb', line 39

def on_subtree_removed(&block)
  @handlers[:access_group_subtree][:delete] = block
end

#startObject



14
15
16
17
18
# File 'lib/pebblebed/security/listener.rb', line 14

def start
  @thread ||= Thread.new do
    process
  end
end

#stopObject



20
21
22
23
# File 'lib/pebblebed/security/listener.rb', line 20

def stop
  @thread.kill if @thread
  @thread = nil
end