mob-dalli 1.1.4

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.
@@ -0,0 +1,175 @@
1
+ require 'helper'
2
+ require 'memcached_mock'
3
+ if defined?(RUBY_ENGINE) && RUBY_ENGINE != 'jruby'
4
+ begin
5
+ require 'em-spec/test'
6
+
7
+ class TestSynchrony < Test::Unit::TestCase
8
+ include EM::TestHelper
9
+
10
+ context 'using a live server' do
11
+
12
+ should "support get/set" do
13
+ em do
14
+ memcached(19122,'',:async => true) do |dc|
15
+ dc.flush
16
+
17
+ val1 = "1234567890"*105000
18
+ assert_error Dalli::DalliError, /too large/ do
19
+ dc.set('a', val1)
20
+ val2 = dc.get('a')
21
+ assert_equal val1, val2
22
+ end
23
+
24
+ val1 = "1234567890"*100000
25
+ dc.set('a', val1)
26
+ val2 = dc.get('a')
27
+ assert_equal val1, val2
28
+
29
+ assert_equal true, dc.set('a', nil)
30
+ assert_nil dc.get('a')
31
+
32
+ done
33
+ end
34
+ end
35
+ end
36
+
37
+ should "support the fetch operation" do
38
+ em do
39
+ memcached(19122,'',:async => true) do |dc|
40
+ dc.flush
41
+
42
+ expected = { 'blah' => 'blerg!' }
43
+ executed = false
44
+ value = dc.fetch('fetch_key') do
45
+ executed = true
46
+ expected
47
+ end
48
+ assert_equal expected, value
49
+ assert_equal true, executed
50
+
51
+ executed = false
52
+ value = dc.fetch('fetch_key') do
53
+ executed = true
54
+ expected
55
+ end
56
+ assert_equal expected, value
57
+ assert_equal false, executed
58
+
59
+ done
60
+ end
61
+ end
62
+ end
63
+
64
+ should "support multi-get" do
65
+ em do
66
+ memcached(19122,'',:async => true) do |dc|
67
+ dc.close
68
+ dc.flush
69
+ resp = dc.get_multi(%w(a b c d e f))
70
+ assert_equal({}, resp)
71
+
72
+ dc.set('a', 'foo')
73
+ dc.set('b', 123)
74
+ dc.set('c', %w(a b c))
75
+ resp = dc.get_multi(%w(a b c d e f))
76
+ assert_equal({ 'a' => 'foo', 'b' => 123, 'c' => %w(a b c) }, resp)
77
+
78
+ # Perform a huge multi-get with 10,000 elements.
79
+ arr = []
80
+ dc.multi do
81
+ 10_000.times do |idx|
82
+ dc.set idx, idx
83
+ arr << idx
84
+ end
85
+ end
86
+
87
+ result = dc.get_multi(arr)
88
+ assert_equal(10_000, result.size)
89
+ assert_equal(1000, result['1000'])
90
+
91
+ done
92
+ end
93
+ end
94
+ end
95
+
96
+ should "pass a simple smoke test" do
97
+ em do
98
+ memcached(19122,'',:async => true) do |dc|
99
+ resp = dc.flush
100
+ assert_not_nil resp
101
+ assert_equal [true, true], resp
102
+
103
+ assert_equal true, dc.set(:foo, 'bar')
104
+ assert_equal 'bar', dc.get(:foo)
105
+
106
+ resp = dc.get('123')
107
+ assert_equal nil, resp
108
+
109
+ resp = dc.set('123', 'xyz')
110
+ assert_equal true, resp
111
+
112
+ resp = dc.get('123')
113
+ assert_equal 'xyz', resp
114
+
115
+ resp = dc.set('123', 'abc')
116
+ assert_equal true, resp
117
+
118
+ dc.prepend('123', '0')
119
+ dc.append('123', '0')
120
+
121
+ assert_raises Dalli::DalliError do
122
+ resp = dc.get('123')
123
+ end
124
+
125
+ dc.close
126
+ dc = nil
127
+
128
+ dc = Dalli::Client.new('localhost:19122', :async => true)
129
+
130
+ resp = dc.set('456', 'xyz', 0, :raw => true)
131
+ assert_equal true, resp
132
+
133
+ resp = dc.prepend '456', '0'
134
+ assert_equal true, resp
135
+
136
+ resp = dc.append '456', '9'
137
+ assert_equal true, resp
138
+
139
+ resp = dc.get('456', :raw => true)
140
+ assert_equal '0xyz9', resp
141
+
142
+ resp = dc.stats
143
+ assert_equal Hash, resp.class
144
+
145
+ dc.close
146
+
147
+ done
148
+ end
149
+ end
150
+ end
151
+
152
+ context 'with compression' do
153
+ should 'allow large values' do
154
+ em do
155
+ memcached(19122,'',:async => true) do |dc|
156
+ dalli = Dalli::Client.new(dc.instance_variable_get(:@servers), :compression => true, :async => true)
157
+
158
+ value = "0"*1024*1024
159
+ assert_raise Dalli::DalliError, /too large/ do
160
+ dc.set('verylarge', value)
161
+ end
162
+ dalli.set('verylarge', value)
163
+ end
164
+
165
+ done
166
+ end
167
+ end
168
+ end
169
+
170
+ end
171
+ end
172
+ rescue LoadError
173
+ puts "Skipping em-synchrony tests"
174
+ end
175
+ end
metadata ADDED
@@ -0,0 +1,172 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: mob-dalli
3
+ version: !ruby/object:Gem::Version
4
+ hash: 27
5
+ prerelease:
6
+ segments:
7
+ - 1
8
+ - 1
9
+ - 4
10
+ version: 1.1.4
11
+ platform: ruby
12
+ authors:
13
+ - Mike Perham
14
+ - Aaron Daniel
15
+ autorequire:
16
+ bindir: bin
17
+ cert_chain: []
18
+
19
+ date: 2011-11-28 00:00:00 Z
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: shoulda
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 3
30
+ segments:
31
+ - 0
32
+ version: "0"
33
+ type: :development
34
+ version_requirements: *id001
35
+ - !ruby/object:Gem::Dependency
36
+ name: mocha
37
+ prerelease: false
38
+ requirement: &id002 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ hash: 3
44
+ segments:
45
+ - 0
46
+ version: "0"
47
+ type: :development
48
+ version_requirements: *id002
49
+ - !ruby/object:Gem::Dependency
50
+ name: rails
51
+ prerelease: false
52
+ requirement: &id003 !ruby/object:Gem::Requirement
53
+ none: false
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ hash: 7
58
+ segments:
59
+ - 3
60
+ - 0
61
+ - 0
62
+ version: 3.0.0
63
+ type: :development
64
+ version_requirements: *id003
65
+ - !ruby/object:Gem::Dependency
66
+ name: memcache-client
67
+ prerelease: false
68
+ requirement: &id004 !ruby/object:Gem::Requirement
69
+ none: false
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ hash: 61
74
+ segments:
75
+ - 1
76
+ - 8
77
+ - 5
78
+ version: 1.8.5
79
+ type: :development
80
+ version_requirements: *id004
81
+ description: High performance memcached client for Ruby
82
+ email: mperham@gmail.com
83
+ executables: []
84
+
85
+ extensions: []
86
+
87
+ extra_rdoc_files: []
88
+
89
+ files:
90
+ - lib/action_dispatch/middleware/session/dalli_store.rb
91
+ - lib/active_support/cache/dalli_store.rb
92
+ - lib/active_support/cache/dalli_store23.rb
93
+ - lib/dalli/client.rb
94
+ - lib/dalli/compatibility.rb
95
+ - lib/dalli/memcache-client.rb
96
+ - lib/dalli/options.rb
97
+ - lib/dalli/ring.rb
98
+ - lib/dalli/server.rb
99
+ - lib/dalli/socket.rb
100
+ - lib/dalli/version.rb
101
+ - lib/mob-dalli.rb
102
+ - lib/rack/session/dalli.rb
103
+ - LICENSE
104
+ - README.md
105
+ - History.md
106
+ - Rakefile
107
+ - Gemfile
108
+ - mob-dalli.gemspec
109
+ - Performance.md
110
+ - Upgrade.md
111
+ - test/abstract_unit.rb
112
+ - test/benchmark_test.rb
113
+ - test/helper.rb
114
+ - test/memcached_mock.rb
115
+ - test/test_active_support.rb
116
+ - test/test_compatibility.rb
117
+ - test/test_dalli.rb
118
+ - test/test_encoding.rb
119
+ - test/test_failover.rb
120
+ - test/test_network.rb
121
+ - test/test_ring.rb
122
+ - test/test_sasl.rb
123
+ - test/test_session_store.rb
124
+ - test/test_synchrony.rb
125
+ homepage: http://github.com/amdtech/dalli
126
+ licenses: []
127
+
128
+ post_install_message:
129
+ rdoc_options:
130
+ - --charset=UTF-8
131
+ require_paths:
132
+ - lib
133
+ required_ruby_version: !ruby/object:Gem::Requirement
134
+ none: false
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ hash: 3
139
+ segments:
140
+ - 0
141
+ version: "0"
142
+ required_rubygems_version: !ruby/object:Gem::Requirement
143
+ none: false
144
+ requirements:
145
+ - - ">="
146
+ - !ruby/object:Gem::Version
147
+ hash: 3
148
+ segments:
149
+ - 0
150
+ version: "0"
151
+ requirements: []
152
+
153
+ rubyforge_project:
154
+ rubygems_version: 1.8.6
155
+ signing_key:
156
+ specification_version: 3
157
+ summary: High performance memcached client for Ruby
158
+ test_files:
159
+ - test/abstract_unit.rb
160
+ - test/benchmark_test.rb
161
+ - test/helper.rb
162
+ - test/memcached_mock.rb
163
+ - test/test_active_support.rb
164
+ - test/test_compatibility.rb
165
+ - test/test_dalli.rb
166
+ - test/test_encoding.rb
167
+ - test/test_failover.rb
168
+ - test/test_network.rb
169
+ - test/test_ring.rb
170
+ - test/test_sasl.rb
171
+ - test/test_session_store.rb
172
+ - test/test_synchrony.rb