dalli 2.7.3 → 3.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
 - data/{History.md → CHANGELOG.md} +211 -0
 - data/Gemfile +3 -6
 - data/LICENSE +1 -1
 - data/README.md +30 -208
 - data/lib/dalli/cas/client.rb +2 -57
 - data/lib/dalli/client.rb +254 -253
 - data/lib/dalli/compressor.rb +13 -2
 - data/lib/dalli/key_manager.rb +121 -0
 - data/lib/dalli/options.rb +7 -7
 - data/lib/dalli/pipelined_getter.rb +177 -0
 - data/lib/dalli/protocol/base.rb +241 -0
 - data/lib/dalli/protocol/binary/request_formatter.rb +117 -0
 - data/lib/dalli/protocol/binary/response_header.rb +36 -0
 - data/lib/dalli/protocol/binary/response_processor.rb +239 -0
 - data/lib/dalli/protocol/binary/sasl_authentication.rb +60 -0
 - data/lib/dalli/protocol/binary.rb +173 -0
 - data/lib/dalli/protocol/connection_manager.rb +252 -0
 - data/lib/dalli/protocol/meta/key_regularizer.rb +31 -0
 - data/lib/dalli/protocol/meta/request_formatter.rb +121 -0
 - data/lib/dalli/protocol/meta/response_processor.rb +211 -0
 - data/lib/dalli/protocol/meta.rb +178 -0
 - data/lib/dalli/protocol/response_buffer.rb +54 -0
 - data/lib/dalli/protocol/server_config_parser.rb +86 -0
 - data/lib/dalli/protocol/ttl_sanitizer.rb +45 -0
 - data/lib/dalli/protocol/value_compressor.rb +85 -0
 - data/lib/dalli/protocol/value_marshaller.rb +59 -0
 - data/lib/dalli/protocol/value_serializer.rb +91 -0
 - data/lib/dalli/protocol.rb +8 -0
 - data/lib/dalli/ring.rb +97 -86
 - data/lib/dalli/server.rb +4 -719
 - data/lib/dalli/servers_arg_normalizer.rb +54 -0
 - data/lib/dalli/socket.rb +123 -115
 - data/lib/dalli/version.rb +5 -1
 - data/lib/dalli.rb +45 -14
 - data/lib/rack/session/dalli.rb +162 -42
 - metadata +136 -63
 - data/Performance.md +0 -42
 - data/Rakefile +0 -43
 - data/dalli.gemspec +0 -29
 - data/lib/action_dispatch/middleware/session/dalli_store.rb +0 -81
 - data/lib/active_support/cache/dalli_store.rb +0 -372
 - data/lib/dalli/railtie.rb +0 -7
 - data/test/benchmark_test.rb +0 -243
 - data/test/helper.rb +0 -56
 - data/test/memcached_mock.rb +0 -201
 - data/test/sasl/memcached.conf +0 -1
 - data/test/sasl/sasldb +0 -1
 - data/test/test_active_support.rb +0 -541
 - data/test/test_cas_client.rb +0 -107
 - data/test/test_compressor.rb +0 -52
 - data/test/test_dalli.rb +0 -682
 - data/test/test_encoding.rb +0 -32
 - data/test/test_failover.rb +0 -137
 - data/test/test_network.rb +0 -64
 - data/test/test_rack_session.rb +0 -341
 - data/test/test_ring.rb +0 -85
 - data/test/test_sasl.rb +0 -105
 - data/test/test_serializer.rb +0 -29
 - data/test/test_server.rb +0 -110
 
    
        data/test/test_sasl.rb
    DELETED
    
    | 
         @@ -1,105 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require 'helper'
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            describe 'Sasl' do
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
              # https://github.com/seattlerb/minitest/issues/298
         
     | 
| 
       6 
     | 
    
         
            -
              def self.xit(msg, &block)
         
     | 
| 
       7 
     | 
    
         
            -
              end
         
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
              describe 'a server requiring authentication' do
         
     | 
| 
       10 
     | 
    
         
            -
                before do
         
     | 
| 
       11 
     | 
    
         
            -
                  @server = mock()
         
     | 
| 
       12 
     | 
    
         
            -
                  @server.stubs(:request).returns(true)
         
     | 
| 
       13 
     | 
    
         
            -
                  @server.stubs(:weight).returns(1)
         
     | 
| 
       14 
     | 
    
         
            -
                  @server.stubs(:name).returns("localhost:19124")
         
     | 
| 
       15 
     | 
    
         
            -
                end
         
     | 
| 
       16 
     | 
    
         
            -
             
     | 
| 
       17 
     | 
    
         
            -
                describe 'without authentication credentials' do
         
     | 
| 
       18 
     | 
    
         
            -
                  before do
         
     | 
| 
       19 
     | 
    
         
            -
                    ENV['MEMCACHE_USERNAME'] = 'foo'
         
     | 
| 
       20 
     | 
    
         
            -
                    ENV['MEMCACHE_PASSWORD'] = 'wrongpwd'
         
     | 
| 
       21 
     | 
    
         
            -
                  end
         
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
                  after do
         
     | 
| 
       24 
     | 
    
         
            -
                    ENV['MEMCACHE_USERNAME'] = nil
         
     | 
| 
       25 
     | 
    
         
            -
                    ENV['MEMCACHE_PASSWORD'] = nil
         
     | 
| 
       26 
     | 
    
         
            -
                  end
         
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
     | 
    
         
            -
                  xit 'gracefully handle authentication failures' do
         
     | 
| 
       29 
     | 
    
         
            -
                    memcached_sasl_persistent do |dc|
         
     | 
| 
       30 
     | 
    
         
            -
                      assert_error Dalli::DalliError, /32/ do
         
     | 
| 
       31 
     | 
    
         
            -
                        dc.set('abc', 123)
         
     | 
| 
       32 
     | 
    
         
            -
                      end
         
     | 
| 
       33 
     | 
    
         
            -
                    end
         
     | 
| 
       34 
     | 
    
         
            -
                  end
         
     | 
| 
       35 
     | 
    
         
            -
                end
         
     | 
| 
       36 
     | 
    
         
            -
             
     | 
| 
       37 
     | 
    
         
            -
                xit 'fail SASL authentication with wrong options' do
         
     | 
| 
       38 
     | 
    
         
            -
                  memcached_sasl_persistent do |dc, port|
         
     | 
| 
       39 
     | 
    
         
            -
                    dc = Dalli::Client.new("localhost:#{port}", :username => 'testuser', :password => 'testtest')
         
     | 
| 
       40 
     | 
    
         
            -
                    assert_error Dalli::DalliError, /32/ do
         
     | 
| 
       41 
     | 
    
         
            -
                      dc.set('abc', 123)
         
     | 
| 
       42 
     | 
    
         
            -
                    end
         
     | 
| 
       43 
     | 
    
         
            -
                  end
         
     | 
| 
       44 
     | 
    
         
            -
                end
         
     | 
| 
       45 
     | 
    
         
            -
             
     | 
| 
       46 
     | 
    
         
            -
                # OSX: Create a SASL user for the memcached application like so:
         
     | 
| 
       47 
     | 
    
         
            -
                #
         
     | 
| 
       48 
     | 
    
         
            -
                # saslpasswd2 -a memcached -c testuser
         
     | 
| 
       49 
     | 
    
         
            -
                #
         
     | 
| 
       50 
     | 
    
         
            -
                # with password 'testtest'
         
     | 
| 
       51 
     | 
    
         
            -
                describe 'in an authenticated environment' do
         
     | 
| 
       52 
     | 
    
         
            -
                  before do
         
     | 
| 
       53 
     | 
    
         
            -
                    ENV['MEMCACHE_USERNAME'] = 'testuser'
         
     | 
| 
       54 
     | 
    
         
            -
                    ENV['MEMCACHE_PASSWORD'] = 'testtest'
         
     | 
| 
       55 
     | 
    
         
            -
                  end
         
     | 
| 
       56 
     | 
    
         
            -
             
     | 
| 
       57 
     | 
    
         
            -
                  after do
         
     | 
| 
       58 
     | 
    
         
            -
                    ENV['MEMCACHE_USERNAME'] = nil
         
     | 
| 
       59 
     | 
    
         
            -
                    ENV['MEMCACHE_PASSWORD'] = nil
         
     | 
| 
       60 
     | 
    
         
            -
                  end
         
     | 
| 
       61 
     | 
    
         
            -
             
     | 
| 
       62 
     | 
    
         
            -
                  xit 'pass SASL authentication' do
         
     | 
| 
       63 
     | 
    
         
            -
                    memcached_sasl_persistent do |dc|
         
     | 
| 
       64 
     | 
    
         
            -
                      # I get "Dalli::DalliError: Error authenticating: 32" in OSX
         
     | 
| 
       65 
     | 
    
         
            -
                      # but SASL works on Heroku servers. YMMV.
         
     | 
| 
       66 
     | 
    
         
            -
                      assert_equal true, dc.set('abc', 123)
         
     | 
| 
       67 
     | 
    
         
            -
                      assert_equal 123, dc.get('abc')
         
     | 
| 
       68 
     | 
    
         
            -
                      results = dc.stats
         
     | 
| 
       69 
     | 
    
         
            -
                      assert_equal 1, results.size
         
     | 
| 
       70 
     | 
    
         
            -
                      assert_equal 38, results.values.first.size
         
     | 
| 
       71 
     | 
    
         
            -
                    end
         
     | 
| 
       72 
     | 
    
         
            -
                  end
         
     | 
| 
       73 
     | 
    
         
            -
                end
         
     | 
| 
       74 
     | 
    
         
            -
             
     | 
| 
       75 
     | 
    
         
            -
                xit 'pass SASL authentication with options' do
         
     | 
| 
       76 
     | 
    
         
            -
                    memcached_sasl_persistent do |dc, port|
         
     | 
| 
       77 
     | 
    
         
            -
                    dc = Dalli::Client.new("localhost:#{port}", sasl_credentials)
         
     | 
| 
       78 
     | 
    
         
            -
                    # I get "Dalli::DalliError: Error authenticating: 32" in OSX
         
     | 
| 
       79 
     | 
    
         
            -
                    # but SASL works on Heroku servers. YMMV.
         
     | 
| 
       80 
     | 
    
         
            -
                    assert_equal true, dc.set('abc', 123)
         
     | 
| 
       81 
     | 
    
         
            -
                    assert_equal 123, dc.get('abc')
         
     | 
| 
       82 
     | 
    
         
            -
                    results = dc.stats
         
     | 
| 
       83 
     | 
    
         
            -
                    assert_equal 1, results.size
         
     | 
| 
       84 
     | 
    
         
            -
                    assert_equal 38, results.values.first.size
         
     | 
| 
       85 
     | 
    
         
            -
                  end
         
     | 
| 
       86 
     | 
    
         
            -
                end
         
     | 
| 
       87 
     | 
    
         
            -
             
     | 
| 
       88 
     | 
    
         
            -
                it 'pass SASL as URI' do
         
     | 
| 
       89 
     | 
    
         
            -
                  Dalli::Server.expects(:new).with("localhost:19124",
         
     | 
| 
       90 
     | 
    
         
            -
                    :username => "testuser", :password => "testtest").returns(@server)
         
     | 
| 
       91 
     | 
    
         
            -
                  dc = Dalli::Client.new('memcached://testuser:testtest@localhost:19124')
         
     | 
| 
       92 
     | 
    
         
            -
                  dc.flush_all
         
     | 
| 
       93 
     | 
    
         
            -
                end
         
     | 
| 
       94 
     | 
    
         
            -
             
     | 
| 
       95 
     | 
    
         
            -
                it 'pass SASL as ring of URIs' do
         
     | 
| 
       96 
     | 
    
         
            -
                  Dalli::Server.expects(:new).with("localhost:19124",
         
     | 
| 
       97 
     | 
    
         
            -
                    :username => "testuser", :password => "testtest").returns(@server)
         
     | 
| 
       98 
     | 
    
         
            -
                  Dalli::Server.expects(:new).with("otherhost:19125",
         
     | 
| 
       99 
     | 
    
         
            -
                    :username => "testuser2", :password => "testtest2").returns(@server)
         
     | 
| 
       100 
     | 
    
         
            -
                  dc = Dalli::Client.new(['memcached://testuser:testtest@localhost:19124',
         
     | 
| 
       101 
     | 
    
         
            -
                  'memcached://testuser2:testtest2@otherhost:19125'])
         
     | 
| 
       102 
     | 
    
         
            -
                  dc.flush_all
         
     | 
| 
       103 
     | 
    
         
            -
                end
         
     | 
| 
       104 
     | 
    
         
            -
              end
         
     | 
| 
       105 
     | 
    
         
            -
            end
         
     | 
    
        data/test/test_serializer.rb
    DELETED
    
    | 
         @@ -1,29 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # encoding: utf-8
         
     | 
| 
       2 
     | 
    
         
            -
            require 'helper'
         
     | 
| 
       3 
     | 
    
         
            -
            require 'json'
         
     | 
| 
       4 
     | 
    
         
            -
            require 'memcached_mock'
         
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
     | 
    
         
            -
            describe 'Serializer' do
         
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
              it 'default to Marshal' do
         
     | 
| 
       9 
     | 
    
         
            -
                memcached(29198) do |dc|
         
     | 
| 
       10 
     | 
    
         
            -
                  dc.set 1,2
         
     | 
| 
       11 
     | 
    
         
            -
                  assert_equal Marshal, dc.instance_variable_get('@ring').servers.first.serializer
         
     | 
| 
       12 
     | 
    
         
            -
                end
         
     | 
| 
       13 
     | 
    
         
            -
              end
         
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
     | 
    
         
            -
              it 'support a custom serializer' do
         
     | 
| 
       16 
     | 
    
         
            -
                memcached(29198) do |dc, port|
         
     | 
| 
       17 
     | 
    
         
            -
                  memcache = Dalli::Client.new("127.0.0.1:#{port}", :serializer => JSON)
         
     | 
| 
       18 
     | 
    
         
            -
                  memcache.set 1,2
         
     | 
| 
       19 
     | 
    
         
            -
                  begin
         
     | 
| 
       20 
     | 
    
         
            -
                    assert_equal JSON, memcache.instance_variable_get('@ring').servers.first.serializer
         
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
     | 
    
         
            -
                    memcached(21956) do |newdc|
         
     | 
| 
       23 
     | 
    
         
            -
                      assert newdc.set("json_test", {"foo" => "bar"})
         
     | 
| 
       24 
     | 
    
         
            -
                      assert_equal({"foo" => "bar"}, newdc.get("json_test"))
         
     | 
| 
       25 
     | 
    
         
            -
                    end
         
     | 
| 
       26 
     | 
    
         
            -
                  end
         
     | 
| 
       27 
     | 
    
         
            -
                end
         
     | 
| 
       28 
     | 
    
         
            -
              end
         
     | 
| 
       29 
     | 
    
         
            -
            end
         
     | 
    
        data/test/test_server.rb
    DELETED
    
    | 
         @@ -1,110 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require 'helper'
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            describe Dalli::Server do
         
     | 
| 
       4 
     | 
    
         
            -
              describe 'hostname parsing' do
         
     | 
| 
       5 
     | 
    
         
            -
                it 'handles unix socket with no weight' do
         
     | 
| 
       6 
     | 
    
         
            -
                  s = Dalli::Server.new('/var/run/memcached/sock')
         
     | 
| 
       7 
     | 
    
         
            -
                  assert_equal '/var/run/memcached/sock', s.hostname
         
     | 
| 
       8 
     | 
    
         
            -
                  assert_equal 1, s.weight
         
     | 
| 
       9 
     | 
    
         
            -
                  assert_equal :unix, s.socket_type
         
     | 
| 
       10 
     | 
    
         
            -
                end
         
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
                it 'handles unix socket with a weight' do
         
     | 
| 
       13 
     | 
    
         
            -
                  s = Dalli::Server.new('/var/run/memcached/sock:2')
         
     | 
| 
       14 
     | 
    
         
            -
                  assert_equal '/var/run/memcached/sock', s.hostname
         
     | 
| 
       15 
     | 
    
         
            -
                  assert_equal 2, s.weight
         
     | 
| 
       16 
     | 
    
         
            -
                  assert_equal :unix, s.socket_type
         
     | 
| 
       17 
     | 
    
         
            -
                end
         
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
       19 
     | 
    
         
            -
                it 'handles no port or weight' do
         
     | 
| 
       20 
     | 
    
         
            -
                  s = Dalli::Server.new('localhost')
         
     | 
| 
       21 
     | 
    
         
            -
                  assert_equal 'localhost', s.hostname
         
     | 
| 
       22 
     | 
    
         
            -
                  assert_equal 11211, s.port
         
     | 
| 
       23 
     | 
    
         
            -
                  assert_equal 1, s.weight
         
     | 
| 
       24 
     | 
    
         
            -
                  assert_equal :tcp, s.socket_type
         
     | 
| 
       25 
     | 
    
         
            -
                end
         
     | 
| 
       26 
     | 
    
         
            -
             
     | 
| 
       27 
     | 
    
         
            -
                it 'handles a port, but no weight' do
         
     | 
| 
       28 
     | 
    
         
            -
                  s = Dalli::Server.new('localhost:11212')
         
     | 
| 
       29 
     | 
    
         
            -
                  assert_equal 'localhost', s.hostname
         
     | 
| 
       30 
     | 
    
         
            -
                  assert_equal 11212, s.port
         
     | 
| 
       31 
     | 
    
         
            -
                  assert_equal 1, s.weight
         
     | 
| 
       32 
     | 
    
         
            -
                  assert_equal :tcp, s.socket_type
         
     | 
| 
       33 
     | 
    
         
            -
                end
         
     | 
| 
       34 
     | 
    
         
            -
             
     | 
| 
       35 
     | 
    
         
            -
                it 'handles a port and a weight' do
         
     | 
| 
       36 
     | 
    
         
            -
                  s = Dalli::Server.new('localhost:11212:2')
         
     | 
| 
       37 
     | 
    
         
            -
                  assert_equal 'localhost', s.hostname
         
     | 
| 
       38 
     | 
    
         
            -
                  assert_equal 11212, s.port
         
     | 
| 
       39 
     | 
    
         
            -
                  assert_equal 2, s.weight
         
     | 
| 
       40 
     | 
    
         
            -
                  assert_equal :tcp, s.socket_type
         
     | 
| 
       41 
     | 
    
         
            -
                end
         
     | 
| 
       42 
     | 
    
         
            -
             
     | 
| 
       43 
     | 
    
         
            -
                it 'handles ipv4 addresses' do
         
     | 
| 
       44 
     | 
    
         
            -
                  s = Dalli::Server.new('127.0.0.1')
         
     | 
| 
       45 
     | 
    
         
            -
                  assert_equal '127.0.0.1', s.hostname
         
     | 
| 
       46 
     | 
    
         
            -
                  assert_equal 11211, s.port
         
     | 
| 
       47 
     | 
    
         
            -
                  assert_equal 1, s.weight
         
     | 
| 
       48 
     | 
    
         
            -
                  assert_equal :tcp, s.socket_type
         
     | 
| 
       49 
     | 
    
         
            -
                end
         
     | 
| 
       50 
     | 
    
         
            -
             
     | 
| 
       51 
     | 
    
         
            -
                it 'handles ipv6 addresses' do
         
     | 
| 
       52 
     | 
    
         
            -
                  s = Dalli::Server.new('[::1]')
         
     | 
| 
       53 
     | 
    
         
            -
                  assert_equal '::1', s.hostname
         
     | 
| 
       54 
     | 
    
         
            -
                  assert_equal 11211, s.port
         
     | 
| 
       55 
     | 
    
         
            -
                  assert_equal 1, s.weight
         
     | 
| 
       56 
     | 
    
         
            -
                  assert_equal :tcp, s.socket_type
         
     | 
| 
       57 
     | 
    
         
            -
                end
         
     | 
| 
       58 
     | 
    
         
            -
             
     | 
| 
       59 
     | 
    
         
            -
                it 'handles ipv6 addresses with port' do
         
     | 
| 
       60 
     | 
    
         
            -
                  s = Dalli::Server.new('[::1]:11212')
         
     | 
| 
       61 
     | 
    
         
            -
                  assert_equal '::1', s.hostname
         
     | 
| 
       62 
     | 
    
         
            -
                  assert_equal 11212, s.port
         
     | 
| 
       63 
     | 
    
         
            -
                  assert_equal 1, s.weight
         
     | 
| 
       64 
     | 
    
         
            -
                  assert_equal :tcp, s.socket_type
         
     | 
| 
       65 
     | 
    
         
            -
                end
         
     | 
| 
       66 
     | 
    
         
            -
             
     | 
| 
       67 
     | 
    
         
            -
                it 'handles ipv6 addresses with port and weight' do
         
     | 
| 
       68 
     | 
    
         
            -
                  s = Dalli::Server.new('[::1]:11212:2')
         
     | 
| 
       69 
     | 
    
         
            -
                  assert_equal '::1', s.hostname
         
     | 
| 
       70 
     | 
    
         
            -
                  assert_equal 11212, s.port
         
     | 
| 
       71 
     | 
    
         
            -
                  assert_equal 2, s.weight
         
     | 
| 
       72 
     | 
    
         
            -
                  assert_equal :tcp, s.socket_type
         
     | 
| 
       73 
     | 
    
         
            -
                end
         
     | 
| 
       74 
     | 
    
         
            -
             
     | 
| 
       75 
     | 
    
         
            -
                it 'handles a FQDN' do
         
     | 
| 
       76 
     | 
    
         
            -
                  s = Dalli::Server.new('my.fqdn.com')
         
     | 
| 
       77 
     | 
    
         
            -
                  assert_equal 'my.fqdn.com', s.hostname
         
     | 
| 
       78 
     | 
    
         
            -
                  assert_equal 11211, s.port
         
     | 
| 
       79 
     | 
    
         
            -
                  assert_equal 1, s.weight
         
     | 
| 
       80 
     | 
    
         
            -
                  assert_equal :tcp, s.socket_type
         
     | 
| 
       81 
     | 
    
         
            -
                end
         
     | 
| 
       82 
     | 
    
         
            -
             
     | 
| 
       83 
     | 
    
         
            -
                it 'handles a FQDN with port and weight' do
         
     | 
| 
       84 
     | 
    
         
            -
                  s = Dalli::Server.new('my.fqdn.com:11212:2')
         
     | 
| 
       85 
     | 
    
         
            -
                  assert_equal 'my.fqdn.com', s.hostname
         
     | 
| 
       86 
     | 
    
         
            -
                  assert_equal 11212, s.port
         
     | 
| 
       87 
     | 
    
         
            -
                  assert_equal 2, s.weight
         
     | 
| 
       88 
     | 
    
         
            -
                  assert_equal :tcp, s.socket_type
         
     | 
| 
       89 
     | 
    
         
            -
                end
         
     | 
| 
       90 
     | 
    
         
            -
             
     | 
| 
       91 
     | 
    
         
            -
                it 'throws an exception if the hostname cannot be parsed' do
         
     | 
| 
       92 
     | 
    
         
            -
                  lambda { Dalli::Server.new('[]') }.must_raise Dalli::DalliError
         
     | 
| 
       93 
     | 
    
         
            -
                  lambda { Dalli::Server.new('my.fqdn.com:') }.must_raise Dalli::DalliError
         
     | 
| 
       94 
     | 
    
         
            -
                  lambda { Dalli::Server.new('my.fqdn.com:11212,:2') }.must_raise Dalli::DalliError
         
     | 
| 
       95 
     | 
    
         
            -
                  lambda { Dalli::Server.new('my.fqdn.com:11212:abc') }.must_raise Dalli::DalliError
         
     | 
| 
       96 
     | 
    
         
            -
                end
         
     | 
| 
       97 
     | 
    
         
            -
              end
         
     | 
| 
       98 
     | 
    
         
            -
             
     | 
| 
       99 
     | 
    
         
            -
              describe 'ttl translation' do
         
     | 
| 
       100 
     | 
    
         
            -
                it 'does not translate ttls under 30 days' do
         
     | 
| 
       101 
     | 
    
         
            -
                  s = Dalli::Server.new('localhost')
         
     | 
| 
       102 
     | 
    
         
            -
                  assert_equal s.send(:sanitize_ttl, 30*24*60*60), 30*24*60*60
         
     | 
| 
       103 
     | 
    
         
            -
                end
         
     | 
| 
       104 
     | 
    
         
            -
             
     | 
| 
       105 
     | 
    
         
            -
                it 'translates ttls over 30 days into timestamps' do
         
     | 
| 
       106 
     | 
    
         
            -
                  s = Dalli::Server.new('localhost')
         
     | 
| 
       107 
     | 
    
         
            -
                  assert_equal s.send(:sanitize_ttl, 30*24*60*60 + 1), Time.now.to_i + 30*24*60*60+1
         
     | 
| 
       108 
     | 
    
         
            -
                end
         
     | 
| 
       109 
     | 
    
         
            -
              end
         
     | 
| 
       110 
     | 
    
         
            -
            end
         
     |