Sha256: 1beff967c5eb2ab6836da4d2a8f85fcb14a1937c105b92a1db6caf690515af5f

Contents?: true

Size: 967 Bytes

Versions: 8

Compression:

Stored size: 967 Bytes

Contents

require 'socket'
require 'timeout'

module DeviseCasAuthenticatable
  class MemcacheChecker
    attr_reader :rails_configuration

    def initialize(rails_configuration)
      @rails_configuration = rails_configuration
    end

    def session_store_memcache?
      !!(session_store_class.name =~ /memcache/i)
    end

    def alive?
      memcache_servers = rails_configuration.session_options[:memcache_server] || ["127.0.0.1:11211"]
      memcache_servers.each do |server|
        host, port = server.split(":")
        begin
          try_connect host, port

          return true
        rescue Errno::ECONNREFUSED, Timeout::Error
          return false
        end
      end
    end

    def try_connect(host, port)
      Timeout::timeout(1) do
        TCPSocket.open(host, port)
      end
    end

    private

    def session_store_class
      @session_store_class ||= DeviseCasAuthenticatable::SessionStoreIdentifier.new.session_store_class
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
devise_cas_authenticatable-1.10.4 lib/devise_cas_authenticatable/memcache_checker.rb
devise_cas_authenticatable-1.10.3 lib/devise_cas_authenticatable/memcache_checker.rb
devise_cas_authenticatable-1.10.2 lib/devise_cas_authenticatable/memcache_checker.rb
devise_cas_authenticatable-1.10.1 lib/devise_cas_authenticatable/memcache_checker.rb
devise_cas_authenticatable-1.10.0 lib/devise_cas_authenticatable/memcache_checker.rb
devise_cas_authenticatable-1.9.2 lib/devise_cas_authenticatable/memcache_checker.rb
devise_cas_authenticatable-1.9.1 lib/devise_cas_authenticatable/memcache_checker.rb
devise_cas_authenticatable-1.9.0 lib/devise_cas_authenticatable/memcache_checker.rb