module ActiveLdap::Connection::ClassMethods
Public Instance Methods
active_connection_name()
click to toggle source
# File lib/active_ldap/connection.rb, line 37 def active_connection_name @active_connection_name ||= determine_active_connection_name end
clear_active_connection_name()
click to toggle source
# File lib/active_ldap/connection.rb, line 55 def clear_active_connection_name @active_connection_name = nil ObjectSpace.each_object(Class) do |klass| if klass < self and !klass.name.blank? klass.instance_variable_set("@active_connection_name", nil) end end end
clear_active_connections!()
click to toggle source
# File lib/active_ldap/connection.rb, line 47 def clear_active_connections! connections = active_connections connections.each do |key, connection| connection.disconnect! end connections.clear end
connected?()
click to toggle source
# File lib/active_ldap/connection.rb, line 111 def connected? active_connections[active_connection_name] ? true : false end
connection()
click to toggle source
# File lib/active_ldap/connection.rb, line 64 def connection conn = nil @active_connection_name ||= nil if @active_connection_name conn = active_connections[@active_connection_name] end unless conn conn = retrieve_connection active_connections[@active_connection_name] = conn end conn end
connection=(adapter)
click to toggle source
# File lib/active_ldap/connection.rb, line 77 def connection=(adapter) if adapter.is_a?(Adapter::Base) active_connections[active_connection_name] = adapter elsif adapter.is_a?(Hash) config = adapter self.connection = instantiate_adapter(config) elsif adapter.nil? raise ConnectionNotSetup else setup_connection(adapter) end end
default_adapter()
click to toggle source
# File lib/active_ldap/connection.rb, line 107 def default_adapter @@default_adapter ||= guess_available_adapter end
establish_connection(config=nil)
click to toggle source
# File lib/active_ldap/connection.rb, line 154 def establish_connection(config=nil) message = _("ActiveLdap::Connection.establish_connection has been deprecated " "since 1.1.0. " "Please use ActiveLdap::Connection.setup_connection instead.") ActiveSupport::Deprecation.warn(message) setup_connection(config) end
instantiate_adapter(config)
click to toggle source
# File lib/active_ldap/connection.rb, line 90 def instantiate_adapter(config) adapter = (config[:adapter] || default_adapter) normalized_adapter = adapter.downcase.gsub(/-/, "_") adapter_method = "#{normalized_adapter}_connection" unless Adapter::Base.respond_to?(adapter_method) raise AdapterNotFound.new(adapter) end if config.has_key?(:ldap_scope) message = _(":ldap_scope connection option is deprecated. " "Use :scope instead.") ActiveSupport::Deprecation.warn(message) config[:scope] ||= config.delete(:ldap_scope) end config = remove_connection_related_configuration(config) Adapter::Base.send(adapter_method, config) end
remove_active_connections!()
click to toggle source
# File lib/active_ldap/connection.rb, line 41 def remove_active_connections! active_connections.keys.each do |key| remove_connection(key) end end
remove_connection(klass_or_key=self)
click to toggle source
# File lib/active_ldap/connection.rb, line 130 def remove_connection(klass_or_key=self) if klass_or_key.is_a?(Module) key = active_connection_key(klass_or_key) else key = klass_or_key end config = configuration(key) conn = active_connections[key] remove_configuration_by_configuration(config) active_connections.delete_if {|_key, value| value == conn} conn.disconnect! if conn config end
reset_runtime()
click to toggle source
# File lib/active_ldap/connection.rb, line 168 def reset_runtime active_connections.inject(0) do |result, (name, connection)| _ = name # for suppress a warning on Ruby 1.9.3 result + connection.reset_runtime end end
retrieve_connection()
click to toggle source
# File lib/active_ldap/connection.rb, line 115 def retrieve_connection conn = nil name = active_connection_name raise ConnectionNotSetup unless name conn = active_connections[name] if conn.nil? config = configuration(name) raise ConnectionNotSetup unless config self.connection = config conn = active_connections[name] end raise ConnectionNotSetup if conn.nil? conn end
schema()
click to toggle source
Return the schema object
# File lib/active_ldap/connection.rb, line 164 def schema connection.schema end
setup_connection(config=nil)
click to toggle source
# File lib/active_ldap/connection.rb, line 144 def setup_connection(config=nil) config = ensure_configuration(config) remove_connection clear_active_connection_name key = active_connection_key @active_connection_name = key define_configuration(key, merge_configuration(config)) end
single_threaded_active_connections()
click to toggle source
# File lib/active_ldap/connection.rb, line 15 def single_threaded_active_connections @@active_connections end
thread_safe_active_connections()
click to toggle source
# File lib/active_ldap/connection.rb, line 11 def thread_safe_active_connections @@active_connections[Thread.current.object_id] ||= {} end
Private Instance Methods
active_connection_key(k=self)
click to toggle source
# File lib/active_ldap/connection.rb, line 176 def active_connection_key(k=self) k.name.blank? ? k.object_id : k.name end
clear_all_cached_connections!()
click to toggle source
# File lib/active_ldap/connection.rb, line 191 def clear_all_cached_connections! if @@allow_concurrency @@active_connections.each_value do |connection_hash_for_thread| connection_hash_for_thread.each_value {|conn| conn.disconnect!} connection_hash_for_thread.clear end else @@active_connections.each_value {|conn| conn.disconnect!} end @@active_connections.clear end
determine_active_connection_name()
click to toggle source
# File lib/active_ldap/connection.rb, line 180 def determine_active_connection_name key = active_connection_key if active_connections[key] or configuration(key) key elsif self == ActiveLdap::Base nil else superclass.active_connection_name end end
gem_available?(name)
click to toggle source
# File lib/active_ldap/connection.rb, line 225 def gem_available?(name) not Gem::Specification.find_all_by_name(name).empty? end
guess_available_adapter()
click to toggle source
# File lib/active_ldap/connection.rb, line 203 def guess_available_adapter if Object.respond_to?(:java) "jndi" else ruby_ldap_available = false $LOAD_PATH.each do |path| if File.exist?(File.join(path, "ldap", "ldif.rb")) ruby_ldap_available = true break end end if !ruby_ldap_available and Object.const_defined?(:Gem) ruby_ldap_available = gem_available?("ruby-ldap") end if ruby_ldap_available "ldap" else "net-ldap" end end end