juno 0.1.1 → 0.2.0

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.
Files changed (161) hide show
  1. data/.gitignore +2 -1
  2. data/.travis.yml +6 -0
  3. data/Gemfile +16 -9
  4. data/README.md +92 -34
  5. data/Rakefile +23 -5
  6. data/benchmarks/run.rb +19 -22
  7. data/juno.gemspec +0 -3
  8. data/lib/juno/adapters/activerecord.rb +58 -0
  9. data/lib/juno/adapters/cassandra.rb +47 -0
  10. data/lib/juno/adapters/couch.rb +43 -0
  11. data/lib/juno/adapters/datamapper.rb +64 -0
  12. data/lib/juno/adapters/dbm.rb +17 -0
  13. data/lib/juno/adapters/file.rb +58 -0
  14. data/lib/juno/adapters/fog.rb +42 -0
  15. data/lib/juno/adapters/gdbm.rb +17 -0
  16. data/lib/juno/adapters/localmemcache.rb +18 -0
  17. data/lib/juno/adapters/memcached.rb +11 -0
  18. data/lib/juno/adapters/memcached_dalli.rb +46 -0
  19. data/lib/juno/adapters/memcached_native.rb +47 -0
  20. data/lib/juno/adapters/memory.rb +30 -0
  21. data/lib/juno/adapters/mongo.rb +43 -0
  22. data/lib/juno/adapters/null.rb +28 -0
  23. data/lib/juno/adapters/pstore.rb +51 -0
  24. data/lib/juno/adapters/redis.rb +43 -0
  25. data/lib/juno/adapters/riak.rb +46 -0
  26. data/lib/juno/adapters/sdbm.rb +27 -0
  27. data/lib/juno/adapters/sequel.rb +50 -0
  28. data/lib/juno/adapters/sqlite.rb +52 -0
  29. data/lib/juno/adapters/tokyocabinet.rb +33 -0
  30. data/lib/juno/adapters/yaml.rb +13 -0
  31. data/lib/juno/base.rb +11 -89
  32. data/lib/juno/builder.rb +30 -0
  33. data/lib/juno/cache.rb +64 -0
  34. data/lib/juno/expires.rb +6 -10
  35. data/lib/juno/proxy.rb +62 -3
  36. data/lib/juno/stack.rb +27 -11
  37. data/lib/juno/transformer.rb +106 -0
  38. data/lib/juno/version.rb +1 -1
  39. data/lib/juno.rb +81 -29
  40. data/spec/adapter_activerecord_spec.rb +41 -0
  41. data/spec/adapter_cassandra_spec.rb +27 -0
  42. data/spec/adapter_couch_spec.rb +27 -0
  43. data/spec/adapter_datamapper_spec.rb +61 -0
  44. data/spec/adapter_dbm_spec.rb +27 -0
  45. data/spec/adapter_file_spec.rb +27 -0
  46. data/spec/adapter_fog_spec.rb +35 -0
  47. data/spec/adapter_gdbm_spec.rb +27 -0
  48. data/spec/adapter_localmemcache_spec.rb +27 -0
  49. data/spec/adapter_memcached_dalli_spec.rb +28 -0
  50. data/spec/adapter_memcached_native_spec.rb +28 -0
  51. data/spec/adapter_memcached_spec.rb +28 -0
  52. data/spec/adapter_memory_spec.rb +42 -0
  53. data/spec/adapter_mongo_spec.rb +27 -0
  54. data/spec/adapter_pstore_spec.rb +30 -0
  55. data/spec/adapter_redis_spec.rb +28 -0
  56. data/spec/adapter_riak_spec.rb +31 -0
  57. data/spec/adapter_sdbm_spec.rb +27 -0
  58. data/spec/adapter_sequel_spec.rb +27 -0
  59. data/spec/adapter_sqlite_spec.rb +27 -0
  60. data/spec/adapter_tokyocabinet_spec.rb +27 -0
  61. data/spec/adapter_yaml_spec.rb +30 -0
  62. data/spec/cache_file_memory_spec.rb +50 -0
  63. data/spec/cache_memory_null_spec.rb +39 -0
  64. data/spec/expires_file_spec.rb +82 -0
  65. data/spec/expires_memory_spec.rb +59 -0
  66. data/spec/generate.rb +736 -0
  67. data/spec/helper.rb +39 -0
  68. data/spec/junospecs.rb +1540 -0
  69. data/spec/null_adapter_spec.rb +33 -0
  70. data/spec/proxy_expires_memory_spec.rb +63 -0
  71. data/spec/proxy_redis_spec.rb +38 -0
  72. data/spec/simple_activerecord_spec.rb +52 -0
  73. data/spec/simple_cassandra_spec.rb +53 -0
  74. data/spec/simple_couch_spec.rb +52 -0
  75. data/spec/simple_datamapper_spec.rb +54 -0
  76. data/spec/simple_datamapper_with_repository_spec.rb +54 -0
  77. data/spec/simple_dbm_spec.rb +52 -0
  78. data/spec/simple_file_spec.rb +52 -0
  79. data/spec/simple_fog_spec.rb +60 -0
  80. data/spec/simple_gdbm_spec.rb +52 -0
  81. data/spec/simple_hashfile_spec.rb +52 -0
  82. data/spec/simple_localmemcache_spec.rb +52 -0
  83. data/spec/simple_memcached_dalli_spec.rb +53 -0
  84. data/spec/simple_memcached_native_spec.rb +53 -0
  85. data/spec/simple_memcached_spec.rb +53 -0
  86. data/spec/simple_memory_spec.rb +52 -0
  87. data/spec/simple_mongo_spec.rb +52 -0
  88. data/spec/simple_null_spec.rb +43 -0
  89. data/spec/simple_pstore_spec.rb +52 -0
  90. data/spec/simple_redis_spec.rb +53 -0
  91. data/spec/simple_riak_spec.rb +56 -0
  92. data/spec/simple_sdbm_spec.rb +52 -0
  93. data/spec/simple_sequel_spec.rb +52 -0
  94. data/spec/simple_sqlite_spec.rb +52 -0
  95. data/spec/simple_tokyocabinet_spec.rb +52 -0
  96. data/spec/simple_yaml_spec.rb +52 -0
  97. data/spec/stack_file_memory_spec.rb +43 -0
  98. data/spec/stack_memory_file_spec.rb +42 -0
  99. data/spec/transformer_bson_spec.rb +44 -0
  100. data/spec/transformer_json_spec.rb +44 -0
  101. data/spec/transformer_marshal_base64_spec.rb +60 -0
  102. data/spec/transformer_marshal_escape_spec.rb +60 -0
  103. data/spec/transformer_marshal_md5_spec.rb +60 -0
  104. data/spec/transformer_marshal_md5_spread_spec.rb +60 -0
  105. data/spec/transformer_msgpack_spec.rb +44 -0
  106. data/spec/transformer_yaml_spec.rb +59 -0
  107. metadata +164 -108
  108. data/lib/juno/activerecord.rb +0 -55
  109. data/lib/juno/cassandra.rb +0 -45
  110. data/lib/juno/couch.rb +0 -43
  111. data/lib/juno/datamapper.rb +0 -63
  112. data/lib/juno/dbm.rb +0 -15
  113. data/lib/juno/file.rb +0 -62
  114. data/lib/juno/fog.rb +0 -48
  115. data/lib/juno/gdbm.rb +0 -15
  116. data/lib/juno/hashfile.rb +0 -12
  117. data/lib/juno/localmemcache.rb +0 -16
  118. data/lib/juno/memcached.rb +0 -7
  119. data/lib/juno/memcached_dalli.rb +0 -55
  120. data/lib/juno/memcached_native.rb +0 -56
  121. data/lib/juno/memory.rb +0 -7
  122. data/lib/juno/mongodb.rb +0 -43
  123. data/lib/juno/null.rb +0 -23
  124. data/lib/juno/pstore.rb +0 -49
  125. data/lib/juno/redis.rb +0 -46
  126. data/lib/juno/riak.rb +0 -45
  127. data/lib/juno/sdbm.rb +0 -15
  128. data/lib/juno/sequel.rb +0 -48
  129. data/lib/juno/sqlite.rb +0 -50
  130. data/lib/juno/tokyocabinet.rb +0 -36
  131. data/lib/juno/yaml.rb +0 -9
  132. data/test/helper.rb +0 -212
  133. data/test/test_activerecord.rb +0 -33
  134. data/test/test_cassandra.rb +0 -13
  135. data/test/test_couch.rb +0 -13
  136. data/test/test_datamapper.rb +0 -64
  137. data/test/test_dbm.rb +0 -13
  138. data/test/test_expires.rb +0 -9
  139. data/test/test_file.rb +0 -9
  140. data/test/test_fog.rb +0 -17
  141. data/test/test_gdbm.rb +0 -13
  142. data/test/test_hashfile.rb +0 -9
  143. data/test/test_localmemcache.rb +0 -13
  144. data/test/test_memcached.rb +0 -14
  145. data/test/test_memcached_dalli.rb +0 -14
  146. data/test/test_memcached_native.rb +0 -14
  147. data/test/test_memory.rb +0 -9
  148. data/test/test_mongodb.rb +0 -13
  149. data/test/test_null.rb +0 -9
  150. data/test/test_proxy.rb +0 -9
  151. data/test/test_pstore.rb +0 -9
  152. data/test/test_redis.rb +0 -13
  153. data/test/test_riak.rb +0 -13
  154. data/test/test_sdbm.rb +0 -13
  155. data/test/test_sequel.rb +0 -13
  156. data/test/test_sqlite.rb +0 -13
  157. data/test/test_stack.rb +0 -10
  158. data/test/test_tokyocabinet.rb +0 -13
  159. data/test/test_yaml.rb +0 -9
  160. data/unsupported/test_tokyotyrant.rb +0 -13
  161. data/unsupported/tokyotyrant.rb +0 -29
data/test/helper.rb DELETED
@@ -1,212 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- require 'minitest/autorun'
3
- require 'juno'
4
- require 'fileutils'
5
-
6
- module Helper
7
- def make_tempdir
8
- tmp = File.join(File.dirname(__FILE__), 'tmp')
9
- FileUtils.mkpath(tmp)
10
- tmp
11
- end
12
- end
13
-
14
- module Juno
15
- TYPES = {
16
- 'String' => ['key', 'key2'],
17
- 'Object' => [{:foo => :bar}, {:bar => :baz}]
18
- }
19
-
20
- NullSpecification = proc do
21
- include Helper
22
-
23
- before do
24
- @store = new_store
25
- @store.clear
26
- end
27
-
28
- after do
29
- @store.close.must_equal nil if @store
30
- end
31
-
32
- TYPES.each do |type, (key, key2)|
33
- it "reads from keys that are #{type}s like a Hash" do
34
- @store[key].must_equal nil
35
- end
36
-
37
- it "guarantees that the same String value is returned when setting a #{type} key" do
38
- value = 'value'
39
- (@store[key] = value).must_be_same_as value
40
- end
41
-
42
- it "guarantees that the same Object value is returned when setting a #{type} key" do
43
- value = {:foo => :bar}
44
- (@store[key] = value).must_be_same_as value
45
- end
46
-
47
- it "returns false from key? if a #{type} key is not available" do
48
- @store.key?(key).must_equal false
49
- end
50
-
51
- it "returns nil from delete if an element for a #{type} key does not exist" do
52
- @store.delete(key).must_equal nil
53
- end
54
-
55
- it "removes all #{type} keys from the store with clear" do
56
- @store[key] = 'value'
57
- @store[key2] = 'value2'
58
- @store.clear.must_equal nil
59
- @store.key?(key).wont_equal true
60
- @store.key?(key2).wont_equal true
61
- end
62
-
63
- it "fetches a #{type} key with a default value with fetch, if the key is not available" do
64
- @store.fetch(key, 'value').must_equal 'value'
65
- end
66
-
67
- it "fetches a #{type} key with a block with fetch, if the key is not available" do
68
- @store.fetch(key) { |k| 'value' }.must_equal 'value'
69
- end
70
-
71
- it 'must accept options' do
72
- @store.key?(key, :foo => 42).must_equal false
73
- @store.fetch(key, nil, :foo => 42).must_equal nil
74
- @store.delete(key, :foo => 42).must_equal nil
75
- @store.clear(:foo => 42).must_equal nil
76
- @store.store(key, 'value', :foo => 42).must_equal 'value'
77
- end
78
- end
79
- end
80
-
81
- Specification = proc do
82
- class_eval(&NullSpecification)
83
-
84
- TYPES.each do |type, (key, key2)|
85
- it "writes String values to keys that are #{type}s like a Hash" do
86
- @store[key] = 'value'
87
- @store[key].must_equal 'value'
88
- end
89
-
90
- it "writes Object values to keys that are #{type}s like a Hash" do
91
- value = {:foo => :bar}
92
- @store[key] = value
93
- @store[key].must_equal(:foo => :bar)
94
- end
95
-
96
- it "guarantees that a different String value is retrieved from the #{type} key" do
97
- value = 'value'
98
- @store[key] = value
99
- @store[key].wont_be_same_as(value)
100
- end
101
-
102
- it "guarantees that a different Object value is retrieved from the #{type} key" do
103
- value = {:foo => :bar}
104
- @store[key] = value
105
- @store[key].wont_be_same_as(:foo => :bar)
106
- end
107
-
108
- it "returns true from key? if a #{type} key is available" do
109
- @store[key] = 'value'
110
- @store.key?(key).must_equal true
111
- end
112
-
113
- it "removes and returns an element with a #{type} key from the backing store via delete if it exists" do
114
- @store[key] = 'value'
115
- @store.delete(key).must_equal 'value'
116
- @store.key?(key).must_equal false
117
- end
118
-
119
- it "does not run the block if the #{type} key is available" do
120
- @store[key] = 'value'
121
- unaltered = "unaltered"
122
- @store.fetch(key) { unaltered = "altered" }
123
- unaltered.must_equal "unaltered"
124
- end
125
-
126
- it "fetches a #{type} key with a default value with fetch, if the key is available" do
127
- @store[key] = 'value2'
128
- @store.fetch(key, 'value').must_equal 'value2'
129
- end
130
-
131
- it "stores #{key} values with #store" do
132
- @store.store(key, 'value').must_equal 'value'
133
- @store[key].must_equal 'value'
134
- end
135
- end
136
-
137
- def marshal_error
138
- # HACK: Marshalling structs in rubinius without class name throws
139
- # NoMethodError (to_sym). TODO: Create an issue for rubinius!
140
- if defined?(RUBY_ENGINE) && RUBY_ENGINE == 'rbx'
141
- RUBY_VERSION < '1.9' ? ArgumentError : NoMethodError
142
- else
143
- TypeError
144
- end
145
- end
146
-
147
- it "refuses to #[] from keys that cannot be marshalled" do
148
- lambda do
149
- @store[Struct.new(:foo).new(:bar)]
150
- end.must_raise(marshal_error)
151
- end
152
-
153
- it "refuses to fetch from keys that cannot be marshalled" do
154
- lambda do
155
- @store.fetch(Struct.new(:foo).new(:bar), true)
156
- end.must_raise(marshal_error)
157
- end
158
-
159
- it "refuses to #[]= to keys that cannot be marshalled" do
160
- lambda do
161
- @store[Struct.new(:foo).new(:bar)] = 'value'
162
- end.must_raise(marshal_error)
163
- end
164
-
165
- it "refuses to store to keys that cannot be marshalled" do
166
- lambda do
167
- @store.store Struct.new(:foo).new(:bar), 'value'
168
- end.must_raise(marshal_error)
169
- end
170
-
171
- it "refuses to check for key? if the key cannot be marshalled" do
172
- lambda do
173
- @store.key? Struct.new(:foo).new(:bar)
174
- end.must_raise(marshal_error)
175
- end
176
-
177
- it "refuses to delete a key if the key cannot be marshalled" do
178
- lambda do
179
- @store.delete Struct.new(:foo).new(:bar)
180
- end.must_raise(marshal_error)
181
- end
182
- end
183
-
184
- ExpiresSpecification = proc do
185
- class_eval(&Specification)
186
-
187
- it 'should support expires on store' do
188
- @store.store('key', 'value', :expires => 2)
189
- @store['key'].must_equal 'value'
190
- sleep 3
191
- @store['key'].must_equal nil
192
- end
193
-
194
- it 'should support updating the expiration time in fetch' do
195
- @store.store('key2', 'value2', :expires => 2)
196
- @store['key2'].must_equal 'value2'
197
- sleep 1
198
- @store.fetch('key2', nil, :expires => 3).must_equal 'value2'
199
- sleep 1
200
- @store['key2'].must_equal 'value2'
201
- sleep 3
202
- @store['key2'].must_equal nil
203
- end
204
-
205
- it 'should respect expires in delete' do
206
- @store.store('key', 'value', :expires => 2)
207
- @store['key'].must_equal 'value'
208
- sleep 3
209
- @store.delete('key').must_equal nil
210
- end
211
- end
212
- end
@@ -1,33 +0,0 @@
1
- require 'helper'
2
-
3
- begin
4
- describe Juno::ActiveRecord do
5
- describe 'with connection option set' do
6
- def new_store
7
- Juno::ActiveRecord.new(:connection => { :adapter => 'sqlite3', :database => File.join(make_tempdir, 'db.sqlite3')})
8
- end
9
-
10
- class_eval(&Juno::Specification)
11
-
12
- it 'updates an existing key/value' do
13
- @store['foo/bar'] = 4
14
- @store['foo/bar'] += 4
15
- records = @store.table.find :all, :conditions => { :key => 'foo/bar' }
16
- records.count.must_equal 1
17
- end
18
- end
19
-
20
- describe 'using preexisting ActiveRecord connection' do
21
- include Helper
22
-
23
- it 'uses an existing connection' do
24
- ActiveRecord::Base.establish_connection :adapter => 'sqlite3', :database => File.join(make_tempdir, 'db.sqlite3')
25
-
26
- store = Juno::ActiveRecord.new
27
- store.table.table_exists?.must_equal true
28
- end
29
- end
30
- end
31
- rescue LoadError => ex
32
- puts "Juno::ActiveRecord not tested: #{ex.message}"
33
- end
@@ -1,13 +0,0 @@
1
- require 'helper'
2
-
3
- begin
4
- describe Juno::Cassandra do
5
- def new_store
6
- Juno::Cassandra.new
7
- end
8
-
9
- class_eval(&Juno::ExpiresSpecification)
10
- end
11
- rescue LoadError => ex
12
- puts "Juno::Cassandra not tested: #{ex.message}"
13
- end
data/test/test_couch.rb DELETED
@@ -1,13 +0,0 @@
1
- require 'helper'
2
-
3
- begin
4
- describe Juno::Couch do
5
- def new_store
6
- Juno::Couch.new :db => 'juno'
7
- end
8
-
9
- class_eval(&Juno::Specification)
10
- end
11
- rescue LoadError => ex
12
- puts "Juno::Couch not tested: #{ex.message}"
13
- end
@@ -1,64 +0,0 @@
1
- require 'helper'
2
-
3
- begin
4
- describe Juno::DataMapper do
5
- before do
6
- DataMapper.setup(:default, :adapter => :in_memory)
7
- end
8
-
9
- describe 'with the default repository' do
10
- def new_store
11
- Juno::DataMapper.new(:setup => "sqlite3://#{make_tempdir}/datamapper.sqlite3")
12
- end
13
-
14
- after do
15
- Juno::DataMapper::Store.auto_migrate!(:juno)
16
- end
17
-
18
- class_eval(&Juno::Specification)
19
- end
20
-
21
- describe 'when :repository specified' do
22
- def new_store
23
- Juno::DataMapper.new(:repository => :sample, :setup => "sqlite3://#{make_tempdir}/datamapper.sqlite3")
24
- end
25
-
26
- after do
27
- Juno::DataMapper::Store.auto_migrate!(:sample)
28
- end
29
-
30
- class_eval(&Juno::Specification)
31
- end
32
-
33
- describe 'with multiple stores' do
34
- include Helper
35
-
36
- before do
37
- @first_store = Juno::DataMapper.new(:setup => "sqlite3://#{make_tempdir}/first.sqlite3")
38
- @first_store.clear
39
-
40
- @second_store = Juno::DataMapper.new(:repository => :sample, :setup => "sqlite3://#{make_tempdir}/second.sqlite3")
41
- @second_store.clear
42
- end
43
-
44
- it 'does not cross contaminate when storing' do
45
- @first_store['key'] = 'value'
46
- @second_store['key'] = 'value2'
47
-
48
- @first_store['key'].must_equal 'value'
49
- @second_store['key'].must_equal 'value2'
50
- end
51
-
52
- it 'does not cross contaminate when deleting' do
53
- @first_store['key'] = 'value'
54
- @second_store['key'] = 'value2'
55
-
56
- @first_store.delete('key').must_equal 'value'
57
- @first_store.key?('key').must_equal false
58
- @second_store['key'].must_equal 'value2'
59
- end
60
- end
61
- end
62
- rescue LoadError => ex
63
- puts "Juno::Datamapper not tested: #{ex.message}"
64
- end
data/test/test_dbm.rb DELETED
@@ -1,13 +0,0 @@
1
- require 'helper'
2
-
3
- begin
4
- describe Juno::DBM do
5
- def new_store
6
- Juno::DBM.new(:file => File.join(make_tempdir, 'dbm.db'))
7
- end
8
-
9
- class_eval(&Juno::Specification)
10
- end
11
- rescue LoadError => ex
12
- puts "Juno::DBM not tested: #{ex.message}"
13
- end
data/test/test_expires.rb DELETED
@@ -1,9 +0,0 @@
1
- require 'helper'
2
-
3
- describe Juno::Expires do
4
- def new_store
5
- Juno::Expires.new(Juno::Memory.new)
6
- end
7
-
8
- class_eval(&Juno::ExpiresSpecification)
9
- end
data/test/test_file.rb DELETED
@@ -1,9 +0,0 @@
1
- require 'helper'
2
-
3
- describe Juno::File do
4
- def new_store
5
- Juno::File.new(:dir => File.join(make_tempdir, 'file'))
6
- end
7
-
8
- class_eval(&Juno::Specification)
9
- end
data/test/test_fog.rb DELETED
@@ -1,17 +0,0 @@
1
- require 'helper'
2
-
3
- begin
4
- describe Juno::Fog do
5
- def new_store
6
- Fog.mock!
7
- Juno::Fog.new(:aws_access_key_id => 'fake_access_key_id',
8
- :aws_secret_access_key => 'fake_secret_access_key',
9
- :provider => 'AWS',
10
- :dir => 'juno')
11
- end
12
-
13
- class_eval(&Juno::Specification)
14
- end
15
- rescue LoadError => ex
16
- puts "Juno::Fog not tested: #{ex.message}"
17
- end
data/test/test_gdbm.rb DELETED
@@ -1,13 +0,0 @@
1
- require 'helper'
2
-
3
- begin
4
- describe Juno::GDBM do
5
- def new_store
6
- Juno::GDBM.new(:file => File.join(make_tempdir, 'gdbm.db'))
7
- end
8
-
9
- class_eval(&Juno::Specification)
10
- end
11
- rescue LoadError => ex
12
- puts "Juno::GDBM not tested: #{ex.message}"
13
- end
@@ -1,9 +0,0 @@
1
- require 'helper'
2
-
3
- describe Juno::HashFile do
4
- def new_store
5
- Juno::HashFile.new(:dir => File.join(make_tempdir, 'hashfile'))
6
- end
7
-
8
- class_eval(&Juno::Specification)
9
- end
@@ -1,13 +0,0 @@
1
- require 'helper'
2
-
3
- begin
4
- describe Juno::LocalMemCache do
5
- def new_store
6
- Juno::LocalMemCache.new(:file => File.join(make_tempdir, 'lmc'))
7
- end
8
-
9
- class_eval(&Juno::Specification)
10
- end
11
- rescue LoadError => ex
12
- puts "Juno::LocalMemCache not tested: #{ex.message}"
13
- end
@@ -1,14 +0,0 @@
1
- require 'helper'
2
-
3
- begin
4
- describe Juno::Memcached do
5
- def new_store
6
- # HACK: memcached is running on 221122 because of travis-ci
7
- Juno::Memcached.new(:server => 'localhost:22122', :namespace => 'juno')
8
- end
9
-
10
- class_eval(&Juno::ExpiresSpecification)
11
- end
12
- rescue LoadError => ex
13
- puts "Juno::Memcached not tested: #{ex.message}"
14
- end
@@ -1,14 +0,0 @@
1
- require 'helper'
2
-
3
- begin
4
- describe Juno::MemcachedDalli do
5
- def new_store
6
- # HACK: memcached is running on 221122 because of travis-ci
7
- Juno::MemcachedDalli.new(:server => 'localhost:22122', :namespace => 'juno')
8
- end
9
-
10
- class_eval(&Juno::ExpiresSpecification)
11
- end
12
- rescue LoadError => ex
13
- puts "Juno::MemcachedDalli not tested: #{ex.message}"
14
- end
@@ -1,14 +0,0 @@
1
- require 'helper'
2
-
3
- begin
4
- describe Juno::MemcachedNative do
5
- def new_store
6
- # HACK: memcached is running on 221122 because of travis-ci
7
- Juno::MemcachedNative.new(:server => 'localhost:22122', :namespace => 'juno')
8
- end
9
-
10
- class_eval(&Juno::ExpiresSpecification)
11
- end
12
- rescue LoadError => ex
13
- puts "Juno::MemcachedNative not tested: #{ex.message}"
14
- end
data/test/test_memory.rb DELETED
@@ -1,9 +0,0 @@
1
- require 'helper'
2
-
3
- describe Juno::Memory do
4
- def new_store
5
- Juno::Memory.new
6
- end
7
-
8
- class_eval(&Juno::Specification)
9
- end
data/test/test_mongodb.rb DELETED
@@ -1,13 +0,0 @@
1
- require 'helper'
2
-
3
- begin
4
- describe Juno::MongoDB do
5
- def new_store
6
- Juno::MongoDB.new
7
- end
8
-
9
- class_eval(&Juno::Specification)
10
- end
11
- rescue LoadError => ex
12
- puts "Juno::MongoDB not tested: #{ex.message}"
13
- end
data/test/test_null.rb DELETED
@@ -1,9 +0,0 @@
1
- require 'helper'
2
-
3
- describe Juno::Null do
4
- def new_store
5
- Juno::Null.new
6
- end
7
-
8
- class_eval(&Juno::NullSpecification)
9
- end
data/test/test_proxy.rb DELETED
@@ -1,9 +0,0 @@
1
- require 'helper'
2
-
3
- describe Juno::Proxy do
4
- def new_store
5
- Juno::Proxy.new(Juno::Proxy.new(Juno::Memory.new))
6
- end
7
-
8
- class_eval(&Juno::Specification)
9
- end
data/test/test_pstore.rb DELETED
@@ -1,9 +0,0 @@
1
- require 'helper'
2
-
3
- describe Juno::PStore do
4
- def new_store
5
- Juno::PStore.new(:file => File.join(make_tempdir, 'pstore'))
6
- end
7
-
8
- class_eval(&Juno::Specification)
9
- end
data/test/test_redis.rb DELETED
@@ -1,13 +0,0 @@
1
- require 'helper'
2
-
3
- begin
4
- describe Juno::Redis do
5
- def new_store
6
- Juno::Redis.new
7
- end
8
-
9
- class_eval(&Juno::ExpiresSpecification)
10
- end
11
- rescue LoadError => ex
12
- puts "Juno::Redis not tested: #{ex.message}"
13
- end
data/test/test_riak.rb DELETED
@@ -1,13 +0,0 @@
1
- require 'helper'
2
-
3
- begin
4
- describe Juno::Riak do
5
- def new_store
6
- Juno::Riak.new
7
- end
8
-
9
- class_eval(&Juno::Specification)
10
- end
11
- rescue LoadError => ex
12
- puts "Juno::Riak not tested: #{ex.message}"
13
- end
data/test/test_sdbm.rb DELETED
@@ -1,13 +0,0 @@
1
- require 'helper'
2
-
3
- begin
4
- describe Juno::SDBM do
5
- def new_store
6
- Juno::GDBM.new(:file => File.join(make_tempdir, 'gdbm.db'))
7
- end
8
-
9
- class_eval(&Juno::Specification)
10
- end
11
- rescue LoadError => ex
12
- puts "Juno::SDBM not tested: #{ex.message}"
13
- end
data/test/test_sequel.rb DELETED
@@ -1,13 +0,0 @@
1
- require 'helper'
2
-
3
- begin
4
- describe Juno::Sequel do
5
- def new_store
6
- Juno::Sequel.new(:db => 'sqlite:/')
7
- end
8
-
9
- class_eval(&Juno::Specification)
10
- end
11
- rescue LoadError => ex
12
- puts "Juno::Sequel not tested: #{ex.message}"
13
- end
data/test/test_sqlite.rb DELETED
@@ -1,13 +0,0 @@
1
- require 'helper'
2
-
3
- begin
4
- describe Juno::Sqlite do
5
- def new_store
6
- Juno::Sqlite.new(:file => ':memory:')
7
- end
8
-
9
- class_eval(&Juno::Specification)
10
- end
11
- rescue LoadError => ex
12
- puts "Juno::Sqlite not tested: #{ex.message}"
13
- end
data/test/test_stack.rb DELETED
@@ -1,10 +0,0 @@
1
- require 'helper'
2
-
3
- describe Juno::File do
4
- def new_store
5
- Juno::Stack.new(:stores => [ Juno::File.new(:dir => File.join(make_tempdir, 'file')),
6
- Juno::Null.new, Juno::Memory.new ])
7
- end
8
-
9
- class_eval(&Juno::Specification)
10
- end
@@ -1,13 +0,0 @@
1
- require 'helper'
2
-
3
- begin
4
- describe Juno::TokyoCabinet do
5
- def new_store
6
- Juno::TokyoCabinet.new(:file => File.join(make_tempdir, 'tokyocabinet.db'))
7
- end
8
-
9
- class_eval(&Juno::Specification)
10
- end
11
- rescue LoadError => ex
12
- puts "Juno::TokyoCabinet not tested: #{ex.message}"
13
- end
data/test/test_yaml.rb DELETED
@@ -1,9 +0,0 @@
1
- require 'helper'
2
-
3
- describe Juno::YAML do
4
- def new_store
5
- Juno::YAML.new(:file => File.join(make_tempdir, 'yaml'))
6
- end
7
-
8
- class_eval(&Juno::Specification)
9
- end
@@ -1,13 +0,0 @@
1
- require 'helper'
2
-
3
- begin
4
- describe Juno::TokyoTyrant do
5
- def new_store
6
- Juno::TokyoTyrant.new(:host => '127.0.0.1', :port => 1978)
7
- end
8
-
9
- class_eval(&JunoSpecification)
10
- end
11
- rescue LoadError => ex
12
- puts "Juno::TokyoTyrant not tested: #{ex.message}"
13
- end