def initialize(app, options = {})
        # Parent uses DEFAULT_OPTIONS to build @default_options for Rack::Session
        super

        # Determine the default TTL for newly-created sessions
        @default_ttl = ttl(@default_options[:expire_after])
        @data = build_data_source(options)
      end
rubocop:enable Style/MutableConstant
Brings in a new Rack::Session::Dalli middleware with the given
`:memcache_server`. The server is either a hostname, or a
host-with-port string in the form of "host_name:port", or an array of
such strings. For example:

use Rack::Session::Dalli,
:memcache_server => "mc.example.com:1234"

If no `:memcache_server` option is specified, Rack::Session::Dalli will
connect to localhost, port 11211 (the default memcached port). If
`:memcache_server` is set to nil, Dalli::Client will look for
ENV['MEMCACHE_SERVERS'] and use that value if it is available, or fall
back to the same default behavior described above.

Rack::Session::Dalli accepts the same options as Dalli::Client, so
it's worth reviewing its documentation. Perhaps most importantly,
if you don't specify a `:namespace` option, Rack::Session::Dalli
will default to using 'rack:session'.

It is not recommended to set `:expires_in`. Instead, use `:expire_after`,
which will control both the expiration of the client cookie as well
as the expiration of the corresponding entry in memcached.

Rack::Session::Dalli also accepts a host of options that control how
the sessions and session cookies are managed, including the
aforementioned `:expire_after` option. Please see the documentation for
Rack::Session::Abstract::Persisted for a detailed explanation of these
options and their default values.

Finally, if your web application is multithreaded, the
Rack::Session::Dalli middleware can become a source of contention. You
can use a connection pool of Dalli clients by passing in the
`:pool_size` and/or `:pool_timeout` options. For example:

use Rack::Session::Dalli,
:memcache_server => "mc.example.com:1234",
:pool_size => 10

You must include the `connection_pool` gem in your project if you wish
to use pool support. Please see the documentation for ConnectionPool
for more information about it and its default options (which would only
be applicable if you supplied one of the two options, but not both).