Sha256: a5c538dd85517a5ae41ec4b876d73e533599adf6903bfe4379b23d96b28b62f1

Contents?: true

Size: 862 Bytes

Versions: 1

Compression:

Stored size: 862 Bytes

Contents

require 'net/telnet'

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
          Net::Telnet.new("Host" => host, "Port" => port, "Timeout" => 1)
          return true
        rescue Errno::ECONNREFUSED
          return false
        end
      end
    end

    private

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

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
devise_cas_authenticatable-1.8.0 lib/devise_cas_authenticatable/memcache_checker.rb