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
@@ -0,0 +1,59 @@
1
+ # Generated file
2
+ require 'helper'
3
+
4
+ begin
5
+
6
+ Juno.build do
7
+ use :Transformer, :key => :yaml, :value => :yaml
8
+ adapter :Memory
9
+ end.close
10
+
11
+ describe "transformer_yaml" do
12
+ before do
13
+ @store =
14
+ Juno.build do
15
+ use :Transformer, :key => :yaml, :value => :yaml
16
+ adapter :Memory
17
+ end
18
+ @store.clear
19
+ end
20
+
21
+ after do
22
+ @store.close.should == nil if @store
23
+ end
24
+
25
+ it_should_behave_like 'null_objectkey_objectvalue'
26
+ it_should_behave_like 'null_objectkey_stringvalue'
27
+ it_should_behave_like 'null_objectkey_hashvalue'
28
+ it_should_behave_like 'null_stringkey_objectvalue'
29
+ it_should_behave_like 'null_stringkey_stringvalue'
30
+ it_should_behave_like 'null_stringkey_hashvalue'
31
+ it_should_behave_like 'null_hashkey_objectvalue'
32
+ it_should_behave_like 'null_hashkey_stringvalue'
33
+ it_should_behave_like 'null_hashkey_hashvalue'
34
+ it_should_behave_like 'store_objectkey_objectvalue'
35
+ it_should_behave_like 'store_objectkey_stringvalue'
36
+ it_should_behave_like 'store_objectkey_hashvalue'
37
+ it_should_behave_like 'store_stringkey_objectvalue'
38
+ it_should_behave_like 'store_stringkey_stringvalue'
39
+ it_should_behave_like 'store_stringkey_hashvalue'
40
+ it_should_behave_like 'store_hashkey_objectvalue'
41
+ it_should_behave_like 'store_hashkey_stringvalue'
42
+ it_should_behave_like 'store_hashkey_hashvalue'
43
+ it_should_behave_like 'returndifferent_objectkey_objectvalue'
44
+ it_should_behave_like 'returndifferent_objectkey_stringvalue'
45
+ it_should_behave_like 'returndifferent_objectkey_hashvalue'
46
+ it_should_behave_like 'returndifferent_stringkey_objectvalue'
47
+ it_should_behave_like 'returndifferent_stringkey_stringvalue'
48
+ it_should_behave_like 'returndifferent_stringkey_hashvalue'
49
+ it_should_behave_like 'returndifferent_hashkey_objectvalue'
50
+ it_should_behave_like 'returndifferent_hashkey_stringvalue'
51
+ it_should_behave_like 'returndifferent_hashkey_hashvalue'
52
+
53
+ end
54
+ rescue LoadError => ex
55
+ puts "Test transformer_yaml not executed: #{ex.message}"
56
+ rescue Exception => ex
57
+ puts "Test transformer_yaml not executed: #{ex.message}"
58
+ #puts "#{ex.backtrace.join("\n")}"
59
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: juno
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -11,30 +11,8 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2012-11-19 00:00:00.000000000 Z
15
- dependencies:
16
- - !ruby/object:Gem::Dependency
17
- name: rake
18
- requirement: &20910480 !ruby/object:Gem::Requirement
19
- none: false
20
- requirements:
21
- - - ! '>='
22
- - !ruby/object:Gem::Version
23
- version: '0'
24
- type: :development
25
- prerelease: false
26
- version_requirements: *20910480
27
- - !ruby/object:Gem::Dependency
28
- name: minitest
29
- requirement: &20909980 !ruby/object:Gem::Requirement
30
- none: false
31
- requirements:
32
- - - ! '>='
33
- - !ruby/object:Gem::Version
34
- version: '0'
35
- type: :development
36
- prerelease: false
37
- version_requirements: *20909980
14
+ date: 2012-11-22 00:00:00.000000000 Z
15
+ dependencies: []
38
16
  description: A unified interface to key/value stores (moneta replacement)
39
17
  email:
40
18
  - wycats@gmail.com
@@ -57,65 +35,104 @@ files:
57
35
  - benchmarks/run.rb
58
36
  - juno.gemspec
59
37
  - lib/juno.rb
60
- - lib/juno/activerecord.rb
38
+ - lib/juno/adapters/activerecord.rb
39
+ - lib/juno/adapters/cassandra.rb
40
+ - lib/juno/adapters/couch.rb
41
+ - lib/juno/adapters/datamapper.rb
42
+ - lib/juno/adapters/dbm.rb
43
+ - lib/juno/adapters/file.rb
44
+ - lib/juno/adapters/fog.rb
45
+ - lib/juno/adapters/gdbm.rb
46
+ - lib/juno/adapters/localmemcache.rb
47
+ - lib/juno/adapters/memcached.rb
48
+ - lib/juno/adapters/memcached_dalli.rb
49
+ - lib/juno/adapters/memcached_native.rb
50
+ - lib/juno/adapters/memory.rb
51
+ - lib/juno/adapters/mongo.rb
52
+ - lib/juno/adapters/null.rb
53
+ - lib/juno/adapters/pstore.rb
54
+ - lib/juno/adapters/redis.rb
55
+ - lib/juno/adapters/riak.rb
56
+ - lib/juno/adapters/sdbm.rb
57
+ - lib/juno/adapters/sequel.rb
58
+ - lib/juno/adapters/sqlite.rb
59
+ - lib/juno/adapters/tokyocabinet.rb
60
+ - lib/juno/adapters/yaml.rb
61
61
  - lib/juno/base.rb
62
- - lib/juno/cassandra.rb
63
- - lib/juno/couch.rb
64
- - lib/juno/datamapper.rb
65
- - lib/juno/dbm.rb
62
+ - lib/juno/builder.rb
63
+ - lib/juno/cache.rb
66
64
  - lib/juno/expires.rb
67
- - lib/juno/file.rb
68
- - lib/juno/fog.rb
69
- - lib/juno/gdbm.rb
70
- - lib/juno/hashfile.rb
71
- - lib/juno/localmemcache.rb
72
- - lib/juno/memcached.rb
73
- - lib/juno/memcached_dalli.rb
74
- - lib/juno/memcached_native.rb
75
- - lib/juno/memory.rb
76
- - lib/juno/mongodb.rb
77
- - lib/juno/null.rb
78
65
  - lib/juno/proxy.rb
79
- - lib/juno/pstore.rb
80
- - lib/juno/redis.rb
81
- - lib/juno/riak.rb
82
- - lib/juno/sdbm.rb
83
- - lib/juno/sequel.rb
84
- - lib/juno/sqlite.rb
85
66
  - lib/juno/stack.rb
86
- - lib/juno/tokyocabinet.rb
67
+ - lib/juno/transformer.rb
87
68
  - lib/juno/version.rb
88
- - lib/juno/yaml.rb
89
- - test/helper.rb
90
- - test/test_activerecord.rb
91
- - test/test_cassandra.rb
92
- - test/test_couch.rb
93
- - test/test_datamapper.rb
94
- - test/test_dbm.rb
95
- - test/test_expires.rb
96
- - test/test_file.rb
97
- - test/test_fog.rb
98
- - test/test_gdbm.rb
99
- - test/test_hashfile.rb
100
- - test/test_localmemcache.rb
101
- - test/test_memcached.rb
102
- - test/test_memcached_dalli.rb
103
- - test/test_memcached_native.rb
104
- - test/test_memory.rb
105
- - test/test_mongodb.rb
106
- - test/test_null.rb
107
- - test/test_proxy.rb
108
- - test/test_pstore.rb
109
- - test/test_redis.rb
110
- - test/test_riak.rb
111
- - test/test_sdbm.rb
112
- - test/test_sequel.rb
113
- - test/test_sqlite.rb
114
- - test/test_stack.rb
115
- - test/test_tokyocabinet.rb
116
- - test/test_yaml.rb
117
- - unsupported/test_tokyotyrant.rb
118
- - unsupported/tokyotyrant.rb
69
+ - spec/adapter_activerecord_spec.rb
70
+ - spec/adapter_cassandra_spec.rb
71
+ - spec/adapter_couch_spec.rb
72
+ - spec/adapter_datamapper_spec.rb
73
+ - spec/adapter_dbm_spec.rb
74
+ - spec/adapter_file_spec.rb
75
+ - spec/adapter_fog_spec.rb
76
+ - spec/adapter_gdbm_spec.rb
77
+ - spec/adapter_localmemcache_spec.rb
78
+ - spec/adapter_memcached_dalli_spec.rb
79
+ - spec/adapter_memcached_native_spec.rb
80
+ - spec/adapter_memcached_spec.rb
81
+ - spec/adapter_memory_spec.rb
82
+ - spec/adapter_mongo_spec.rb
83
+ - spec/adapter_pstore_spec.rb
84
+ - spec/adapter_redis_spec.rb
85
+ - spec/adapter_riak_spec.rb
86
+ - spec/adapter_sdbm_spec.rb
87
+ - spec/adapter_sequel_spec.rb
88
+ - spec/adapter_sqlite_spec.rb
89
+ - spec/adapter_tokyocabinet_spec.rb
90
+ - spec/adapter_yaml_spec.rb
91
+ - spec/cache_file_memory_spec.rb
92
+ - spec/cache_memory_null_spec.rb
93
+ - spec/expires_file_spec.rb
94
+ - spec/expires_memory_spec.rb
95
+ - spec/generate.rb
96
+ - spec/helper.rb
97
+ - spec/junospecs.rb
98
+ - spec/null_adapter_spec.rb
99
+ - spec/proxy_expires_memory_spec.rb
100
+ - spec/proxy_redis_spec.rb
101
+ - spec/simple_activerecord_spec.rb
102
+ - spec/simple_cassandra_spec.rb
103
+ - spec/simple_couch_spec.rb
104
+ - spec/simple_datamapper_spec.rb
105
+ - spec/simple_datamapper_with_repository_spec.rb
106
+ - spec/simple_dbm_spec.rb
107
+ - spec/simple_file_spec.rb
108
+ - spec/simple_fog_spec.rb
109
+ - spec/simple_gdbm_spec.rb
110
+ - spec/simple_hashfile_spec.rb
111
+ - spec/simple_localmemcache_spec.rb
112
+ - spec/simple_memcached_dalli_spec.rb
113
+ - spec/simple_memcached_native_spec.rb
114
+ - spec/simple_memcached_spec.rb
115
+ - spec/simple_memory_spec.rb
116
+ - spec/simple_mongo_spec.rb
117
+ - spec/simple_null_spec.rb
118
+ - spec/simple_pstore_spec.rb
119
+ - spec/simple_redis_spec.rb
120
+ - spec/simple_riak_spec.rb
121
+ - spec/simple_sdbm_spec.rb
122
+ - spec/simple_sequel_spec.rb
123
+ - spec/simple_sqlite_spec.rb
124
+ - spec/simple_tokyocabinet_spec.rb
125
+ - spec/simple_yaml_spec.rb
126
+ - spec/stack_file_memory_spec.rb
127
+ - spec/stack_memory_file_spec.rb
128
+ - spec/transformer_bson_spec.rb
129
+ - spec/transformer_json_spec.rb
130
+ - spec/transformer_marshal_base64_spec.rb
131
+ - spec/transformer_marshal_escape_spec.rb
132
+ - spec/transformer_marshal_md5_spec.rb
133
+ - spec/transformer_marshal_md5_spread_spec.rb
134
+ - spec/transformer_msgpack_spec.rb
135
+ - spec/transformer_yaml_spec.rb
119
136
  homepage: http://github.com/minad/juno
120
137
  licenses: []
121
138
  post_install_message:
@@ -136,37 +153,76 @@ required_rubygems_version: !ruby/object:Gem::Requirement
136
153
  version: '0'
137
154
  requirements: []
138
155
  rubyforge_project:
139
- rubygems_version: 1.8.15
156
+ rubygems_version: 1.8.24
140
157
  signing_key:
141
158
  specification_version: 3
142
159
  summary: A unified interface to key/value stores, including MongoDB, Redis, Tokyo,
143
160
  and ActiveRecord
144
161
  test_files:
145
- - test/helper.rb
146
- - test/test_activerecord.rb
147
- - test/test_cassandra.rb
148
- - test/test_couch.rb
149
- - test/test_datamapper.rb
150
- - test/test_dbm.rb
151
- - test/test_expires.rb
152
- - test/test_file.rb
153
- - test/test_fog.rb
154
- - test/test_gdbm.rb
155
- - test/test_hashfile.rb
156
- - test/test_localmemcache.rb
157
- - test/test_memcached.rb
158
- - test/test_memcached_dalli.rb
159
- - test/test_memcached_native.rb
160
- - test/test_memory.rb
161
- - test/test_mongodb.rb
162
- - test/test_null.rb
163
- - test/test_proxy.rb
164
- - test/test_pstore.rb
165
- - test/test_redis.rb
166
- - test/test_riak.rb
167
- - test/test_sdbm.rb
168
- - test/test_sequel.rb
169
- - test/test_sqlite.rb
170
- - test/test_stack.rb
171
- - test/test_tokyocabinet.rb
172
- - test/test_yaml.rb
162
+ - spec/adapter_activerecord_spec.rb
163
+ - spec/adapter_cassandra_spec.rb
164
+ - spec/adapter_couch_spec.rb
165
+ - spec/adapter_datamapper_spec.rb
166
+ - spec/adapter_dbm_spec.rb
167
+ - spec/adapter_file_spec.rb
168
+ - spec/adapter_fog_spec.rb
169
+ - spec/adapter_gdbm_spec.rb
170
+ - spec/adapter_localmemcache_spec.rb
171
+ - spec/adapter_memcached_dalli_spec.rb
172
+ - spec/adapter_memcached_native_spec.rb
173
+ - spec/adapter_memcached_spec.rb
174
+ - spec/adapter_memory_spec.rb
175
+ - spec/adapter_mongo_spec.rb
176
+ - spec/adapter_pstore_spec.rb
177
+ - spec/adapter_redis_spec.rb
178
+ - spec/adapter_riak_spec.rb
179
+ - spec/adapter_sdbm_spec.rb
180
+ - spec/adapter_sequel_spec.rb
181
+ - spec/adapter_sqlite_spec.rb
182
+ - spec/adapter_tokyocabinet_spec.rb
183
+ - spec/adapter_yaml_spec.rb
184
+ - spec/cache_file_memory_spec.rb
185
+ - spec/cache_memory_null_spec.rb
186
+ - spec/expires_file_spec.rb
187
+ - spec/expires_memory_spec.rb
188
+ - spec/generate.rb
189
+ - spec/helper.rb
190
+ - spec/junospecs.rb
191
+ - spec/null_adapter_spec.rb
192
+ - spec/proxy_expires_memory_spec.rb
193
+ - spec/proxy_redis_spec.rb
194
+ - spec/simple_activerecord_spec.rb
195
+ - spec/simple_cassandra_spec.rb
196
+ - spec/simple_couch_spec.rb
197
+ - spec/simple_datamapper_spec.rb
198
+ - spec/simple_datamapper_with_repository_spec.rb
199
+ - spec/simple_dbm_spec.rb
200
+ - spec/simple_file_spec.rb
201
+ - spec/simple_fog_spec.rb
202
+ - spec/simple_gdbm_spec.rb
203
+ - spec/simple_hashfile_spec.rb
204
+ - spec/simple_localmemcache_spec.rb
205
+ - spec/simple_memcached_dalli_spec.rb
206
+ - spec/simple_memcached_native_spec.rb
207
+ - spec/simple_memcached_spec.rb
208
+ - spec/simple_memory_spec.rb
209
+ - spec/simple_mongo_spec.rb
210
+ - spec/simple_null_spec.rb
211
+ - spec/simple_pstore_spec.rb
212
+ - spec/simple_redis_spec.rb
213
+ - spec/simple_riak_spec.rb
214
+ - spec/simple_sdbm_spec.rb
215
+ - spec/simple_sequel_spec.rb
216
+ - spec/simple_sqlite_spec.rb
217
+ - spec/simple_tokyocabinet_spec.rb
218
+ - spec/simple_yaml_spec.rb
219
+ - spec/stack_file_memory_spec.rb
220
+ - spec/stack_memory_file_spec.rb
221
+ - spec/transformer_bson_spec.rb
222
+ - spec/transformer_json_spec.rb
223
+ - spec/transformer_marshal_base64_spec.rb
224
+ - spec/transformer_marshal_escape_spec.rb
225
+ - spec/transformer_marshal_md5_spec.rb
226
+ - spec/transformer_marshal_md5_spread_spec.rb
227
+ - spec/transformer_msgpack_spec.rb
228
+ - spec/transformer_yaml_spec.rb
@@ -1,55 +0,0 @@
1
- require 'active_record'
2
-
3
- module Juno
4
- class ActiveRecord < Base
5
- def self.tables
6
- @tables ||= {}
7
- end
8
-
9
- attr_reader :table
10
-
11
- def initialize(options = {})
12
- table = options[:table] || 'juno'
13
- @table = self.class.tables[table] ||= begin
14
- c = Class.new(::ActiveRecord::Base)
15
- c.table_name = table
16
- c
17
- end
18
- @table.establish_connection(options[:connection]) if options[:connection]
19
- @table.connection.create_table @table.table_name do |t|
20
- t.binary 'key', :primary => :true
21
- t.binary 'value'
22
- end unless @table.table_exists?
23
- end
24
-
25
- def key?(key, options = {})
26
- !!@table.find_by_key(key_for(key))
27
- end
28
-
29
- def [](key)
30
- record = @table.find_by_key(key_for(key))
31
- record ? deserialize(record.value) : nil
32
- end
33
-
34
- def delete(key, options = {})
35
- record = @table.find_by_key(key_for(key))
36
- if record
37
- @table.where(:key => key_for(record.key)).delete_all
38
- deserialize(record.value)
39
- end
40
- end
41
-
42
- def store(key, value, options = {})
43
- record = @table.find_by_key(key_for(key))
44
- record ||= @table.new(:key => key_for(key))
45
- record.value = serialize(value)
46
- record.save!
47
- value
48
- end
49
-
50
- def clear(options = {})
51
- @table.delete_all
52
- nil
53
- end
54
- end
55
- end
@@ -1,45 +0,0 @@
1
- # Copyright: 2011 TMX Credit
2
- # Author: Potapov Sergey (aka Blake)
3
-
4
- require 'cassandra'
5
-
6
- module Juno
7
- class Cassandra < Base
8
- def initialize(options = {})
9
- options[:keyspace] ||= 'Juno'
10
- options[:host] ||= '127.0.0.1'
11
- options[:port] ||= 9160
12
- @column_family = options[:column_family] || :Juno
13
- @client = ::Cassandra.new(options[:keyspace], "#{options[:host]}:#{options[:port]}")
14
- end
15
-
16
- def key?(key, options = {})
17
- @client.exists?(@column_family, key_for(key))
18
- end
19
-
20
- def [](key)
21
- value = @client.get(@column_family, key_for(key))
22
- value ? deserialize(value['value']) : nil
23
- end
24
-
25
- def delete(key, options = {})
26
- if value = self[key]
27
- @client.remove(@column_family, key_for(key))
28
- value
29
- end
30
- end
31
-
32
- def store(key, value, options = {})
33
- @client.insert(@column_family, key_for(key),
34
- {'value' => serialize(value)}, :ttl => options[:expires])
35
- value
36
- end
37
-
38
- def clear(options = {})
39
- @client.each_key(@column_family) do |key|
40
- delete(key)
41
- end
42
- nil
43
- end
44
- end
45
- end
data/lib/juno/couch.rb DELETED
@@ -1,43 +0,0 @@
1
- require 'couchrest'
2
-
3
- module Juno
4
- class Couch < Base
5
- def initialize(options = {})
6
- @db = ::CouchRest.database!(options[:db])
7
- end
8
-
9
- def key?(key, options = {})
10
- !!self[key_for(key)]
11
- rescue RestClient::ResourceNotFound
12
- false
13
- end
14
-
15
- def [](key)
16
- deserialize(@db.get(key_for(key))['data'])
17
- rescue RestClient::ResourceNotFound
18
- nil
19
- end
20
-
21
- def store(key, value, options = {})
22
- @db.save_doc('_id' => key_for(key), :data => serialize(value))
23
- value
24
- rescue RestClient::RequestFailed
25
- value
26
- end
27
-
28
- def delete(key, options = {})
29
- value = @db.get(key_for(key))
30
- if value
31
- @db.delete_doc({'_id' => value['_id'], '_rev' => value['_rev']}) if value
32
- deserialize(value['data'])
33
- end
34
- rescue RestClient::ResourceNotFound
35
- nil
36
- end
37
-
38
- def clear(options = {})
39
- @db.recreate!
40
- nil
41
- end
42
- end
43
- end
@@ -1,63 +0,0 @@
1
- require 'dm-core'
2
- require 'dm-migrations'
3
-
4
- module Juno
5
- class DataMapper < Base
6
- class Store
7
- include ::DataMapper::Resource
8
- property :k, String, :key => true
9
- property :v, Object, :lazy => false
10
- end
11
-
12
- def initialize(options = {})
13
- raise 'No option :setup specified' unless options[:setup]
14
- @repository = options.delete(:repository) || :juno
15
- Store.storage_names[@repository] = (options.delete(:table) || :juno).to_s
16
- ::DataMapper.setup(@repository, options[:setup])
17
- context { Store.auto_upgrade! }
18
- end
19
-
20
- def key?(key, options = {})
21
- context { !!Store.get(key_for(key)) }
22
- end
23
-
24
- def [](key)
25
- context do
26
- record = Store.get(key_for(key))
27
- record ? record.v : nil
28
- end
29
- end
30
-
31
- def store(key, value, options = {})
32
- key = key_for(key)
33
- context do
34
- record = Store.get(key)
35
- if record
36
- record.update(key, value)
37
- else
38
- Store.create(:k => key, :v => value)
39
- end
40
- end
41
- value
42
- end
43
-
44
- def delete(key, options = {})
45
- context do
46
- value = self[key]
47
- Store.all(:k => key_for(key)).destroy!
48
- value
49
- end
50
- end
51
-
52
- def clear(options = {})
53
- context { Store.all.destroy! }
54
- nil
55
- end
56
-
57
- private
58
-
59
- def context
60
- ::DataMapper.repository(@repository) { yield }
61
- end
62
- end
63
- end
data/lib/juno/dbm.rb DELETED
@@ -1,15 +0,0 @@
1
- require 'dbm'
2
-
3
- module Juno
4
- class DBM < Base
5
- def initialize(options = {})
6
- raise 'No option :file specified' unless options[:file]
7
- @store = ::DBM.new(options[:file])
8
- end
9
-
10
- def close
11
- @store.close
12
- nil
13
- end
14
- end
15
- end
data/lib/juno/file.rb DELETED
@@ -1,62 +0,0 @@
1
- require 'fileutils'
2
-
3
- module Juno
4
- class File < Base
5
- def initialize(options = {})
6
- raise 'No option :dir specified' unless @dir = options[:dir]
7
- FileUtils.mkpath(@dir)
8
- raise "#{@dir} is not a dir" unless ::File.directory?(@dir)
9
- end
10
-
11
- def key?(key, options = {})
12
- ::File.exist?(store_path(key))
13
- end
14
-
15
- def [](key)
16
- deserialize(::File.read(store_path(key)))
17
- rescue Errno::ENOENT
18
- end
19
-
20
- def store(key, value, options = {})
21
- path = store_path(key)
22
- temp_file = ::File.join(@dir, "value-#{$$}-#{Thread.current.object_id}")
23
- FileUtils.mkpath(::File.dirname(path))
24
- ::File.open(temp_file, 'wb') {|file| file.write(serialize(value)) }
25
- ::File.unlink(path) if ::File.exist?(path)
26
- ::File.rename(temp_file, path)
27
- value
28
- rescue Errno::ENOENT
29
- ::File.unlink(temp_file) rescue nil
30
- value
31
- end
32
-
33
- def delete(key, options = {})
34
- value = self[key]
35
- ::File.unlink(store_path(key))
36
- value
37
- rescue Errno::ENOENT
38
- end
39
-
40
- def clear(options = {})
41
- temp_dir = "#{@dir}-#{$$}-#{Thread.current.object_id}"
42
- ::File.rename(@dir, temp_dir)
43
- FileUtils.mkpath(@dir)
44
- FileUtils.rm_rf(temp_dir)
45
- nil
46
- rescue Errno::ENOENT
47
- nil
48
- end
49
-
50
- protected
51
-
52
- def escape(s)
53
- s.gsub(/[^a-zA-Z0-9_-]+/) do
54
- '%' + $&.unpack('H2' * $&.bytesize).join('%').upcase
55
- end
56
- end
57
-
58
- def store_path(key)
59
- ::File.join(@dir, escape(key_for(key)))
60
- end
61
- end
62
- end