Module | ActiveLdap::Connection::ClassMethods |
In: |
lib/active_ldap/connection.rb
|
# File lib/active_ldap/connection.rb, line 37 37: def active_connection_name 38: @active_connection_name ||= determine_active_connection_name 39: end
# File lib/active_ldap/connection.rb, line 55 55: def clear_active_connection_name 56: @active_connection_name = nil 57: ObjectSpace.each_object(Class) do |klass| 58: if klass < self and !klass.name.empty? 59: klass.instance_variable_set("@active_connection_name", nil) 60: end 61: end 62: end
# File lib/active_ldap/connection.rb, line 47 47: def clear_active_connections! 48: connections = active_connections 49: connections.each do |key, connection| 50: connection.disconnect! 51: end 52: connections.clear 53: end
# File lib/active_ldap/connection.rb, line 111 111: def connected? 112: active_connections[active_connection_name] ? true : false 113: end
# File lib/active_ldap/connection.rb, line 64 64: def connection 65: conn = nil 66: @active_connection_name ||= nil 67: if @active_connection_name 68: conn = active_connections[@active_connection_name] 69: end 70: unless conn 71: conn = retrieve_connection 72: active_connections[@active_connection_name] = conn 73: end 74: conn 75: end
# File lib/active_ldap/connection.rb, line 77 77: def connection=(adapter) 78: if adapter.is_a?(Adapter::Base) 79: active_connections[active_connection_name] = adapter 80: elsif adapter.is_a?(Hash) 81: config = adapter 82: self.connection = instantiate_adapter(config) 83: elsif adapter.nil? 84: raise ConnectionNotEstablished 85: else 86: establish_connection(adapter) 87: end 88: end
# File lib/active_ldap/connection.rb, line 107 107: def default_adapter 108: @@default_adapter ||= guess_available_adapter 109: end
# File lib/active_ldap/connection.rb, line 144 144: def establish_connection(config=nil) 145: config = ensure_configuration(config) 146: remove_connection 147: 148: clear_active_connection_name 149: key = active_connection_key 150: @active_connection_name = key 151: define_configuration(key, merge_configuration(config)) 152: end
# File lib/active_ldap/connection.rb, line 90 90: def instantiate_adapter(config) 91: adapter = (config[:adapter] || default_adapter) 92: normalized_adapter = adapter.downcase.gsub(/-/, "_") 93: adapter_method = "#{normalized_adapter}_connection" 94: unless Adapter::Base.respond_to?(adapter_method) 95: raise AdapterNotFound.new(adapter) 96: end 97: if config.has_key?(:ldap_scope) 98: logger.warning do 99: _(":ldap_scope connection option is deprecated. Use :scope instead.") 100: end 101: config[:scope] ||= config.delete(:ldap_scope) 102: end 103: config = remove_connection_related_configuration(config) 104: Adapter::Base.send(adapter_method, config) 105: end
# File lib/active_ldap/connection.rb, line 41 41: def remove_active_connections! 42: active_connections.keys.each do |key| 43: remove_connection(key) 44: end 45: end
# File lib/active_ldap/connection.rb, line 130 130: def remove_connection(klass_or_key=self) 131: if klass_or_key.is_a?(Module) 132: key = active_connection_key(klass_or_key) 133: else 134: key = klass_or_key 135: end 136: config = configuration(key) 137: conn = active_connections[key] 138: remove_configuration_by_configuration(config) 139: active_connections.delete_if {|key, value| value == conn} 140: conn.disconnect! if conn 141: config 142: end
# File lib/active_ldap/connection.rb, line 159 159: def reset_runtime 160: active_connections.inject(0) do |result, (name, connection)| 161: result + connection.reset_runtime 162: end 163: end
# File lib/active_ldap/connection.rb, line 115 115: def retrieve_connection 116: conn = nil 117: name = active_connection_name 118: raise ConnectionNotEstablished unless name 119: conn = active_connections[name] 120: if conn.nil? 121: config = configuration(name) 122: raise ConnectionNotEstablished unless config 123: self.connection = config 124: conn = active_connections[name] 125: end 126: raise ConnectionNotEstablished if conn.nil? 127: conn 128: end
# File lib/active_ldap/connection.rb, line 15 15: def single_threaded_active_connections 16: @@active_connections 17: end
# File lib/active_ldap/connection.rb, line 11 11: def thread_safe_active_connections 12: @@active_connections[Thread.current.object_id] ||= {} 13: end
# File lib/active_ldap/connection.rb, line 166 166: def active_connection_key(k=self) 167: k.name.empty? ? k.object_id : k.name 168: end
# File lib/active_ldap/connection.rb, line 181 181: def clear_all_cached_connections! 182: if @@allow_concurrency 183: @@active_connections.each_value do |connection_hash_for_thread| 184: connection_hash_for_thread.each_value {|conn| conn.disconnect!} 185: connection_hash_for_thread.clear 186: end 187: else 188: @@active_connections.each_value {|conn| conn.disconnect!} 189: end 190: @@active_connections.clear 191: end
# File lib/active_ldap/connection.rb, line 170 170: def determine_active_connection_name 171: key = active_connection_key 172: if active_connections[key] or configuration(key) 173: key 174: elsif self == ActiveLdap::Base 175: nil 176: else 177: superclass.active_connection_name 178: end 179: end