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
@@ -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