juno 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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